高端IT人才在线实训平台

当前位置:首页  /  课程  /  大数据就业特训营

大数据就业特训营

大数据就业特训营

分享到:

技术大牛组团授课,专讲大数据核心知识和大型项目实战,多台物理服务器数十个节点现场直播演示!企业级实战项目让你四个月掌握2年的项目经验!

  • 试学价  ¥1

  • 1元试学7天(有答疑),点击咨询详情

时长    16周           开班时间   1810HT(10月30日) 1811HT(11月29日,周四)

立即试学 全款购买 当前学习人数 4404 收藏

有效期:558天
有效期自支付成功后开始计算。

课程介绍


技术大牛组团授课,专讲大数据核心知识和大型项目实战,多台物理服务器数十个节点现场直播演示!企业级实战项目让你四个月掌握2年的项目经验!


【企业级真实项目一】某权威机构广电收视率系统

【企业级真实项目二】某知名手机厂商用户行为实时分析系统

【企业级真实项目三】某大型传媒公司视频网站爬虫系统

【企业级真实项目四】某淘OpenTSDB时间序列分析项目

【企业级真实项目五】某婚恋网站后台日志实时分析系统

【企业级真实项目六】金融实时数据动态指标计算平台

【企业级真实项目七】某移动大型电商网站数据分析系统

【企业级真实项目八】某视频网站大数据平台离线计算项目


课程前景

  • 猎聘网 Hadoop职位搜索

    看一看

    Hadoop工程师月薪:15k-30k

    职位诱惑:大数据、正规福利、开放平台

  • 拉钩网 Hadoop职位搜索

    看一看

    Hadoop工程师月薪:15k-25k

    职位诱惑:五险一金、弹性工作、期权

  • 中华英才Hadoop职位搜索

    看一看

    Hadoop开发工程师月薪:18k-35k

    职位诱惑:大数据、高成长性、期权

  • 51Job Hadoop职位搜索

    看一看

    Hadoop研发工程师月薪:15k-30k

    职位诱惑:知名互联网金融平台、待遇优厚、发展空间大

一般需要大数据人才的基本上都是大公司,所以学习大数据技术也是进大公司的捷径!

在线课程这么多,为什么要来大讲台?

主讲老师
牛X

课程含金量超高

混合式
自适应学习

0基础也能100%学会

保8k+
就业

保就业,签协议

收费低

只有线下同类课程的30%

任务化
游戏化

让你无痛,愉快学习

学完大讲台

[ 大数据就业特训营 ]你可以

  • 1

    全面掌握大数据的架构原理和使用场景,

    熟练使用Hadoop进行程序开发

  • 2

    掌握大数据基本运维思路和方法,

    对Hadoop集群进行管理和优化

  • 3

    深入理解大数据技术架构,

    可以独立规划及部署生产环境的Hadoop集群

  • 4

    系统学习现代大数据工具和架构,

    有能力设计、实现和交流典型的大数据项目

讲师介绍

  • Felix

    大讲台大数据特聘讲师   |   北京某移动应用平台大数据高级架构师

    北京某移动应用平台大数据高级架构师 10年一线开发及项目管理经验,6年以上大数据系统架构及分析处理经验,骨灰级大数据玩家。曾就职于国内某TOP5的电信相关业务公司,负责对手机信息收集处理工作,对于Hadoop、Storm、Spark有较深研究。搭建、维护过上百节点集群,处理过PB级数据。 因技术出色,多次在知名企业内部进行大数据技能培训,对一线企业大数据方面的技能需求非常了解。 热爱分享,喜欢结合切身经历的大型项目经验来授课,用血淋淋的一线案例、真刀真枪的现场演示、实时的回馈指导赢得了很多学员的仰慕和好评。

  • 杨俊

    大讲台大数据高级讲师   |   原某广电数据咨询公司大数据高级架构师

    原某广电数据咨询公司大数据高级架构师 资深Java玩家,大数据技术狂热者。曾在北京某广电数据咨询公司担任大数据高级架构师,7年以上大数据实操经验, 经历过10个以上的重量级大数据项目。Hadoop源码级技术大咖,熟练使用Hadoop、Spark、Hive、HBase、Flume、Kafka等各大主流组件。谦虚亲和,崇尚实操至上的教学理念。受到学员一致好评。

  • 荣智坤

    大讲台大数据特聘讲师   |   国内TOP5的视频网站大数据资深工程师

    资深全栈工程师,从业时间9年,先后服务于三家国内外上市公司,目前在国内TOP5的视频网站任大数据小组Leader。参与或负责过大型CDN文件传输系统,电信计费系统、大数据分析系统、中间件等多个重量级项目。精通Java、Python、Shell开发语言,精通Web应用开发。专注于大数据产品的研发和设计,能够熟练使用Hadoop、Spark、Hive、HBase来分析海量数据为决策提供依据。 技术狂,崇尚解决问题是开发人员的使命。

  • 高鹏

    大讲台大数据特聘讲师   |   某婚恋网美国上市公司大数据资深工程师

    东北大学计算机硕士, 8年互联网&大数据一线研发经验,大数据技术实战派,曾在某大型(美国上市)婚恋网站担任大数据小组Leader多年,负责大数据平台搭建维护以及数据分析工作,对Hadoop、Storm 、Hive、Spark在企业级环境中的应用驾轻就熟。

  • 杨哲

    大讲台大数据特聘讲师   |   国内知名手机厂商大数据资深工程师

    某大型手机厂商大数据小组Team Leader,对离线计算和实时计算都有丰富的经验。从业时间10年,曾在社交网络、移动广告、视频等行业研发大数据平台,擅长Hadoop、Flume、Kafka、Spark 、hbase大数据相关技术。在高可用高并发的业务系统的研发以及构架设计也有丰富的经验,热衷于将业务系统和大数据系统相结合的项目开发与设计。

学习模式和上课安排

  • 在线IT就业课程

    混合式自适应学习

  • 不用东奔西跑

    在家在校在咖啡馆都能学习

  • 学习任务每日推送

    有效避免贪多嚼不烂

  • 预科课程随报随学

    正式课程每月定时直播

  • 每天自主学习2小时

    4个月可学完就业

  • 点击咨询

    点击咨询

五大承诺,让你无后顾之忧

可先试学7天

先尝后买

跳槽换工作

免费推荐

一次不过瘾

免费复训

错过直播

可视频回看

现在报名

学费减免1000元

5

大承诺

无后顾之忧

大数据课程大纲

一、Linux基础课程
1.Linux 安装与配置 1.1.Vmware虚拟机的介绍
1.2.Vmware虚拟机的安装
1.3.Vmware虚拟机的配置
1.4.CentOS6.5版本下载
1.5.CentOS6.5系统安装
1.6.虚拟机通信配置,畅游互联网
1.7.Linux客户端工具-Xshell详解
1.8.Linux 系统常用配置讲解:用户操作、主机名设置、网络模式配置、防火墙配置等
2.Linux系统管理与目录管理 2.1.Linux系统简介
2.2.Linux 系统目录详解
2.3.Linux 帮助文档使用详解
2.4.Linux shell 命令操作
2.5.Linux用户和用户组管理
2.6.Linux 文件权限管理
2.7.Linux 软件包管理:yum和apt
2.8.Linux 系统命令管理:系统管理(du、df等)和进程管理(ps等)
2.9.Linux VI和VIM详解
2.10.Linux 压缩与解压缩
2.11.Linux ssh 免密码通信详解
2.12.Linux 系统克隆
2.13.Linux mac地址冲突解决
2.14.Linux 软件包下载常用服务
2.15.Linux 快照与恢复
2.16.Linux 密码忘记解决
2.17.Linux 打开及关闭图形界面
二、Java 基础课程
1.JAVA概述及开发环境搭建 1.1.认识JAVA
1.2.Java开发环境搭建
1.3.编写第一个JAVA程序
2.简单的Java程序 2.1.一个简单的JAVA范例
2.2.JAVA程序的注释
2.3.JAVA中的标识符
2.4.JAVA中的关键字
2.5.变量和常量
3.JAVA基础程序设计 3.1.JAVA数据类型划分
3.2.基本数据类型
3.3.数据类型的转换
3.4.运算符、表达式与语句
3.5.选择与循环语句
4.数组与方法 4.1.数组的定义及使用
4.2.方法的声明及使用
4.3.数组的引用传递
4.4.Java新特性对数组的支持
5.面向对象(基础篇) 5.1 面向对象的基本概念
5.2 类和对象
5.3 封装性
5.4 构造方法
5.5 匿名对象
5.6 实例讲解——类设计分析
5.7 String类
5.8 引用传递及其基本应用
5.9 this关键字
5.10 static关键字
5.11 代码块
5.12 构造方法私有化
5.13 对象数组
5.14 内部类
5.15 实例讲解
6.面向对象(高级篇) 6.1 继承的基本概念
6.2.继承的进一步研究
6.3.范例——继承的应用
6.4.final关键字
6.5.抽象类的基本概念
6.6.接口的基本概念
6.7.对象的多态性
6.8.instanceof关键字
6.9.抽象类与接口的应用
6.10.实例分析:宠物商店
6.11.Object类
6.12.包装类
6.13.匿名内部类
7.异常的捕获及处理 7.1.异常的基本概念
7.2.throws与throw关键字
7.3.Exception类与RuntimeException类
7.4.自定义异常类
7.5.断言
8.包及访问控制权限 8.1.包的概念及使用
8.2.jar命令的使用
8.3.访问控制权限
8.4.Java命名规范
9.多线程 9.1.进程与线程
9.2.Java中线程的实现
9.3.线程的状态
9.4.线程操作的相关方法
9.5.线程的操作范例
9.6.同步与死锁
9.7.线程操作案例——生产者及消费者
9.8.线程的生命周期
10.泛型 10.1.为什么要使用泛型
10.2.泛型应用
10.3.泛型的安全警告
10.4.通配符
10.5.泛型与子类继承的限制
10.6.泛型接口
10.7.泛型方法
10.8.泛型数组
10.9.泛型的嵌套设置
10.10.范例——泛型应用
11.java常见类库 11.1.StringBuffer类
11.2.Runtime类
11.3.System类
11.4.日期操作类
11.5.Date类、Calendar类、DataFormat类、SimpleDateFormat类
11.6.Math类
11.7.Random类
11.8.NumberFormat类
11.9.Arrays类
11.10.正则表达式
11.11.Pattern 类和Matcher类
12.java IO 12.1.操作文件的类——File
12.2.RandomAccessFile类
12.3.字节流与字符流基本操作
12.4.转换流——OutputStreamWriter类与InputStreamReader类
12.5.内存操作流
12.6.管道流
12.7.打印流
12.8.System类对IO的支持
12.9.BufferedReader类
12.10.Scanner类
12.11.数据操作流
12.12.字符编码
12.13.对象序列化
13.java集合类 13.1.认识类集
13.2.Collection接口
13.3.List接口
13.4.Set接口
13.5.SortedSet接口
13.6.集合的输出
13.7.Map接口
13.8.SortedMap接口
13.9.集合工具类:Collections
14.java数据库编程 14.1.JDBC概述
14.2.MySQL数据库
14.3.SQL语法基础
14.4.JDBC操作步骤
14.5.连接数据库
14.6.执行数据库的更新操作
14.7.ResultSet接口
14.8.PreparedStatement接口
14.9.处理大数据对象
14.10.CallableStatement接口
14.11.JDBC2.0操作
14.12.事务处理
14.13.使用元数据分析数据库
14.14.使用JDBC连接MySQL数据库
15.项目实战:大数据爬虫 15.1.HttpClient 下载页面
15.2.Xpath 解析页面
15.3.多线程爬虫
15.4.数据入库MySQL
三、Hadoop集群及开发环境搭建
1.大数据平台规划及部署 1.1大数据平台概述
1.2如何搭建大数据平台
1.3集群搭建网络选择
2.Linux安装部署详解 2.1Linux概述
2.2Centos镜像文件下载
2.3Centos系统安装部署
3.Hadoop集群安装前准备 3.1虚拟机快照设置
3.2虚拟机网络配置
3.3虚拟机静态IP设置
3.4用户与用户组创建
3.5x-shell远程连接Linux虚拟机
3.6虚拟机主机名配置
3.7虚拟机防火墙配置
3.8虚拟机其他服务安装
3.9主机名与IP映射配置
3.10配置SSH免密码登录
4.Hadoop集群环境搭建 4.1JDK安装配置
4.2Hadoop配置文件修改
4.3HDFS文件系统格式化
4.4Hadoop集群环境启动
4.5Hadoop集群测试运行
5.Eclipse与MapReduce集成开发 5.1JDK安装配置
5.2Eclipse安装配置详解
5.3Eclipse构建MapReduce项目
5.4Eclipse与Hadoop插件集成
四、HDFS分布式文件系统
1.HDFS系统架构原理 1.1数据存储方式详解
1.2大数据平台数据存储详解
1.3各种文件系统的操作对比
1.4数据块详解
1.5DataNode及副本存储策略
1.6SecondaryNameNode详解
1.7HDFS架构原理
1.8HDFS读写流程
2.HDFS实操 2.1HDFS相关操作概述
2.2HDFS的shell操作
2.3HDFS常用类和方法
2.4获取HDFS文件系统
2.5创建HDFS文件和目录
2.6本地单文件上传至HDFS
2.7本地多文件上传至HDFS
2.8查询HDFS目录下所有文件
2.9从HDFS下载文件
2.10删除HDFS指定目录
2.11获取HDFS节点信息
2.12获取HDFS数据块信息
2.13HDFS总结
3.HDFS 高级 3.1HDFS安全模式
3.2NameNode的HA架构原理
3.3NameNode的Federation原理
五、MapReduce分布式计算框架
1.MapReduce编程模型 1.1MapReduce概述
1.2MapReduce核心设计思想
1.3MapReduce编程模型
1.4详细分析MapReduce数据流动过程
2.MapReduce编程实现 2.1MapReduce编程骨架讲解
2.2MapReduce编程全流程讲解
2.3MapReduce测试运行
3.MR单元测试及DeBug调试 3.1字谜项目分析
3.2字谜项目Mapper类的编写
3.3字谜项目Mapper单元测试
3.4字谜项目Reducer的编写
3.5字谜项目Reducer单元测试
3.6字谜项目MapReduce相关配置及运行
3.7字谜项目MapReduce完整单元测试
3.8字谜项目MapReduce在集群完整运行流程
3.9多个MapReduce集中管理与配置
4.MapReduce高级编程 4.1MapReduce源码分析
4.2MapReduce二次排序(扩展)
4.3MapReduce Topn实现(扩展)
4.4MapReduce Join算法(扩展)
4.5MapReduce数据倾斜与优化(扩展)
4.6Hadoop Streaming实现多语言编程(扩展)
六、YARN 资源管理器
1.YARN系统架构原理 1.1YARN概述
1.2YARN产生背景
1.3YARN系统架构
1.4YARN工作原理
2.MapReduce On YARN 2.1MapReduce ON YARN概述
2.2MapReduce ON YARN运行流程(一)
2.3MapReduce ON YARN运行流程(二)
3.YARN调度器 3.1YARN资源调度器产生背景
3.2YARN资源调度器的双层资源调度模型
3.3YARN资源调度器的层级队列模型
3.4YARN资源调度器的资源抢占过程及实现
3.5YARN资源调度器之Capacity Scheduler
3.6YARN资源调度器之Fair Scheduler
七、Shell 脚本编程
1.Linux 核心基础语法讲解 1.1Linux Shell概述
1.2用户与用户组操作命令详解
1.3文件和目录操作命令详解
1.4文件查找命令详解
1.5文本编辑器详解
1.6正则表达式详解
1.7文件排序、合并和分割详解
2.Shell 核心基础语法详解 2.1Shell变量详解
2.2Shell参数传递详解
2.3Shell基本运算符详解
2.4Shell echo命令详解
2.5Shell printf命令详解
2.6Shell test命令详解
2.7Shell 流程控制详解
2.8Shell 函数详解
2.9Shell 输入重定向详解
2.10Shell文件包含详解
2.11Shell脚本调试技术详解
3.Shell编程实战 3.1Topn实现
3.2Crontab定时器使用
3.3大数据集群分发脚本deploy.sh实现
3.4大数据集群远程命令脚本runRemoteCmd.sh实现
3.5Shell脚本开发企业规范
八、Zookeeper 分布式协调服务
1.ZooKeeper系统架构原理 1.1ZooKeeper定义及特点
1.2ZooKeeper基本架构
1.3ZooKeeper工作原理
1.4Zookeeper选举
1.5Zookeeper写操作流程
1.6ZooKeeper服务(数据模型、基本操作、实现方式)
2.Zookeeper分布式集群安装部署 2.1集群规划
2.2环境准备
2.3JDK安装配置
2.4Zookeeper集群安装部署
3.Zookeeper实操 3.1Zookeeper常用命令讲解
3.2Zookeeper Shell实操

3.2.1查看ZK目录结构

3.2.2创建Znode节点

3.2.3获取Znode节点

3.2.4修改Znode节点

3.2.5删除Znode节点

3.3Zookeeper Java客户端实操

3.3.1创建Znode节点

3.3.2删除Znode节点

3.3.3获取Znode子节点

3.3.4获取Znode节点数据

3.3.5更新Znode节点数据

3.3.6检测Znode节点是否存在

4.Zookeeper高级 4.1Zookeeper统一命名服务
4.2利用Zookeeper对Hadoop集群配置管理
4.3利用Zookeeper对HBase集群上线下线管理
4.4Zookeeper分布式通知与协调
4.5Zookeeper实现分布式锁
4.6Zookeeper实现分布式队列
4.7Zookeeper CAP理论
4.8Zookeeper 选举
九、Hadoop分布式集群安装部署
1.HDFS与YARN高可用原理 1.1HDFS HA架构及原理
1.2YARN HA架构及原理
2.Hadoop分布式集群安装部署 2.1Apache Hadoop分布式集群安装部署
2.2CDH Hadoop分布式集群安装部署
2.3Cloudera Manager Hadoop分布式集群安装部署
2.4Ambari Hadoop分布式集群安装部署
十、Hive 数据仓库
1.Hive系统架构原理 1.1Hive概述
1.2Hive优缺点
1.3Hive工作原理
1.4Hive数据类型
1.5Hive系统架构
1.6Hive文件格式
2.Hive安装部署 2.1Mysql元数据库安装
2.2Hive安装配置
2.3Hive服务启动与测试
2.4Hive图形化界面安装与配置
3.Hive实操 3.1Hive交互式与非交互式操作
3.2Hive DDL与DML操作
3.3Hive SQL数据统计分析
3.4Hive Join使用
3.5Hive内置函数与UDF等自定义函数
3.6Hive性能调优
3.7JDBC连接Hive Server2
3.8beeline 连接Hive Server2
3.9综合实践:金融数据统计分析
十一、Sqoop 数据导入导出工具
1.Sqoop 架构原理 1.1Sqoop产生背景
1.2Sqoop概述
1.3Sqoop生态圈位置
1.4Sqoop系统架构
1.5Sqoop数据导入原理
1.6Sqoop数据导出原理
2.Sqoop 安装部署 2.1Sqoop安装前环境准备
2.2Sqoop版本选择与下载
2.3Sqoop配置文件修改
2.4Sqoop测试运行
3.Sqoop 实操 3.1HDFS与MySQL数据导入导出
3.2Hive与MySQL数据导入导出
3.3HBase与MySQL数据导入导出
3.4Sqoop shell脚本开发
3.5Sqoop shell企业开发规范
十二、Azkaban Hadoop工作流引擎
1.Azkaban概述 1.1.工作流概述

1.1.1.工作流之JBPM

1.1.2.工作流之Activiti

1.2.Hadoop内置工作流

1.2.1.Hadoop工作流--ChainMapper/ChainReducer

1.2.2.Hadoop工作流--JobControl

1.2.3.Hadoop内置工作流的不足

1.3.第三方框架Azkaban

1.3.1.Azkaban是什么

1.3.2.Azkaban的功能特点

1.3.3.Azkaban的架构

1.3.4.Azkaban三种运行模式

2.Azkaban环境安装部署 2.1.Azkaban 安装部署

2.1.1安装配置Mysql

2.1.2安装配置Azkaban Web Server

2.1.3安装配置Azkaban Executor Server

2.2.Azkaban Web Server插件安装

2.2.1.安装HDFS Viewer插件

2.2.2.安装Job Summary插件

2.2.3.安装Reportal插件

2.2.4.Azkaban Executor Server 插件安装

2.2.5.安装Hive插件

2.2.6.安装Reportalhive插件

2.2.7.效果监测

十三、HBase 分布式数据库
1.HBase系统架构原理 1.1.HBase 定义及特点
1.2.HBase 数据逻辑模型与物理模型
1.3.HBase 系统架构与工作原理
1.4.HBase WAL(预写日志)
1.5.HBase Compact && Split
1.6.HBase 高可用、容错、Region定位
1.7.HBase 数据读写流程
1.8.HBase与传统数据库、Hive对比
1.9.HBase 负载均衡
2.HBase分布式集群搭建 2.1HBase集群规划
2.2HBase集群安装配置
2.3HBase集群测试运行
2.4HBase数据库建模
3.HBase基本操作 3.1HBase shell操作

3.1.1General操作

3.1.2DDL操作

3.1.3DML操作

3.2HBase Java客户端操作

3.2.1HBase Maven依赖引入

3.2.2PUT插入操作

3.2.3GET 查询操作

3.2.4SCAN批量查询

3.2.5DELETE删除操作

3.2.6BATCH批量操作


4.HBase高级应用 4.1HBase热点问题产生及解决
4.2HBase预建分区
4.3HBase Rowkey设计
4.4HBase ColumnFamily设计
4.5HBase 表设计
5.HBase应用案例 5.1HBase淘宝案例分析
5.2HBase世纪佳缘案例分析
5.3HBase北京移动案例分析
6.HBase项目实操 6.1项目Rowkey设计
6.2项目表设计
6.2项目预建分区
6.3项目数据入库
6.4根据Rowkey实现复杂业务查询
6.5过滤器使用

6.5.1RowFilter 行过滤器使用

6.5.2FamilyFilter 列族过滤器

6.5.3QualifierFilter 列名过滤器使用

6.5.4ValueFilter 值过滤器使用

6.5.5SingleColumnValueFilter 单列值过滤器使用

6.5.6PrefixFilter 前缀过滤器使用

6.6计数器使用
7.HBase性能调优 7.1内存
7.2CPU
7.3JVM
7.4查询优化
7.5写入优化
7.6参数调优
7.7Zookeeper优化
7.8列簇优化
7.9负载均衡优化
7.10降低IO企业实战总结
7.11冷热数据处理企业实战总结
8.HBase集群管理维护 8.1下线服务器
8.2新增服务器
8.3集群滚动重启
8.4数据导入导出
8.5集群间数据复制
8.6批量导入
8.7日志级别设置
8.8故障处理
9.HBase集成开发 9.1Hive与HBase集成开发
9.2Phoenix与HBase集成开发
十四、Hue大数据可视化分析
1.Hue安装配置 1.1概述
1.2下载及解压
1.3安装依赖包
1.4编译
1.5文件配置
1.6服务启动
1.7web界面
2.Hue集成开发 2.1Hue与HDFS集成开发
2.2Hue与YARN集成开发
2.3Hue与Hive集成开发
2.4Hue与HBase集成开发
2.5Hue与MySQL集成开发
2.6Hue大数据可视化分析
十五、 Solr 搜索引擎
1.Solr系统架构及原理 1.1.Solr定义
1.2.Solr系统架构
1.3.Solr工作原理
1.4.Solr索引与搜索
2.Solr安装部署 2.1.Solr单节点安装部署
2.2.Solr主从结构部署
2.3.SolrCloud集群安装部署
3.Solr实操 3.1Solr 相关配置文件详解
3.2使用Solrj实现Java操作Solr
3.3Solr 查询详解
3.4Solr优化
十六、Redis 基于内存的键值数据库
1.Redis概述 1.1Redis简介
1.2Redis的优势
1.3Redis数据类型-String
1.4Redis数据类型-Hash
1.5Redis数据类型-List
1.6Redis数据类型-Set
1.7Redis数据类型-ZSet
2.Redis环境部署 2.1Redis环境安装部署
2.2Redis常用配置
3.Redis常用操作命令 3.1Redis高级命令
3.2Redis使用Java API
4.Redis高级特性 4.1Redis的安全性
4.2Redis主从复制
4.3Redis事务
4.4Redis持久化机制
4.5Redis发布与订阅模式
十七、ElasticSearch5.6.x 搜索引擎
1.ElasticSearch概述 1.1背景
1.2简介
1.3与Solr、Lucene对比
1.4与关系型数据库对比
1.5架构及工作原理
1.6在大数据生态圈位置
1.7应用场景
2.ElasticSearch5.6.x分布式集群安装部署 2.1集群规划
2.2集群环境检查
2.3JDK安装配置
2.4ElasticSearch集群安装配置
2.5Kibana安装配置
2.6ElasticSearch与Kibana启动运行
2.7ElasticSearch与Kibana Web可视化
2.8ElasticSearch集群常见问题
3.ElasticSearch CURL基本操作 3.1CURL命令使用
3.2建立索引库
3.3PUT与POST使用
3.4查询索引GET
3.5DSL查询
3.6MGET查询
3.7HEAD使用
3.8索引删除
3.9bulk 批量操作
4.ElasticSearch核心服务 4.1Cluster
4.2Shards
4.3Replicas
4.4Recovery
4.5Gateway
4.6Transport
4.7Setting
4.8Mapping
5.ElasticSearch Java基本操作 5.1maven引入依赖包
5.2基本增删改查操作
5.3SearchType使用
5.4查询、分页、排序、过滤及高亮显示等
5.5Aggregation聚合
5.6多索引、多类型查询
5.7分片查询与极速查询
6.ElasticSearch 索引 6.1正排索引
6.2倒排索引
6.3索引组成及索引过程
6.4索引与搜索原理
6.5停用词
6.6中文分词

6.6.1集成IK中文分词插件

6.6.2自定义IK词库

6.6.2热更新IK词库

7.ElasticSearch 优化 7.1系统优化
7.2内存优化
7.3分片优化
7.4副本优化
7.5索引优化
7.6数据导入优化
7.7索引查询优化
7.8软件版本优化
8.ElasticSearch 项目实操 8.1需求分析
8.2技术选型
8.3架构设计
8.4索引字段规划
8.5数据入库并建立索引
8.6数据可视化
9.Kibana数据可视化 9.1测试数据集准备
9.2mapping编写
9.3创建索引库
9.4批量导入数据
9.5Kibana Settings配置
9.6Kibana Discover查询
9.7Kibana Visualize可视化:饼图、柱状图及热力图等
9.8Kibana Dashboard的使用
十八、Flume1.8 日志收集系统
1.Flume概述 1.1回顾HDFS数据接入的多种方式
1.2Flume 定义
1.3为什么使用Flume
1.4Flume解决了哪些问题
1.5Flume使用场景
1.6Flume在生态系统中的位置
1.7Flume NG系统架构:Source、Channel、Sink
2.Flume安装部署 2.1Flume安装系统要求
2.2Flume版本选择
2.3Flume安装部署
2.4Flume配置文件详解
2.5Flume服务测试运行
3.Flume实操 3.1Flume Source使用

3.1.1Avro Source配置讲解、编写及测试运行

3.1.2Thrift Source配置讲解、编写及测试运行

3.1.3NetCat TCP Source配置讲解、编写及测试运行

3.1.4HTTP Source配置讲解、编写及测试运行

3.1.5Exec Source配置讲解、编写及测试运行

3.1.6Spooling Directory Source配置讲解、编写及测试运行

3.1.7Taildir Source配置讲解、编写及测试运行

3.2Flume Channel使用

3.2.1Memory Channel配置讲解、编写及测试运行

3.2.2File Channel配置讲解、编写及测试运行

3.3Flume Sink使用

3.3.1HDFS Sink配置讲解、编写及测试运行

3.3.2Avro Sink配置讲解、编写及测试运行

3.3.3HBase Sink配置讲解、编写及测试运行

3.3.4Kafka Sink配置讲解、编写及测试运行

3.4Flume 拦截器使用

3.4.1Timestamp Interceptor配置讲解、编写及测试运行

3.4.2Host Interceptor配置讲解、编写及测试运行

3.4.3Static Interceptor配置讲解、编写及测试运行

3.4.4Remove Header Interceptor配置讲解、编写及测试运行

3.4.5UUID Interceptor配置讲解、编写及测试运行

3.4.6Search and Replace Interceptor配置讲解、编写及测试运行

3.4.7Regex Filtering Interceptor配置讲解、编写及测试运行

3.4.8Regex Extractor Interceptor配置讲解、编写及测试运行

4.Flume应用场景 4.1multi-agent flow讲解、配置与测试运行
4.2聚合flow讲解、配置与测试运行
4.3多路flow 复制channel讲解、配置与测试运行
4.4多路flow 复用channel讲解、配置与测试运行
4.5load balance讲解、配置与测试运行
4.6failover讲解、配置与测试运行
5.Flume核心知识讲解 5.1可用性(availablity)
5.2数据可靠性保障
5.3数据重复解决
5.4可扩展性(scalability)
6.Flume同类产品介绍 6.1Scribe
6.2Logstash
6.3Filebeat
6.4Kafka
7.Flume项目实操 7.1构建Flume高可用集群
7.2Flume 源码开发流程
7.3Flume自定义拦截器:文件分类
7.4Flume自定义拦截器:数据源打标签
7.5Flume与HBase集成开发:自定义序列化类
7.6Flume TAILDIR源码BUG修改与测试
7.7Flume与Kafka集成开发
7.8Flume启动、关闭shell脚本开发
8.Flume扩展学习 8.1Flume HTTP监控
8.2Flume Ganglia监控
十九、Kafka1.x 分布式消息系统
1.Kafka概述 1.1定义
1.2在Linked In 内部的应用
1.3设计目标
1.4优势
1.5特点
1.6在大数据生态系统中的位置
2.Kafka系统架构及原理 2.1系统架构组成:Broker、Topic、Partition、Replica、生产者及消费者等
2.2拓扑结构及运行原理
2.3Zookeeper在Kafka集群中的作用
3.Kafka1.x分布式集群搭建 3.1版本兼容性选择
3.2下载及解压
3.3集群配置
3.4集群安装同步
3.5集群启动与测试运行
3.6集群可视化监控
4.Kafka生产者 4.1设计原则
4.2写入方式
4.3消息路由
4.4写入流程
4.5代码编写、测试运行
4.6发送模式:同步模式与异步模式
5.Kafka消费者 5.1简单消费者

5.1.1设计原则

5.1.2简单消费者流程

5.1.3代码实现

5.2高级消费者

5.2.1设计原则

5.2.2高级消费者流程

5.2.3代码实现

5.3新消费者

5.3.1优势

5.3.2新消费者组管理

5.3.3代码实现

6.Kafka Broker 6.1存储方式
6.2存储策略
7.Kafka 高可用 7.1Partition冗余
7.2Replica分配算法
7.3Leader failover
7.4Broker failover
7.5Controller failover
8.Kafka 可靠性保证 8.1消息发送的可靠性保障(producer)
8.2消息消费的可靠性保障(consumer)
8.3Kafka集群的可靠性保障(Broker)
9.Kafka 同类产品比较 9.1RabbitMQ
9.2Redis
9.3ZeroMQ
9.4ActiveMQ
10.Kafka 实操 10.1Flume与Kafka集成开发
10.2Flume与Kafka分区优化:自定义拦截器
10.3集群启停脚本开发
10.4集群参数调优
10.5Topic命名技巧
10.6集群滚动升级
二十、Storm 分布式流式计算框架
1.实时流式计算介绍 1.1.实时流式计算是什么
1.2.实时流式计算的特点
1.3.实时流式计算使用场景分析
1.4.Queue+Worker,S4, Storm,Spark简单介绍
2.认识Storm 2.1.Storm介绍
2.2.Storm特点
2.3.Storm优势
3.Storm使用场景 3.1.新浪的实时分析平台
3.2.腾讯的实时计算平台
3.3.奇虎360的实时平台
3.4.百度的实时系统
3.5.阿里的Jstorm
4.Storm的系统架构 4.1.主节点(Nimbus)
4.2.从节点(Supervisor)
4.3.Web节点(Storm UI)
4.4.协调节点(Zookeeper)
5.Storm的工作流 5.1.作业单元(Topology)
5.2.数据源编程单元(Spout)
5.3.数据处理编程单元(Bolt)
6.Storm的并发机制 6.1.服务器(Nodes)
6.2.JVM虚拟机(Worker)
6.3.线程(Executor)
6.4.Spout/Bolt实例(Task)
7.Storm的数据流 7.1.Stream讲解(Tuple)
7.2.Storm的数据模型
7.3.Stream Grouping
8.Storm的保障机制 8.1.功能性保障:多粒度的并行化
8.2.非功能性保障:多级别的可靠性
9.Storm部署 9.1.Storm版本发展历史
9.2.本地模式
9.3.分布式模式
9.4.主节点Nimbus
9.5.工作节点Supervisor
9.6.Storm UI
9.7.Storm配置项
10.项目如何在Storm集群下运行 10.1.Storm Java API
10.2.Topology创建与提交
10.3.实例操作
11.Storm集群的监控与管理 11.1.主机信息监控
11.2.日志监控
11.3.Storm UI
二十一、Scala基础课程
1.Scala基础语法 1.1简介
1.2环境安装及配置
1.3开发环境搭建
1.4数据类型
1.5变量
1.6访问修饰符
1.7运算符
1.8IF...ELSE语句
1.9循环
1.10字符串
1.11数组
1.12类和对象
2.Scala高级语法 2.1特征
2.2文件IO
2.3闭包
2.4函数
2.5柯里化
2.6高级函数
2.7集合
2.8迭代器
2.9模式匹配
2.10提取器
2.11正则表达式
2.12异常处理
2.13Scala实现Spark Wordcount
二十二、Spark2.3.x 分布式内存计算框架
1.Spark概述 1.1Spark简介
1.2Spark生态系统介绍
1.3了解Spark编程套路
2.Spark安装部署 2.1Spark安装简介
2.2Local模式
2.3Local Cluster模式
2.4Standalone模式
2.5Spark on YARN
2.6各种模式比较
3.Spark Core 3.1Spark编程环境搭建
3.2Spark交互式工具spark-shell
3.3Spark应用程序部署工具spark-submit
3.4理解Spark RDD

3.4.1RDD弹性分布式数据集

3.4.2介绍RDD实现原理

3.4.3Action和Transformation

3.4.4理解窄依赖与宽依赖

3.4.5RDD常用函数

3.5Spark Job调度机制

3.5.1基本术语

3.5.2运行架构(DAGScheduler、TaskSeduler、Task、容错性、推测机制、数据本地性)

3.5.3Spark on Standalone运行过程分析

3.5.4Spark on YARN 运行过程分析

4.Spark Streaming 4.1Spark Streaming概述
4.2SparkStreaming架构原理
4.3性能调优

4.3.1设置合理的Job并行度

4.3.2数据序列化

4.3.3选择合适的Batch Duration

4.3.4缓存数据

4.3.5内存调优

4.3.6设置合理的cpu数

4.4容错机制

4.4.1检查点机制-checkpoint

4.4.2Driver节点容错

4.4.3Worker节点容错

4.5SparkStreaming应用案例

4.5.1网络数据操作

4.5.2文本数据操作

4.5.3Window窗口操作

4.6SparkStreaming 项目实操

4.6.1业务建模

4.6.2Spark Streaming与NC集成开发

4.6.3Spark Streaming与NC、MySQL集成开发

4.6.4Spark与Kafka、MySQL集成开发

4.6.5Spark Streaming与Flume、Kafka、MySQL集成开发

5.Spark SQL 5.1Hive 知识回顾
5.2Spark SQL组件、架构
5.3Catalyst上下文:SQLontext、HiveContext
5.4ThriftServer和CLI
5.5SparkSQL应用案例
5.6用户自定函数
5.7SparkSQL性能调优
5.8SparkSQL 实操

5.8.1SparkSQL与Hive集成开发

5.8.2SparkSQL与HBase集成开发

5.8.3SparkSQL与MySQL集成开发

6.Spark Structured Streaming 6.1概述
6.2第一个Structured Streaming案例开发
6.3编程模型
6.4数据源
6.5项目实操

6.5.1业务建模

6.5.2Structured Streaming与NC集成开发

6.5.3Structured Streaming与NC、MySQL集成开发

6.5.4Structured Streaming与Kafka、MySQL集成开发

6.5.5Structured Streaming与Flume、Kafka、MySQL集成开发

二十三、大数据项目实战
企业级项目实战一:某权威机构广电收视率系统(Hadoop) 1.项目背景

《快乐男声》、《最美和声》、《中国梦之声》……今年夏天,各种音乐选秀节目竞争激烈。哪个节目更受观众欢迎?节目中的“笑点”和“尿点”又藏在哪儿?歌华有线的“北京大样本收视数据研究中心”给出了答案。这个去年初才筹建的机构,掌握着最热门的“大数据”计算模式,如今正充当起各个电视节目的幕后“军师”。

2.项目需求分析

为了便于我们掌握哪个节目更受观众欢迎以及节目中的“笑点”和“尿点”,我们可以通过一些用户的收视指标进行监测,比如收视人数、平均收视人数、收视率、市场份额、平均到达人数、到达率以及人均收视时长等等,我们可以将这些指标按天统计,可以得出每个节目收视排名,从而知道那个节目更受欢迎;我们也可以将这些指标按小时、甚至按分钟进行统计,可以精确的知道某个节目在那哪一分钟或者某一段时间收视最高,从而知道某个节目的最精彩的部分,甚至还可以推断出节目中收视率高是由哪个明星带来的。当然我们可以通过用户的数据,还可以掌握其它维度的收视情况,比如频道、频道类别、栏目、栏目类别、节目、节目类别、具体频道具体节目等等。

3.项目知识要点

3.1.Flume要点

3.1.1.Flume Agent(Source Channel Sink)的选择及配置。

3.1.2.Flume 数据采集过程中大文件异常处理。

3.1.3.Flume数据采集过程中小文件合并以及数据压缩使用

3.2.MapReduce要点

3.2.1. 解析用户原始数据:过滤“不合规”数据;对数据的格式进行转换和规整;根据后续的统计需求,过滤分离出各种不同主题的基础数据

3.2.2. 根据业务需求统计收视率相关指标,比如收视人数、到达人数、收视率、到达率、市场份额等

3.2.3.从时间、节目、栏目等多维度统计收视率数据

3.2.4.构建MR运行拓扑图,理清MR相互依赖关系。

3.3.Hive要点

3.3.1.Hive 建模

3.3.2.Hive 表动态分区

3.3.3.Hive 数据倾斜处理

3.3.4.Hive Job 优化

3.4.Sqoop数据导出要点

3.4.1.Sqoop 入库数据任务失败处理

3.4.2.Sqoop 设置合理的并行度

3.5.Azkaban工作流调度要点

3.5.1. 将整个项目的数据处理过程,从数据采集到数据分析,再到结果数据的导出,一系列的任务分割成若干个Azkaban的工作流,并进行协调调度

3.5.2.各个阶段依赖关系和执行脚本的编写

3.5.3.工作流的定时调度

4.项目安装部署及架构设计

4.1.机器选型、节点规划、目录规划等。

4.2.分布式集群环境搭建

4.3.项目整体架构设计

5.项目开发流程

5.1.使用Flume监控数据目录,将数据收集到HDFS分布式文件系统

5.2.编写MapReduce解析数据、清洗数据、统计分析数据,结果存储HDFS

5.3.使用Hive对每小时、每天、每月以及多维度收视率数据进行统计

5.3.使用Sqoop 将Hive的分析结果数据导入MySQL数据库

5.5.打通项目的各个环节,整体联调及性能调优

5.6.开发Web项目实现收视率查询、展示系统

6. 项目总结

6.1.实际生产环境中的注意事项

6.2.谈谈项目需要改进的地方

6.3.项目中遇到的问题及解决方法

企业级项目实战二:金融实时数据动态指标计算平台(Storm) 1.项目背景

本项目主要针对用户充值,金币消耗,钻石消耗等数据,进行实时计算分析,统计出来最近一段时间内用户的消费情况,为运营部门提供运营决策依据。

2.项目需要解决的问题

2.1.实时计算平台架构的部署

2.2.使用Zookeeper实现分布式共享锁,保证分布式架构下多线程处理数据的安全性

2.3.Flume拦截器的使用以及自定义拦截器的实现

2.4.如何实现Flume进程的监控,以及进程挂掉之后如何自动重启

2.5.调整Flume进程内存避免频繁GC

2.6.针对Kafka集群频繁发生副本丢失,导致频繁进行副本复制,进而导致集群压力过大

2.7.针对Kafka消费者经常超时导致数据消费失败问题

2.8.如何实现Kafka集群平滑升级(不影响线上业务的情况下)

2.9.如何定位Storm任务的计算瓶颈

2.10.如何实现Strom任务资源动态调配

3.项目知识要点

3.1.Zookeeper要点

3.1.1.Zookeeper的核心功能使用

3.1.2.Zookeeper中的临时节点和Watcher监视器

3.2.Flume要点

3.2.1.Flume Agent(Source Channel Sink)的选择及配置

3.2.2.Flume拦截器的使用

3.2.3.Flume参数调优

3.2.4.Flume进程监控实现以及进程挂掉之后自动重启

3.3.Kafka要点

3.3.1.Kafka中topic的partition和replication的设计

3.3.2.Kafka集群平滑升级

3.3.3.Kafka集群参数调忧

3.4.Storm要点

3.4.1.Storm并行度的分析以及调整

3.3.2.Storm UI界面关键指标分析

3.4.3.Storm实现动态资源调整

4.项目技术选型

4.1.Flume:内置十几种数据采集方式、几种存储队列、十几种数据写出方式,组件轻量不会影响业务系统并吞吐量很高,消息可带消息头可区分日志来源

4.2.Kafka:高可用高并发的分布式消息队列,数据一旦进入kafka则不会丢失,并且数据可用重复使用,存储日志分布在集群各个机器上提高后续并发处理能力

4.3.Storm:分布式实时计算框架,拥有低延迟、高性能、分布式、可扩展、容错等特性,可以保证消息不丢失,消息处理严格有序。

5.项目生产环境机器配置及部署

5.1.Zookeeper集群配置

5.2.Kafka集群配置

5.3.Storm集群配置

6.业务实现

6.1.分别利用Log4j+Flume+Kafka+Storm或者前端埋点+Kafka+Storm等架构实现实时数据处理需求

6.2.项目具体代码实现

6.3.项目相关指标统计分析

6.4.项目的流分组实现

6.5.项目的可靠性实现

6.6.项目的定时任务实现

6.7.项目整体流程跑通

6.8.项目整体优化及性能调优

7.项目总结

7.1.实际生产环境中的注意事项

7.2.谈谈项目需要改进的地方

7.3.各个项目中遇到的坑

企业级项目实战三:知名手机厂商用户行为实时分析系统(Spark) 1.需求分析

1.1.背景

1.1.1.需要实时了解手机用户应用使用情况

1.1.2.对系统接口的响应情况需要实时监控

1.2.总体要求

1.2.1.搭建高可用的实时计算框架,在框架中的每个部分必须是高可用的

1.2.2.实时计算用户对应用的使用时长情况,比如每小时、每天对应用的使用情况

1.2.3.实时计算每个接口的PV、UV、响应时间等

1.2.4.对用户的请求做到毫秒级响应

1.3.难点分析

1.3.1.业务系统很多,如何实时聚合日志并对业务侵入性很小,这么多的系统的日志格式肯定都不一样,统一聚合后如何区分日志

1.3.2数据量很大如何达到高并发,让处理速度远高于写入速度

1.3.3.如何分布和处理数据才能对后续的系统减少压力,比如处理好的数据写入hbase,如何减少写次数

1.3.4.我们的系统是大数据和业务系统紧密结合的,那么在大数据大量用户的情况下如何做到低延时

1.4.解决问题的思路

1.4.1.需求分析并找出实现难点

1.4.2.设计每个难点的详细解决方案

1.4.3.程序或者脚本编码

1.4.4.项目测试

1.4.5.项目部署

1.4.6.项目交付

2.知识要点

2.1.Flume要点

2.1.1.怎么实现负载均衡

2.1.2.怎么设计拓扑以达到高可用

2.1.3.如何自己开发拦截器来实现我们特殊的要求,比如区分日志、均匀的写kafka分区

2.1.4.写kafka是同步写还是异步写

2.2.Kafka要点

2.2.1.kafka的高可用

2.2.2.建立topic,设置合理的分区与副本

2.2.3.kafka高级消费者与低级消费者

2.2.4.监控分区消息量以及消费进度

2.3.Spark要点

2.3.1.选择kafka低级消费者stream还是高级消费者stream

2.3.2.各种算子的功能

2.3.3.如何实现二次排序

2.3.4.根据业务情况如何优化计算逻辑,使计算结果对后续压力减少

2.4.Hbase要点

2.4.1.hbase的数据模型

2.4.2.计数器、过滤器

2.4.3.根据我们的项目需求如何设计rowkey和表结构

2.4.4.如何批量写hbase,减少网络通信时间

2.4.5.项目开发中如何选择合适的拦截器以避免全表扫描

3.难点攻克

3.1.难点攻克1:如何收集不同业务系统的日志

3.1.1.不同的业务系统由不同的团队开发运维,故产生的日志格式以及内容都不一样

3.1.2.每个业务系统会有多个日志机器,所以多个业务系统可能至少有十几台日志服务器

3.1.3.日志服务器上面一般都有业务系统的服务再跑,如何在采集日志的时候不影响业务系统

3.1.4.多个业务系统的日志被聚合在一起后如何在后续计算中区分日志

3.2.难点攻克2:数据容错和提高并发处理能力

3.2.1.业务系统产生的数据都是海量的,少则千万多则上亿,数据容错性如何保障,我们辛苦采集的数据不能在处理之前丢失

3.2.2.这些海量日志如何被均匀发布到多台机器上,来提高并发处理能力

3.2.3.采集的数据不只为一种计算需求所使用,数据要重复被不同的需求使用,那么如何保证

3.3.难点攻克3:减少写hbase的读写次数

3.3.1.我们不能每条日志处理后都写一次hbase,那么怎么减少写hbase的次数又不失准确性呢

3.3.2.hbase里面的结果数据是要被查询的,如何减少查询次数又能满足需求

4.方案设计

4.1.技术选型

4.1.1.Flume:内置十几种数据采集方式、几种存储队列、十几种数据写出方式,组件轻量不会影响业务系统并吞吐量很高,消息可带消息头可区分日志来源

4.1.2.Kafka:高可用高并发的分布式消息队列,数据一旦进入kafka则不会丢失,并且数据可用重复使用,存储日志分布在集群各个机器上提高后续并发处理能力

4.1.3.Spark-streaming:基于内存的流式计算框架,可用在内存中对数据批量快速处理,具有高吞吐量低延迟的特权

4.1.4.Hbase:亿级行百万列并可达到毫秒级查询的数据库,可以满足毫秒级低延迟查询

4.2.架构设计

4.2.1.日志采集层

4.2.2.日志存储层

4.2.3.日志处理层

4.2.4.结果存储层

4.2.5.查询接口

4.3.部署方案

4.3.1.拓扑图:哪些服务部署在哪些机器上

4.3.2.高可用方案:HDFS HA、ResourceManager HA、Flume高可用拓扑、Kafka高可用集群、Spark on YARN、Hbase HA

4.4.业务日志采集

4.4.1.提供Flume全拓扑图

4.4.2.采用两层agent设计

4.4.3.第一层在业务系统服务器上部署

4.4.4.第二层做日志聚合

5.集群安装配置

5.1.Zookeeper集群配置

5.2.Hadoop YARN集群配置

5.3.Hbase集群配置

5.4.Kafka集群配置

5.5.Spark On Yarn集群配置

6.业务实现

6.1.Flume采集agent

6.1.1.配置采集agent的Source、Channel、Sink、sinkGroup

6.1.2.采用负载均衡模式可达到高可用

6.2.Flume聚合agent

6.2.1.编写自定义拦截器区分业务类型

6.2.2.配置聚合agent的Source、Channel、Sink

6.2.3.配置写入kafka的生产者

6.2.4.如何让日志均匀的分布到Kafka分区

6.3.编写Spark-streaming程序

6.3.1.根据需求创建hbase表、设计rowkey

6.3.2.建立读取topic的DStream

6.3.3.根据需求组合各种算子统计数据,如map/mapRoPair/filter/reduceByKey/groupByKey/sortByKey/transform

6.3.4.将消费进度写入zookeeper以便监控消费情况

6.3.5.写入hbase,如何防止hbase的连接数太多

6.3.6.查看监控页面以查看作业执行情况

6.4.Hbase 访问数据

6.4.1.编写访问hbase的接口供实时访问

6.4.2.根据rowKey查询、范围查询

6.4.3.使用拦截器、如何防止全表扫描

6.5.spark程序提交

6.5.1.YARN程序简介

6.5.2.提交作业的不同方式

6.5.3.如何查看作业运行日志

6.5.4.作业的容错性怎么保证

7.项目总结

7.1.介绍实际生产环境的注意事项

7.2.谈谈项目需要改进的地方

7.3.各个项目中遇到的坑

企业级项目实战四:某大型传媒公司视频网站爬虫系统(分布式爬虫) 1.项目背景

1.1.了解传统广电收视率项目背景

1.2.用户数据有哪些价值点

1.3.哪些机构掌握这些数据

1.4.爬虫目标:互联网各大视频网站

2.项目总体需求

2.1.多维度统计:总播放指数、每日播放增量、评论数、收藏数、赞、踩

2.2.数据可视化:节目收视排行榜、多维度指标趋势图

3.难点分析

3.1.网站采取反爬策略

3.2.网站模板定期变动

3.3.网站URL抓取失败

3.4.网站频繁抓取IP被封

4.系统架构设计

4.1.总体架构解析

4.2.数据流向

4.3.功能模块划分

4.4.各个模块详细解读

5.技术选型

5.1.数据采集层

5.2.数据存储层

5.3.数据处理层

5.4.数据展示层

6.部署方案

6.1.爬虫项目:分布式集群

6.2.爬虫定时项目:一台服务器

6.3.爬虫项目监控:一台服务器

6.4.爬虫可视化:多台服务器

6.5.Hbase数据库:分布式集群

6.6.Redis数据库:分布式集群

6.7.Solr 全文检索:分布式集群

6.8.Zookeeper 监控:分布式集群

6.9.Solr 建立索引:一台服务器

6.10.邮件提醒:一台服务器

7.爬虫代码详尽实现

7.1.下载、解析视频网站详情页面url,提取关键字段数据

7.2.抽取视频网站解析规则模板,优化解析代码

7.3.打通数据爬虫的下载、解析、存储流程

7.4.采用Hbase存储爬虫数据,详解Hbase宽表和窄表设计以及爬虫项目表的详细设计,包含rowKey设计、列簇设计、历史版本

7.5.解析视频网站所有分页url并优化解析实现类

7.6.使用Queue队列存储视频网站所有url,实现视频网站url循环抓取

7.7.采用高、低优先级队列循环抓取视频网站url

7.8.采用Redis数据库实现url抓取优先级,并支持分布式爬虫

7.9.采用多线程爬虫,加快爬虫效率

7.10.定时启动爬虫项目

7.11.完善爬虫项目、补充抓取关键字段数据

8.全文检索

8.1.Lucene.Solr.ElasticSearch简介

8.2.全文检索过程:索引创建和搜索索引

8.3.解决全文检索的核心问题

8.4.Solr+Hbase组合提升检索效率

8.5.Solr 配置详解

8.6.Solr 安装部署

8.7.Solr 建立索引

8.8.Solr 检索视频网站数据

9.数据可视化

9.1.采用SpringMVC框架编写爬虫Web项目

9.2.编写Hbase工具类查询Hbase数据

9.3.编写Solr工具类检索爬虫数据

9.4.采用Freemarker或者jsp展示页面

9.5.采用Highcharts插件展示收视指数曲线图

9.6.打通爬虫整个项目流程,实时查看收视排行榜以及收视指数曲线图

项目优化一

1.设置合理的抓取时间间隔,模拟正常用户访问,降低IP被封概率

2.采用Redis 动态IP库,随机获取IP,随机抓取不同网站数据,降低同一IP对统一网站的访问频率

3.实现分布式爬虫,提高爬虫效率

项目优化二

1.Ganglia.Zookeeper简介

2.详解Zookeeper特性监控爬虫项目

3.完善爬虫项目注册Zookeeper集群

4.编写Watcher监视器监控爬虫项目生命周期

5.集群监控的整体联调

项目优化三

1.监控器监控爬虫项目异常,异常数据插入数据库

2.编写邮件Mail项目扫描爬虫项目异常信息,通知运维人员

3.编写定时器定时执行Mail项目

企业级项目实战五: 某视频网站大数据平台离线计算项目(Hadoop) 1.项目背景:

企业内部通常会有多个业务系统,数据也会分布在不同的数据库或不同的服务器上,那么这就形成了数据孤岛,比如有网站数据、手机客户端数据等,这样高层决策人员就不能从整体上观察数据,数据挖掘人员也不能利用多方面的数据进行用户画像、产品人员也不能查看本业务的全局数据来更好的了解产品的情况、市场人员也不能查看活动的整体效果来确定后续的销售方向等等。所以说企业通常会构建一个大数据平台,来满足企业各个部门对数据各种各样的需求。本项目就通过一个大数据平台离线计算的项目,使学员们从总体到细节了解大数据平台的方方面面。

2.项目总体需求分析

2.1.企业各个业务系统的数据及全公司的数据都要流入大数据平台

2.2.数据尽量要实现统一化数据采集

2.3.需要统一的调度系统

2.4.需要满足各方人员数据临时查询需求但不能影响正常作业的计算

3.项目难点分析

3.1.企业数据大而且多种多样,比如有多个业务系统,每个业务系统有数据库数据和日志文件等,日志文件中又有tsv、csv文件以及nginx访问文件等;

3.2.数据质量的保证,流水日志还好,从DB获取业务系统数据要有一定程度的完善才行,不然获取不到准确的增量数据

3.3.计算资源控制是难点,一般来说一个大数据集群可以跑线上作业,还要满足测试人员或者产品人员的日常查询,那么如何要做好资源管理就很重要了

4.解决问题的思路

4.1.需求分析并找出实现难点

4.2.设计每个难点的详细解决方案

4.3.程序或者脚本编码

4.4.项目测试

4.5.项目部署

4.6.项目交付

5.项目技术难点攻克

5.1.难点攻克一:数据采集

5.1.1.每个业务系统都有自己的数据库,我们需要从数据库中获取全量或者增量数据,数据库表结构可能发生变化,比如删除字段或者调整了字段的顺序

5.1.2.多个业务系统,每个业务系统会有多个日志机器,那么如何统一采集呢?

5.2.难点攻克二:资源管理

一般来说一个大数据集群可以跑多个线上作业,还要满足测试人员或者产品人员的日常查询,那么如何做好资源管理呢?

5.3.难点攻克三:交互式查询

产品人员、开发人员、测试人员要做临时查询,除了资源管理外还需要做到数据隐密性和安全性,那么如何做权限管理呢?

6.解决方案设计

6.1.技术选型:

HDFS+MapReduce+YARN+Flume+Hive+Sqoop+Oozie+Hue+Mysql

6.2.架构设计

6.2.1.数据采集层

6.2.2.数据存储层

6.2.3.数据处理层

6.2.4.数据集市层

7.具体实现

7.1.大数据平台构架设计

7.1.1.总计构架设计

7.1.2.数据采集规范制定

7.1.3.数据处理层

7.1.4.数据集市层

7.2.Hadoop YARN高可用搭建

7.2.1.YARN高可用配置

7.2.2.基于队列的FIFO(先进先出)

7.2.3.计算能力调度器Capacity Scheduler

7.2.4.公平调度器Fair Scheduler

7.3.MapReduce分布式计算模型

7.3.1.mapreduce整体流程

7.3.2.map数和reduce数如何确定

7.3.3.二次排序

7.4.Flume日志收集系统

7.4.1.Flume拓扑结构

7.4.2.Agent/source/channel/sink等组件的使用

7.5.数据采集实战

7.5.1.采集日志文件

7.5.2.采集数据库数据

7.6.MapReduce复杂日志格式代码实战

7.6.1.拆分不同业务日志

7.6.2.清洗复杂的日志数据

7.6.3.按约定生成固定格式的数据

7.7.Hive建模、HQL实战

7.7.1.Hive环境部署及使用

7.7.2.建立外部表、内部表、分区

7.7.3.维度表建立

7.7.4.数据处理表建立

7.7.5.数据集市表建立

7.8.作业调度系统Oozie实战

编写脚本配置统一的作业调度

7.9.sqoop导入mysql实战

将hive的计算结果导入mysql

8.项目总结

8.1.大数据项目需要综合运用的各种技术

8.2.介绍实际生产环境的注意事项

8.3.谈谈项目需要改进的地方

8.4.谈谈各个项目中遇到的坑及解决方法

企业级项目实战六: 某婚恋网站后台日志实时分析系统(Storm) 1.项目背景

网站是个交友平台,每个用户的操作包含登陆、发信、收信、看信、删信以及推荐的用户展示记录等等;网站后台会记录每个用户的操作,这些操作日志被存储到Kafka。需要对发信、收信、读信和推荐用户数分时段(每半个小时)进行统计。

2.设计目标

2.1.功能目标:实时数据收集和数据计算

2.2.性能目标:可用性、扩展性

3.分析需求

对网站的数据进行实时分析,统计出每半个小时内的用户收信、发信、看信、展示数据情况,展示的纬度包含地区、性别、算法、平台。方便对业务数据进行对比、改进、提升

4.系统架构与模块设计

4.1.整体架构

4.1.1.构建Kafka集群

4.1.2.构建Storm集群

4.1.3.构建Mysql集群

4.1.4.搭建Web服务器

4.2.数据源

数据源来自于社交网站,每个用户的登录、发信、收信、看信、删信以及推荐用户展示的记录等等

4.3.数据存储与处理

4.3.1.Kafka Spout 负责从kafka队列中提取日志;

4.3.2.ParseAndFilter Bolt 负责从所有日志中提取出需要处理的日志(这里提取的日志类型是读信、发信和推荐日志)

4.3.3.ExtractReadmsg Bolt 负责从读信日志中提取出时间、性别、平台、展位、用户类别、用户uid

4.3.4.ExtractRecommendmsg Bolt 负责从推荐日志中提取出时间、性别、平台、展位、用户类别

4.3.5.ExtractSendmsg Bolt 负责从发信日志中提取出时间、发信用户性别、平台、展位、发信用户类别、发信用户uid、收信用户类别、收信用户uid

4.3.6.ExtractSendmsg Bolt 负责从发信日志中提取出时间、发信用户性别、平台、展位、发信用户类别、发信用户uid、收信用户类别、收信用户uid

4.3.7.AnalysisReadmsg Bolt负责对提取出的读信信息进行统计,并存储到数据库

4.3.8.AnalysisRecommendmsg Bolt负责对提取出的推荐信息进行统计,并存储到数据库

4.3.9.AnalysisSendmsg Bolt负责对提取出的收信和发信信息进行统计,并存储到数据库

4.3.10.StoreSignal Spout 每隔半个小时发送存储信号,当AnalysisReadmsg, AnalysisSendmsg和AnalysisRecommendmsg收到信号时,会将统计信息存储到数据库

5.核心模块实现

5.1.模拟数据实现

通过python脚本,根据社交网站后台产生的真实数据格式,模拟产生用户的收、发信等数据

5.2.日志采集和存储实现

5.2.1.使用Kafka进行日志采集和数据存储,它是我们storm处理数据的来源

5.2.2.使用Mysql存储处理后的数据,它是后续Web展示的数据来源

5.3.数据处理实现

5.3.1.storm读取kafka集群数据

5.3.2.解析并过滤kafka集群数据

5.3.3.提取不同业务数据

5.3.4.统计分析业务数据

5.3.5.数据结果入库

5.3.6.发送定时信号,flush所有数据

5.3.7.构建Storm项目Topology

5.3.8.数据可视化

6.项目部署上线

6.1.上线大致流程

6.1.1.申请机器

6.1.2.搭建集群

6.1.3.部署软件

6.1.4.线下测试

6.1.5.正式上线

6.2.注意事项

6.2.1.Java参数优化

6.2.2.设置合理的worker数

6.3.项目监控

6.3.1.机器监控

6.3.2.集群监控

6.3.3.性能监控

企业级项目实战七:某移动大型电商网站数据分析系统 1.总体需求分析

1.1.项目背景

1.2.项目价值

1.3.项目需求

1.4.项目难点分析

2.数据采集实战

2.1.数据采集流程概览

2.2.埋点脚本执行

2.3.数据收集脚本执行

2.4.后端脚本之Lua语言详解

2.5.后端脚本之OpenResty详解

2.6.后端脚本解读

3.架构设计和方案部署

3.1.HDFS 设计前提和目标

3.2.HDFS 适用场景

3.3.HDFS异构层级存储结构

3.4.HDFS数据压缩与IO

3.5.数据接入

3.6.Flume 数据收集

3.7.同类产品介绍

3.8.系统总体架构设计

3.9.大数据集群整体部署方案

3.10.日志收集与处理模块设计

3.11.数据跨小时.跨天解决方案

3.12.构建目标Web应用

4.CDH5开发环境搭建

4.1.数据前端埋点

4.2.采集服务器部署

4.3.实现采集服务器负载均衡

4.4.部署HDFS集群环境(HA)

4.5.部署数据管道(Flume)

4.6.打通采集服务器到HDFS的管道

4.7.Flume实现按小时/天滚动日志

4.8.部署Yarn分布式集群(HA)

5.分析模块实现

5.1.MapReduce能够解决项目中的哪些问题

5.2.MapReduce实现1-页面访问热度统计(pv、uv等)

5.3.MapReduce实现2-电影评分数据分析(join)

5.4.MR单元测试与集成测试

5.5.Azkaban 实现作业的调度与运行

6.系统总体联调和数据可视化

6.1.Jmeter模拟访问产生用户日志

6.2.系统总体联调

6.3.Hadoop 性能调优

6.4.数据可视化

6.5.简历修改和面试指导

企业级项目实战八:某淘OpenTSDB时间序列分析项目(HBase)

1.结合企业应用介绍SAAS、PAAS、IAAS

2.通过Ganglia熟悉SAAS产品

3.OpenTSDB 项目需求介绍

4.HBase 测试环境安装

5.HBase 基础知识回顾

6.HBase在各种场景如何保证区分新旧数据

7.Hbase 访问方式

8.Hbase 编程

9.HBase数据接入

10.HBase性能优化

11.OpenTSDB 安装搭建

12.SAAS产品的架构详细讲解

13.OpenTSDB tcollector(自带的探针)采集数据

14.用Tcollector来监控HBase或者Zookeeper

15.Grafana来监控Flume

16.Kafka 消息队列缓存数据

17.数据接入

18.写性能优化

19.HBase 性能调优

20.HBase在资源紧张时降低IO的手段

21.HBase 冷热数据处理

22.大数据系统维护方案

你可能还喜欢的课程

  • 重在培养数据分析方法及思路,而不仅仅是学习技术及工具。带教多个互联网及金融领域企业真实项目,而不仅仅是讲理论和小案例。新东方、搜狗、腾讯等名企一线实战讲师授课,技“高”一筹!

    查看详情 立即试学

    数据分析就业特训营

    立即试学 16周

  • 从Python基础到Python数据分析案例实战,涵盖了经典的Python爬虫、聚类分析算法,RFM模型等,还有2个实战:1)互联网金融投资平台客户价值分析 2)航空公司客户价值分析。

    查看详情 立即试学

    Python数据分析

    ¥799 30小时

他们在学

  • 22273

  • 白开水一杯

  • 22244

  • 22238

  • Miss Smile

  • 22224

  • 20974

  • 22211

  • ……··醉梦、

  • 择一城终老

  • 22002

  • 暗海,炎天烬

  • --测试--

  • 亚历山小

  • 22103

  • 花满楼

意见
反馈