课程简介
随着互联网的爆发,数据量爆发式增长,原有的数据架构开始出现问题,数据仓库和数据湖开始崛起。与数据仓库不同,数据湖不要求数据符合特定格式,而是可以存储一切类型的数据,这使得数据湖更加灵活,可以根据需要对数据使用不同类型的分析。
本课程以业界最流行、应用最广泛的Hadoop、Spark、Flink及NoSQL大数据技术体系为基础,强化大数据平台的分布式集群架构和核心关键技术实现,同时引入目前主流的数据湖开源解决方案,如:Hudi、Iceberg和Delta Lake。帮助学员全面掌握基于大数据平台实现企业级数据湖的流程和技巧。
课程收益
1、帮助学员掌握基于大数据体系架构、管理、部署;
2、帮助学员掌握部署基于Hadoop、Spark、Flink及NoSQL的企业大数据数据湖的能力;
3、帮助学员掌握开源的数据湖解决方案
受众人群
大数据的研发人员,大数据构师,大数据运维人员
课程周期
5天(30H)
课程大纲
标题 | 授课内容 |
一、大数据背景知识与起源 | 1. 什么是大数据及其核心问题? 2. 数据仓库与大数据 3. 大数据的核心原理 (1) 分布式存储 (2) 分布式计算 (3) 列式存储 (4) 大数据的生态体系 |
二、数据湖基础 | 1. 什么是数据湖? 2. 数据湖与数据仓库的区别 3. 数据湖的构建方法 4. 数据湖的Lambda架构实现 (1) 数据采集层 (2) 数据存储层(离线存储与实时存储) (3) 数据处理层(离线处理与实时处理) (4) 数据服务层 (5) 数据应用层 5. 数据湖的开源解决方案 (1) Iceberg (2) Hudi (3) Delta |
三、使用HDFS构建离线数据存储层 | 1. Hadoop的生态圈体系与组件 2. Hadoop的部署模式 3. HDFS的体系结构 (1) 名称节点 (2) 数据节点 (3) 第二名称节点 4. HDFS的原理剖析 (1) HDFS上传数据的过程和原理 (2) HDFS下载数据的过程和原理 5. HDFS的高级功能 (1) HDFS的回收站 (2) HDFS的快照 (3) HDFS的安全模式和权限 (4) HDFS的配额 |
四、使用HBase构建离线数据存储层
| 1. NoSQL数据库简介 2. HBase的表结构和体系结构 3. HBase的部署模式 4. 操作HBase 5. HBase的核心原理解析 |
五、使用Kafka构建实时数据存储层 | 1. 什么是消息系统 2. 消息队列的分类 3. Kafka的基本架构和概念 4. Kafka的部署模式 5. Kafka的应用开发 (1) 开发消息生产者 (2) 开发消息的消费者 6. Kafka核心原理解析 (1) Kafka的持久性 (2) Kafka的生产者 (3) Kafka的消费者 (4) 消息传递保障 (5) 副本和leader选举 (6) 日志清理 (7) Kafka的配额 |
六、使用Sqoop和Flume构建数据的采集层 | 1. 使用Sqoop进行数据交换 2. 使用Flume采集日志 (1) Flume的体系架构 (2) Flume案例分析 |
七、课堂实操 | 1. 使用Kafka完成消息的发布与订阅 2. 开发Kafka的客户端程序 3. 使用Sqoop采集关系型数据库数据 4. 使用Flume采集日志 |
八、使用MapReduce构建离线数据处理层 | 1. MapRudce课程概述 2. MapReduce编程基础 3. MapReduce的特性 (1) 序列化 (2) 排序 (3) 分区和合并 (4) Shuffle |
九、使用Hive构建离线数据分析层 | 1. 数据分析引擎和Hive简介 2. Hive的体系结构与安装配置 3. Hive的内部表与外部表 4. Hive的分区表 5. Hive的桶表和视图 6. Hive SQL的查询 7. Hive的Java客户端 8. Hive的自定义函数 |
十、使用Pig构建离线数据分析层 | 1. Pig简介和安装配置 2. Pig的常用命令 3. Pig的数据模型 4. Pig的自定义函数和自定义运算函数 使用PigLatin语句分析和处理数据 |
十一、Hadoop体系的高可用架构 | 1. 主从结构的单点故障的问题 2. ZooKeeper (1) ZooKeeper简介和体系结构 (2) 搭建ZooKeeper的Standalone模式 (3) 搭建ZooKeeper的集群环境和Demo演示 (4) 利用ZooKeeper实现秒杀功能 3. Hadoop的HA NameNode的联盟 |
十二、课堂实操 | 1. 使用Hive SQL查询数据 2. 创建Hive的数据模型 3. 使用PigLatin语句处理数据 4. 利用ZooKeeper实现秒杀 |
十三、使用Spark构建离线数据处理层 | 1. 什么是Spark? 2. Spark的体系结构与安装部署 3. 执行Spark Demo程序 4. Spark运行机制及原理分析 5. Spark的算子 6. Spark RDD的高级算子 7. Spark基础编程案例 |
十四、使用Spark构建实时数据处理层 | 1. Spark Streaming基础 (1) Spark Streaming简介 (2) Spark Streaming的特点 (3) Spark Streaming的内部结构 (4) 第一个小案例:NetworkWordCount (5) 开发自己的NetworkWordCount 2. Spark Streaming进阶 (1) StreamingContext对象详解 (2) 离散流(DStreams):Discretized Streams (3) DStream中的转换操作(transformation) (4) 窗口操作 (5) 输入DStreams和接收器 (6) DStreams的输出操作 (7) DataFrame和SQL操作 (8) 缓存/持久化 (9) 检查点支持 3. 高级数据源 (1) Spark Streaming接收Flume数据 (2) Spark Streaming接收Kafka数据 4. 性能优化 (1) 减少批数据的执行时间 (2) 设置正确的批容量 5. 内存调优 |
十五、使用Spark SQL构建结构数据处理层 | 1. Spark SQL基础 (1) Spark SQL简介 (2) 基本概念:Datasets和DataFrames (3) 测试数据 (4) 创建DataFrames (5) DataFrame操作 (6) Global Temporary View (7) 创建Datasets (8) Datasets的操作案例 2. 使用数据源 (1) 通用的Load/Save函数 (2) Parquet文件 (3) JSON Datasets (4) 使用JDBC 3. 使用Hive Table |
十六、使用Flink构建数据的离线和实时处理层 | 1. Flink基础 (1) Flink简介 (2) Flink的体系架构 (3) Flink的安装与部署 (4) Flink的分布式缓存 (5) 对比:Flink、Storm和Spark Streaming 2. Flink入门开发案例:WordCount (1) Flink批处理开发 (2) Flink流处理开发 (3) 使用Flink Scala Shell (4) Flink的并行度分析 3. Flink的DataSet API 4. Flink的DataStream API (1) DataSources (2) DataStream Transformation 转换操作 (3) Data Sinks 5. 广播变量、累加器和计数器 6. 状态管理和恢复 (1) 状态:State (2) 检查点:Checkpoint (3) Restart Strategies(重启策略) 7. Window和Time |
十七、开源数据湖Hudi | 1. Hudi简介 2. Hudi的设计原则 3. Hudi的表设计 4. Hudi如何写数据 5. Hudi的查询 |
十八、开源数据湖Iceberg | 1. Iceberg简介 2. Iceberg的基本概念 3. Iceberg的数据类型 4. 分区与表的优化 5. 使用Spark读写Iceberg表中的数据 |
十九、开源数据湖Delta Lake | 1. Delta Lake的概念 2. Delta Lake的基本操作 3. Delta Lake的核心原理解析 |
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员
John Zhao
百林哲咨询(北京)有限公司专家团队成员