课程大纲
时间 | 内容 | 案例实践与练习 |
第一篇 大数据生态系统介绍 | 一、开源大数据技术架构 二、开源大数据常用组件之间的依赖关系 三、离线计算框架介绍 —Mapreduce、Hive、Tez、Presto、Kylin 四、实时查询框架介绍 —NoSQL、Hbase 五、实时计算框架介绍 —Kafka、Storm、Spark Streaming 六、内存计算框架介绍 —Spark、SparkSQL、SparkMllib、SparkR 七、前沿大数据技术介绍 —Flink、Drill、Druid、KUDU等 八、海量日志快速检索架构 —ELK(Elasticsearch、Logstash、Kibana)等 | |
第二篇 分布式存储HDFS
| 一、HDFS架构介绍 二、HDFS原理介绍 三、NameNode功能详解 四、DataNode功能详 五、HDFS HA功能详解 六、HSFD的fsimage和editslog详解 七、HDFS的block详解 八、HDFS的block的备份策略 九、Hadoop的机架感知配置 十、HDFS的权限详解 十一、Hadoop的客服端接入案例 十二、HDFS的客服端Cache使用 十三、HDFS读写性能的优化 十四、HDFS Snapshots的应用和原理介绍 | 案例练习: 1)HDFS常用命令实战 |
第三篇 分布式计算MapReduce | 一、Mapreduce原理 二、MapReduce流程 三、剖析一个MapReduce程序 四、Mapper和Reducer抽象类详解 五、Mapreduce的最小驱动类 六、MapReduce自带的类型 七、自定义Writables和WritableComparables 八、Mapreduce的输入InputFormats 九、MapReduce的输出OutputFormats 十、Combiner详解 十一、Partitioner详解 十二、MapReduce的优化 十三、Map和Reduce的个数设置 十四、任务调度 十五、默认的任务调度 十六、公平任务调度 十七、能力任务调度 | 案例练习: 1)Mapreduce开发环境搭建 2)Mapreduce词频统计 3)MapReduce自定义开发实战 Mapreduce自定义Partitioner |
第四篇 Yarn分布式资源调度 | 一、Yarn的原理和架构 二、Yarn资源调度策略 三、CPU、内存和IO三种资源调度优化 四、Yarn资源调度Fair和Capacity详解 五、JobHistory的功能介绍 六、Yarn动态资源的设置 七、动态分配特定节点给每个应用(MR、Strom、Spark、Hbase等) 八、基于Yarn的资源控制详解 九、基于Yarn实现底层SLA的资源分配 十、Yarn核心参数的详解和优化 | 案例练习: 1)Yarn资源配置和管理实战 |
第五篇 Hive实战 | 一、Hive的作用和原理说明 二、Hadoop仓库和传统数据仓库的协作关系 三、Hadoop/Hive仓库数据数据流 四、Hive的MetaStore详解 五、Hive的基本用法 六、Hive的server启动 七、HQL基本语法 八、Hive的加载数据本地加载和HDFS加载 九、Hive的partition详解 十、Hive的存储方式详解 十一、RCFILE、TEXTFILE和SEQUEUEFILE 十二、Hive的UDF和UDAF 十三、Hive的transform详解 十四、Hive的JDBC连接 | 案例练习: 1)Hive创建表 2)Hive加载数据 3)Hive的分区表 Hive的UDF实验
|
第六篇 NoSQ和Hbase实战 | 一、NoSQL介绍 二、NoSQL应用场景 三、Hbase的架构原理 四、Hbase核心概念详解(HMaster、HRegionServer、Store、StoreFile、HFile、HLog和MetaStore) 五、Hbase自带的namesapce和Meta表详解 六、HBase逻辑视图介绍 七、HBase物理视图介绍 八、HBase的RowKey设计原则 九、HBase BloomFilter的介绍 十、Hbase表的设计案例 十一、一对一设计 十二、一对多设计 十三、多对多设计 十四、时间序列的数据表的设计 十五、HBase的import功能介绍 十六、手动设置Split和Compaction操作 十七、Pre-Split的介绍 十八、RS宕机的运维处理 十九、HBase Region的迁移优化 二十、HBase 的表结构优化 二十一、HBase使用场景介绍 二十二、Hbase 的Phoenix工具介绍 二十三、HBase案例分析 | 案例练习: 1)MapReduce操作Hbase实战 2)Hbase的API实战 3)Hbase表结构设计实战 |
第七篇 Oozie、Sqoop和Flume实战 | 一、Flume架构和应用场景 二、Flume用用场景 三、Flume Agent介绍 —Source —Channel —Sink 四、Flume 采集数据到HDFS实战 五、Flume案例实战 六、Sqoop架构介绍 七、Sqoop抽取Oracle和Mysql的数据 八、Sqoop实战 九、Oozie任务调度工具介绍 | 案例练习: 1)Sqoop抽取Mysql数据到HDFS、Hive和hbase 3)Flume采集数据到HDFS
|
第八篇 Spark生态系统 | 一、Spark生态系统架构介绍 二、Spark Core介绍 三、Spark SQL介绍 四、Spark Streaming介绍 五、Spark 2.0 Structured Streaming介绍 六、Spark Mllib介绍 七、Spark Graphx介绍 八、SparkR介绍 | |
第九篇 Spark core介绍 | 一、Spark的编程模型 二、Spark编程模型解析 三、Partition实现机制 四、RDD的特点、操作、依赖关系 五、Transformation RDD详解 六、Action RDD详解 七、Spark的累加器详解 八、Spark的广播变量详解 九、Spark容错机制 十、lineage和checkpoint详解 十一、Spark的运行方式 十二、Spark的Shuffle原理详解 —Sort-Based原理 —Hash-Based原理 十三、Spark2.0的新特性 十四、Spark DataFrame和DateSet介绍 | 案例练习: Partition实操 |
第十篇 Spark SQL实战
| 一、Spark SQL原理 二、Spark SQL的Catalyst优化器 —Parser解析模块 —Analyzer模块 —Optimizer模块 —physical Planning模块 三、Spark SQL内核 四、Spark SQL和Hive连接 五、DataFrame和DataSet架构 六、Fataframe、DataSet和Spark SQL的比较 七、SparkSQL parquet格式实战 八、Spark SQL UDF和UDAF实操 九、Spark SQL的实例和编程 十、Spark SQL的实例操作demo 十一、Spark SQL的编程 | 案例练习: 1、Spark SQL UDF和UDAF实操 2、Spark Sql+hive实操 Spark SQL+Mysql实操 |
第十一篇 Spark Streaming实战 | 一、Spark Streaming原理剖析 二、Spark Streaming流数据处理框架介绍 三、Spark Streaming编程剖析 四、初始化StreamingContext 五、Discretized Streams (DStreams) 六、输入DStreams与Receivers 七、基于DStreams的Transformations 八、基于DStreams的输出操作 九、Accumulators和Broadcast Variables 十、DataFrame和SQL操作 十一、DStream的特点 十二、Dstream的操作和RDD的区别 十三、SatefulRDD和windowRDD实战 十四、Kafka+Spark Steaming实战 —Receiver —Direct 十五、Structured Streaming介绍 十六、Structured Streaming和Spark Streaming的比较 | 案例练习: 3、Spark Streaming+Kafka实操 4、Spark Streaming实时计算实操 |
第十二篇 Spark Mllib实战 | 一、 SparkMllib原理 二、 基于Spark Mllib数据挖掘的流程 三、 数据准备和预处理 —数据的升维和降维 —去除噪声 —特征的筛选和提取 —特征转换 —数据的缺省值处理 —特征的分类和合并 —特征TF-IDF值转换和计算 四、 稠密向量和稀疏向量数据处理 五、 基于DataFrame和DataSet的数据挖掘过 六、 SparkMllib挖掘实战 七、 聚类算法Kmeans的实战和应用场景 八、 决策树算法的实战和应用场景 九、 逻辑回归算法实战和应用场景 十、 贝叶斯算法实战和应用场景 十一、随机森林算法实战和应用场景 十二、协同过滤推荐算法实战案例 十三、关联规则算法介绍和实战 | 案例练习: 5、用户流失模型实操 6、房贷模型实操 |