課程簡介
本課程詳細的介紹了Hadoop平臺的常用組件,HDFS使用操作、MapReduce開發(fā)、yarn原理和應用、Hbase數(shù)據(jù)庫開發(fā)、Hive數(shù)據(jù)倉庫開發(fā)、Sqoop數(shù)據(jù)抽取、Flume數(shù)據(jù)采集、Kafka數(shù)據(jù)發(fā)布和訂閱等核心技術,幫助學員能夠深刻的理解Hadoop生態(tài)技術和基于Hadoop生態(tài)技術進行開發(fā)。
目標收益
1、本課程將為大家全面而又深入的介紹Hadoop的常用組件,涉及分布式數(shù)據(jù)收集,大數(shù)據(jù)存儲,資源管理及分布式計算框架等。
2、深度掌握基于HDFS、Mapreduce、Yarn、Spark、Hbase、Hive、Sqoop、Flume和Kafka的使用
3、掌握Scala開發(fā)語言
培訓對象
大數(shù)據(jù)開發(fā)人員
課程大綱
Day1 第一篇 大數(shù)據(jù)生態(tài)系統(tǒng)介紹 |
一、開源大數(shù)據(jù)技術架構 二、開源大數(shù)據(jù)常用組件之間的依賴關系 三、離線計算框架介紹 —Mapreduce、Hive、Tez、Presto、Kylin 四、實時查詢框架介紹 —NoSQL、Hbase 五、實時計算框架介紹 —Kafka、Storm、Spark Streaming 六、內(nèi)存計算框架介紹 —Spark、SparkSQL、SparkMllib、SparkR 七、前沿大數(shù)據(jù)技術介紹 —Flink、Drill、Druid、KUDU等 八、海量日志快速檢索架構 —ELK(Elasticsearch、Logstash、Kibana)等 |
Day1 第二篇 分布式存儲HDFS |
一、HDFS架構介紹 二、HDFS原理介紹 三、NameNode功能詳解 四、DataNode功能詳 五、HDFS HA功能詳解 六、HSFD的fsimage和editslog詳解 七、HDFS的block詳解 八、HDFS的block的備份策略 九、Hadoop的機架感知配置 十、HDFS的權限詳解 十一、Hadoop的客服端接入案例 十二、HDFS的客服端Cache使用 十三、HDFS讀寫性能的優(yōu)化 十四,HDFS Snapshots的應用和原理介紹 |
Day1 第三篇 分布式計算MapReduce |
一、Mapreduce原理 二、MapReduce流程 三、剖析一個MapReduce程序 四、Mapper和Reducer抽象類詳解 五、Mapreduce的最小驅(qū)動類 六、MapReduce自帶的類型 七、自定義Writables和WritableComparables 八、Mapreduce的輸入InputFormats 九、MapReduce的輸出OutputFormats 十、Combiner詳解 十一、Partitioner詳解 十二、MapReduce的優(yōu)化 十三、Map和Reduce的個數(shù)設置 十四、任務調(diào)度 十五、默認的任務調(diào)度 十六、公平任務調(diào)度 十七,能力任務調(diào)度 |
Day2 第四篇 Yarn分布式資源調(diào)度 |
一、 Yarn的原理和架構 二、Yarn資源調(diào)度策略 三、CPU、內(nèi)存和IO三種資源調(diào)度優(yōu)化 四、Yarn資源調(diào)度Fair和Capacity詳解 五、JobHistory的功能介紹 六、Yarn動態(tài)資源的設置 七、動態(tài)分配特定節(jié)點給每個應用(MR、Flink、Spark、Hbase等) 八、基于Yarn的資源控制詳解 九、基于Yarn實現(xiàn)底層SLA的資源分配 十,Yarn核心參數(shù)的詳解和優(yōu)化 |
Day2 第五篇 Hive實戰(zhàn) |
一、Hive的作用和原理說明 二、Hadoop倉庫和傳統(tǒng)數(shù)據(jù)倉庫的協(xié)作關系 三、Hadoop/Hive倉庫數(shù)據(jù)數(shù)據(jù)流 四、Hive的MetaStore詳解 五、Hive的基本用法 六、Hive的server啟動 七、HQL基本語法 八、Hive的加載數(shù)據(jù)本地加載和HDFS加載 九、Hive的partition詳解 十、Hive的存儲方式詳解 十一、RCFILE、TEXTFILE和SEQUEUEFILE 十二、Hive的UDF和UDAF 十三、Hive的transform詳解 十四,Hive的JDBC連接 |
Day2 第六篇 Hive數(shù)據(jù)倉庫實戰(zhàn) |
一、數(shù)據(jù)接入大數(shù)據(jù)平臺 —離線數(shù)據(jù)接入 —Sqoop工具介紹和使用 —RDBMS導入導出到Hive數(shù)據(jù)倉庫 二、數(shù)據(jù)處理過程 —數(shù)據(jù)的ETL —數(shù)據(jù)分層(ODS、DW和DM等) —數(shù)據(jù)建模 —數(shù)據(jù)校驗 三、數(shù)據(jù)應用 —數(shù)據(jù)離線應用 —數(shù)據(jù)實時應用 —數(shù)據(jù)實驗室 四、數(shù)據(jù)展示工具(BI工具) 五、從原始搜索數(shù)據(jù)集中抽取、集成數(shù)據(jù),整理后形成規(guī)范的數(shù)據(jù)倉庫 六、基于Hadoop數(shù)據(jù)倉庫的數(shù)據(jù)分層(ODS、DW、DWS/B、DM、ST) 七,數(shù)據(jù)倉庫不同層之間的數(shù)據(jù)交互和ETL |
Day3 第七篇 NoSQL和Hbase實戰(zhàn) |
一、NoSQL介紹 二、NoSQL應用場景 三、Hbase的架構原理 四、Hbase核心概念詳解(HMaster、HRegionServer、Store、StoreFile、HFile、HLog和MetaStore) 五、Hbase自帶的namesapce和Meta表詳解 六、HBase邏輯視圖介紹 七、HBase物理視圖介紹 八、HBase的RowKey設計原則 九、HBase BloomFilter的介紹 十、Hbase表的設計案例 十一、一對一設計 十二、一對多設計 十三、多對多設計 十四、時間序列的數(shù)據(jù)表的設計 十五、HBase的import功能介紹 十六、手動設置Split和Compaction操作 十七、Pre-Split的介紹 十八、RS宕機的運維處理 十九、HBase Region的遷移優(yōu)化 二十、HBase 的表結構優(yōu)化 二十一、HBase使用場景介紹 二十二、Hbase 的Phoenix工具介紹 二十三,HBase案例分析 |
Day3 第八篇 Sqoop和Flume實戰(zhàn) |
一、Flume架構和應用場景 二、Flume用用場景 三、Flume Agent介紹 —Source —Channel —Sink 四、Flume 采集數(shù)據(jù)到HDFS實戰(zhàn) 五、Flume案例實戰(zhàn) 六、Sqoop架構介紹 七、Sqoop抽取Oracle和Mysql的數(shù)據(jù) 八,Sqoop實戰(zhàn) |
Day3 第九篇 Kafka實戰(zhàn) |
一、kafka概述 二、kafka是什么 三、kafka概念詳解:Topics/logs、Distributitions、Producers、Consumers、Guarantees。 四、 kafka的應用場景 五、kafka的體系架構與設計原理 六、 消息持久化 七、生產(chǎn)者與消費者 八、 消息傳輸機制 九、 復制備份 十、分配機制 十一,Kafka監(jiān)控工具安裝和使用 |
Day4 第十一篇 Spark core介紹 |
一、Spark的編程模型 二、Spark編程模型解析 三、Partition實現(xiàn)機制 四、RDD的特點、操作、依賴關系 五、Transformation RDD詳解 六、Action RDD詳解 七、Spark的累加器詳解 八、Spark的廣播變量詳解 九、Spark容錯機制 十、lineage和checkpoint詳解 十一、Spark的運行方式 十二、Spark的Shuffle原理詳解 —Sort-Based原理 —Hash-Based原理 十三、Spark2.0的新特性 十四,Spark DataFrame和DateSet介紹 |
Day4 第十二篇 Spark SQL實戰(zhàn) |
一、Spark SQL原理 二、Spark SQL的Catalyst優(yōu)化器 —Parser解析模塊 —Analyzer模塊 —Optimizer模塊 —physical Planning模塊 三、Spark SQL內(nèi)核 四、Spark SQL和Hive連接 五、DataFrame和DataSet架構 六、Fataframe、DataSet和Spark SQL的比較 七、SparkSQL parquet格式實戰(zhàn) 八、Spark SQL UDF和UDAF實操 九、Spark SQL的實例和編程 十、Spark SQL的實例操作demo 十一,Spark SQL的編程 |
Day4 第十三篇 Spark Streaming詳解和實戰(zhàn) |
一、Spark Streaming原理 二、Spark Streaming的應用場景 三、Windows 窗口操作 四、DStream詳解 五、Spark SQL on Spark Streaming詳解 六、Structured Streaming介紹 七、Structured Streaming的水印操作 八、Structured Streaming+kafka應用實戰(zhàn) 九、流式任務的痛點和注意點 十、流式任務數(shù)據(jù)延遲問題 十一、流式任務作業(yè)性能問題 十二,流式任務任務常見的處理方式 |
Day5 第十四篇 Flink SQL實戰(zhàn) |
一、Flink SQL和Table開發(fā)實戰(zhàn) 二、6.1 Flink SQL功能介紹 三、6.2 Flink SQL 四、6.3 Kafka+FlinkSQL整合 五、6.4 Flink Table介紹 六、6.5 Flink Table DSL語法介紹 七、Flink CDC介紹 八、7.1 傳統(tǒng)CDC工具介紹 九、7.2 CDC工具介紹和比較 十、7.3 Flink CDC支持的功能 十一、7.4 基于日志CDC的數(shù)據(jù)同步流程 十二、7.5 ETL—傳統(tǒng)CDC ETL分析 十三、7.6 ETL—基于Flink CDC 聚合分析 十四、7.7 Flink CDC 數(shù)據(jù)寬表 十五、7.8 Flink SQL如何集成CDC |
Day5 第十五篇 項目實戰(zhàn)RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana項目實戰(zhàn) |
RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana項目實戰(zhàn): 1、Docker演示環(huán)境介紹 2、Flink CDC mysql實戰(zhàn) 3、Flink CDC postgres實戰(zhàn) 4、Flink CDC Kafka實戰(zhàn) 5、Flink CDC ES實現(xiàn) 6、Kibana結果展示 7、RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana完整項目實戰(zhàn) |
Day1 第一篇 大數(shù)據(jù)生態(tài)系統(tǒng)介紹 一、開源大數(shù)據(jù)技術架構 二、開源大數(shù)據(jù)常用組件之間的依賴關系 三、離線計算框架介紹 —Mapreduce、Hive、Tez、Presto、Kylin 四、實時查詢框架介紹 —NoSQL、Hbase 五、實時計算框架介紹 —Kafka、Storm、Spark Streaming 六、內(nèi)存計算框架介紹 —Spark、SparkSQL、SparkMllib、SparkR 七、前沿大數(shù)據(jù)技術介紹 —Flink、Drill、Druid、KUDU等 八、海量日志快速檢索架構 —ELK(Elasticsearch、Logstash、Kibana)等 |
Day1 第二篇 分布式存儲HDFS 一、HDFS架構介紹 二、HDFS原理介紹 三、NameNode功能詳解 四、DataNode功能詳 五、HDFS HA功能詳解 六、HSFD的fsimage和editslog詳解 七、HDFS的block詳解 八、HDFS的block的備份策略 九、Hadoop的機架感知配置 十、HDFS的權限詳解 十一、Hadoop的客服端接入案例 十二、HDFS的客服端Cache使用 十三、HDFS讀寫性能的優(yōu)化 十四,HDFS Snapshots的應用和原理介紹 |
Day1 第三篇 分布式計算MapReduce 一、Mapreduce原理 二、MapReduce流程 三、剖析一個MapReduce程序 四、Mapper和Reducer抽象類詳解 五、Mapreduce的最小驅(qū)動類 六、MapReduce自帶的類型 七、自定義Writables和WritableComparables 八、Mapreduce的輸入InputFormats 九、MapReduce的輸出OutputFormats 十、Combiner詳解 十一、Partitioner詳解 十二、MapReduce的優(yōu)化 十三、Map和Reduce的個數(shù)設置 十四、任務調(diào)度 十五、默認的任務調(diào)度 十六、公平任務調(diào)度 十七,能力任務調(diào)度 |
Day2 第四篇 Yarn分布式資源調(diào)度 一、 Yarn的原理和架構 二、Yarn資源調(diào)度策略 三、CPU、內(nèi)存和IO三種資源調(diào)度優(yōu)化 四、Yarn資源調(diào)度Fair和Capacity詳解 五、JobHistory的功能介紹 六、Yarn動態(tài)資源的設置 七、動態(tài)分配特定節(jié)點給每個應用(MR、Flink、Spark、Hbase等) 八、基于Yarn的資源控制詳解 九、基于Yarn實現(xiàn)底層SLA的資源分配 十,Yarn核心參數(shù)的詳解和優(yōu)化 |
Day2 第五篇 Hive實戰(zhàn) 一、Hive的作用和原理說明 二、Hadoop倉庫和傳統(tǒng)數(shù)據(jù)倉庫的協(xié)作關系 三、Hadoop/Hive倉庫數(shù)據(jù)數(shù)據(jù)流 四、Hive的MetaStore詳解 五、Hive的基本用法 六、Hive的server啟動 七、HQL基本語法 八、Hive的加載數(shù)據(jù)本地加載和HDFS加載 九、Hive的partition詳解 十、Hive的存儲方式詳解 十一、RCFILE、TEXTFILE和SEQUEUEFILE 十二、Hive的UDF和UDAF 十三、Hive的transform詳解 十四,Hive的JDBC連接 |
Day2 第六篇 Hive數(shù)據(jù)倉庫實戰(zhàn) 一、數(shù)據(jù)接入大數(shù)據(jù)平臺 —離線數(shù)據(jù)接入 —Sqoop工具介紹和使用 —RDBMS導入導出到Hive數(shù)據(jù)倉庫 二、數(shù)據(jù)處理過程 —數(shù)據(jù)的ETL —數(shù)據(jù)分層(ODS、DW和DM等) —數(shù)據(jù)建模 —數(shù)據(jù)校驗 三、數(shù)據(jù)應用 —數(shù)據(jù)離線應用 —數(shù)據(jù)實時應用 —數(shù)據(jù)實驗室 四、數(shù)據(jù)展示工具(BI工具) 五、從原始搜索數(shù)據(jù)集中抽取、集成數(shù)據(jù),整理后形成規(guī)范的數(shù)據(jù)倉庫 六、基于Hadoop數(shù)據(jù)倉庫的數(shù)據(jù)分層(ODS、DW、DWS/B、DM、ST) 七,數(shù)據(jù)倉庫不同層之間的數(shù)據(jù)交互和ETL |
Day3 第七篇 NoSQL和Hbase實戰(zhàn) 一、NoSQL介紹 二、NoSQL應用場景 三、Hbase的架構原理 四、Hbase核心概念詳解(HMaster、HRegionServer、Store、StoreFile、HFile、HLog和MetaStore) 五、Hbase自帶的namesapce和Meta表詳解 六、HBase邏輯視圖介紹 七、HBase物理視圖介紹 八、HBase的RowKey設計原則 九、HBase BloomFilter的介紹 十、Hbase表的設計案例 十一、一對一設計 十二、一對多設計 十三、多對多設計 十四、時間序列的數(shù)據(jù)表的設計 十五、HBase的import功能介紹 十六、手動設置Split和Compaction操作 十七、Pre-Split的介紹 十八、RS宕機的運維處理 十九、HBase Region的遷移優(yōu)化 二十、HBase 的表結構優(yōu)化 二十一、HBase使用場景介紹 二十二、Hbase 的Phoenix工具介紹 二十三,HBase案例分析 |
Day3 第八篇 Sqoop和Flume實戰(zhàn) 一、Flume架構和應用場景 二、Flume用用場景 三、Flume Agent介紹 —Source —Channel —Sink 四、Flume 采集數(shù)據(jù)到HDFS實戰(zhàn) 五、Flume案例實戰(zhàn) 六、Sqoop架構介紹 七、Sqoop抽取Oracle和Mysql的數(shù)據(jù) 八,Sqoop實戰(zhàn) |
Day3 第九篇 Kafka實戰(zhàn) 一、kafka概述 二、kafka是什么 三、kafka概念詳解:Topics/logs、Distributitions、Producers、Consumers、Guarantees。 四、 kafka的應用場景 五、kafka的體系架構與設計原理 六、 消息持久化 七、生產(chǎn)者與消費者 八、 消息傳輸機制 九、 復制備份 十、分配機制 十一,Kafka監(jiān)控工具安裝和使用 |
Day4 第十一篇 Spark core介紹 一、Spark的編程模型 二、Spark編程模型解析 三、Partition實現(xiàn)機制 四、RDD的特點、操作、依賴關系 五、Transformation RDD詳解 六、Action RDD詳解 七、Spark的累加器詳解 八、Spark的廣播變量詳解 九、Spark容錯機制 十、lineage和checkpoint詳解 十一、Spark的運行方式 十二、Spark的Shuffle原理詳解 —Sort-Based原理 —Hash-Based原理 十三、Spark2.0的新特性 十四,Spark DataFrame和DateSet介紹 |
Day4 第十二篇 Spark SQL實戰(zhàn) 一、Spark SQL原理 二、Spark SQL的Catalyst優(yōu)化器 —Parser解析模塊 —Analyzer模塊 —Optimizer模塊 —physical Planning模塊 三、Spark SQL內(nèi)核 四、Spark SQL和Hive連接 五、DataFrame和DataSet架構 六、Fataframe、DataSet和Spark SQL的比較 七、SparkSQL parquet格式實戰(zhàn) 八、Spark SQL UDF和UDAF實操 九、Spark SQL的實例和編程 十、Spark SQL的實例操作demo 十一,Spark SQL的編程 |
Day4 第十三篇 Spark Streaming詳解和實戰(zhàn) 一、Spark Streaming原理 二、Spark Streaming的應用場景 三、Windows 窗口操作 四、DStream詳解 五、Spark SQL on Spark Streaming詳解 六、Structured Streaming介紹 七、Structured Streaming的水印操作 八、Structured Streaming+kafka應用實戰(zhàn) 九、流式任務的痛點和注意點 十、流式任務數(shù)據(jù)延遲問題 十一、流式任務作業(yè)性能問題 十二,流式任務任務常見的處理方式 |
Day5 第十四篇 Flink SQL實戰(zhàn) 一、Flink SQL和Table開發(fā)實戰(zhàn) 二、6.1 Flink SQL功能介紹 三、6.2 Flink SQL 四、6.3 Kafka+FlinkSQL整合 五、6.4 Flink Table介紹 六、6.5 Flink Table DSL語法介紹 七、Flink CDC介紹 八、7.1 傳統(tǒng)CDC工具介紹 九、7.2 CDC工具介紹和比較 十、7.3 Flink CDC支持的功能 十一、7.4 基于日志CDC的數(shù)據(jù)同步流程 十二、7.5 ETL—傳統(tǒng)CDC ETL分析 十三、7.6 ETL—基于Flink CDC 聚合分析 十四、7.7 Flink CDC 數(shù)據(jù)寬表 十五、7.8 Flink SQL如何集成CDC |
Day5 第十五篇 項目實戰(zhàn)RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana項目實戰(zhàn) RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana項目實戰(zhàn): 1、Docker演示環(huán)境介紹 2、Flink CDC mysql實戰(zhàn) 3、Flink CDC postgres實戰(zhàn) 4、Flink CDC Kafka實戰(zhàn) 5、Flink CDC ES實現(xiàn) 6、Kibana結果展示 7、RDBMS+Kafka+Flink CDC+FlinkSQL+ES+Kibana完整項目實戰(zhàn) |