第一部分: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腳本編寫、測試與運行操作
結束:課程總結與問題答疑。