【课程目标】
Hadoop作为开源的云计算平台,为大数据处理提供了一整套解决方案,应用非常广泛。Hadoop作为一个平台框架,包括了如何存储海量数据,如何处理海量数据,以及相应的数据库、数据仓库、数据流处理、数据分析和挖掘算法库,等等。本课程主要介绍Hadoop的思想、原理,以及重要技术等相关知识。
通过本课程的学习,达到如下目的:
1、 全面了解大数据处理技术的相关知识。
2、 学习Hadoop的核心技术以及应用。
3、 深入掌握Hadoop的相关工具在大数据中的使用。
4、 掌握Hadoop的常用模块的工作原理及开发应用技术。
5、 掌握传统数据中心向大数据中心转换的关键技术。
6、 掌握海量数据处理的性能优化及维护技巧。
【授课时间】
2天时间
【授课对象】
网络部、大数据系统开发部、大数据中心、网络运维部等相关技术人员。
【授课方式】
原理精讲+案例演练+开发实践+系统优化
【课程大纲】
第一部分: 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基本框架
Ø NNHA:解决单点故障
Ø HDFS Federation:解决扩展性问题
第四部分: HBase非关系型数据库--海量数据的黎明
1、 HBase的使用场景
2、 HBase的基本架构
Ø Zookeeper分布式协调服务器
Ø Master主控服务器
Ø RegionServer区域服务器
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数据交互工具--与传统数据库的桥梁
1、 Sqoop是什么
2、 Sqoop的架构和功能
Ø Sqoop1架构
Ø Sqoop2架构
3、 数据双向交换
Ø 数据导入过程
Ø 数据导出过程
4、 数据导入工具与命令介绍
案例演练:Sqoop数据导入/导出实际操作
第七部分: Pig数据流处理引擎--数据脚本语言
1、 Pig介绍
2、 命令行交互工具Grunt
3、 Pig数据类型
4、 PigLatin脚本语言介绍
Ø 基础知识
Ø 输入和输出
Ø 关系操作
Ø 调用静态Java函数
5、 PigLatin高级应用
6、 开发与测试PigLatin脚本
Ø 开发工具
Ø 任务状态监控
Ø 调试技巧
7、 脚本性能优化
8、 用户自定义函数UDF
案例演练:PigLatin脚本编写、测试与运行操作
结束:课程总结与问题答疑。