第一部分:Hadoop的基本框架
1、大数据时代面临的问题
2、当前解决大数据的技术方案
3、Hadoop架构和云计算
4、Hadoop简史及安装部署
5、Hadoop设计理念和生态系统
第二部分:HDFS分布式文件系统:海量数据存储的摇篮
1、HDFS的设计目标
2、HDFS的基本架构
Ø NameNode名称节点
Ø SecondaryNameNode第二名称节点
Ø DataNode数据节点
3、HDFS的存储模型
Ø 数据块存储
Ø 元数据存储(空间镜像与编辑日志)
Ø 多副本存储
4、多副本放置策略
5、多数据节点管理机制与交互过程
6、文件系统操作与管理
Ø 读文件过程
Ø 写文件过程(数据流管道)
7、数据完整性机制
Ø 数据校验和
Ø 数据完整性扫描线程
Ø 元数据备份与合并
8、数据可靠性设计
Ø 安全模式(数据块与节点映射关系管理)
Ø 心跳检测机制(节点失效管理)
Ø 租约机制(多线程并发控制)
9、其它
Ø HDFS的安全机制
Ø 负载均衡
Ø 文件压缩
10、 操作接口与编程接口
Ø HDFS Shell
Ø HDFS Commands
Ø WebHDFS REST API
Ø HDFS Java API
演练:HDFS文件操作命令
演练:HDFS编程示例
第三部分:MapReduce分布式计算系统:海量数据处理的利器
1、MapReduce的三层设计理念
Ø 分布治之的设计思想(Map与Reduce)
Ø 数据处理引擎(编程模型)
Ø 运行时环境(任务调度与执行)
2、MapReduce的基本架构
Ø JobTracker作业跟踪器
Ø TaskTracker任务跟踪器
Ø MapReduce与HDFS的部署关系
3、MapReduce编程模型概述
Ø 编程接口介绍
Ø Hadoop工作流实现原理
4、MapReduce作业调度机制
Ø MapReduce作业生命周期
Ø 作业调度策略
Ø 静态资源管理方案
5、数据并行处理机制(五步骤)
Ø Input阶段实现
Ø Map阶段实现
Ø Shuffle阶段实现
Ø Reduce阶段实现
Ø Output阶段
6、MapReduce容错机制
Ø 任务失败与重新尝试
Ø 节点失效与重调度
Ø 单点故障
7、MapReduce性能优化
Ø 优化方向与思路
Ø 磁盘IO性能优化
Ø 分片优化
Ø 线程数量优化
Ø 内存优化
Ø 压缩优化
8、MapReduce操作接口
Ø Job Shell
Ø Web UI
案例演练:MapReduce编程示例
9、YARN:下一代通用资源管理系统
Ø MRv1的局限性
Ø YARN基本框架
Ø NN HA:解决单点故障
Ø HDFS Federation:解决扩展性问题
第四部分:HBase非关系型数据库:海量数据的黎明
1、HBase的使用场景
2、HBase的基本架构
Ø Zookeeper分布式协调服务器
Ø Master主控服务器
Ø Region Server区域服务器
3、HBase的数据模型
Ø HBase的表结构
Ø 行键、列键、时间戳
4、HBase的存储模型
Ø 基本单位Region
Ø 存储格式HFile
5、数据分裂机制Split
6、数据合并机制Compaction
Ø minor compaction
Ø major compaction
7、HLog写前日志
8、数据库读写操作
Ø 数据库写入
Ø 数据库读取
Ø 三次寻址
9、HBase操作接口
Ø Native Java API
Ø HBase Shell
Ø 批量加载工具
Ø HiveQL操作
10、 HBase性能优化
Ø 写速度优化
Ø 读速度优化
11、 HBase集群监控与管理
案例演练:HBase命令操作实例
第五部分:Hive分布式数据仓库:高级的编程语言
1、Hive是什么
2、Hive与关系数据库的区别
3、Hive系统架构
Ø 用户接口层
Ø 元数据存储层
Ø 驱动层
4、Hive常用服务
5、Hive元数据的三种部署模式
6、Hive的命名空间
7、Hive数据类型与存储格式
Ø 数据类型
Ø TextFile/SequenceFile/RCFile
8、Hive的数据模型
Ø 管理表
Ø 外部表
Ø 分区表
Ø 桶表
9、HQL语言命令实例
Ø DDL数据定义语言
Ø DML数据操作语言
Ø QUERY数据查询语言
10、 Hive自定义函数
Ø 基本函数(UDF)
Ø 聚合函数(UDAF)
Ø 表生成函数(UDTF)
11、 Hive性能优化
Ø 动态分区
Ø 压缩
Ø 索引
Ø JVM重用
案例演练:Hive命令操作实例
第六部分:Sqoop数据交互工具:Hadoop与传统数据库的桥梁
1、Sqoop是什么
2、Sqoop的架构和功能
Ø Sqoop1架构
Ø Sqoop2架构
3、数据双向交换
Ø 数据导入过程
Ø 数据导出过程
4、数据导入工具与命令介绍
案例演练:Sqoop数据导入/导出实际操作
第七部分:Pig数据流处理引擎:数据脚本语言
1、Pig介绍
2、命令行交互工具Grunt
3、Pig数据类型
4、Pig Latin脚本语言介绍
Ø 基础知识
Ø 输入和输出
Ø 关系操作
Ø 调用静态Java函数
5、Pig Latin高级应用
6、开发与测试Pig Latin脚本
Ø 开发工具
Ø 任务状态监控
Ø 调试技巧
7、脚本性能优化
8、用户自定义函数UDF
案例演练:Pig Latin脚本编写、测试与运行操作
结束:课程总结与问题答疑。