第一部分:Hadoop的基本框架
1、大數(shù)據(jù)時(shí)代面臨的問題
2、當(dāng)前解決大數(shù)據(jù)的技術(shù)方案
3、Hadoop架構(gòu)和云計(jì)算
4、Hadoop簡(jiǎn)史及安裝部署
5、Hadoop設(shè)計(jì)理念和生態(tài)系統(tǒng)
第二部分:HDFS分布式文件系統(tǒng):海量數(shù)據(jù)存儲(chǔ)的搖籃
1、HDFS的設(shè)計(jì)目標(biāo)
2、HDFS的基本架構(gòu)
? ?NameNode名稱節(jié)點(diǎn)
? ?SecondaryNameNode第二名稱節(jié)點(diǎn)
? ?DataNode數(shù)據(jù)節(jié)點(diǎn)
3、HDFS的存儲(chǔ)模型
? ?數(shù)據(jù)塊存儲(chǔ)
? ?元數(shù)據(jù)存儲(chǔ)(空間鏡像與編輯日志)
? ?多副本存儲(chǔ)
4、多副本放置策略
5、多數(shù)據(jù)節(jié)點(diǎn)管理機(jī)制與交互過程
6、文件系統(tǒng)操作與管理
? ?讀文件過程
? ?寫文件過程(數(shù)據(jù)流管道)
7、數(shù)據(jù)完整性機(jī)制
? ?數(shù)據(jù)校驗(yàn)和
? ?數(shù)據(jù)完整性掃描線程
? ?元數(shù)據(jù)備份與合并
8、數(shù)據(jù)可靠性設(shè)計(jì)
? ?安全模式(數(shù)據(jù)塊與節(jié)點(diǎn)映射關(guān)系管理)
? ?心跳檢測(cè)機(jī)制(節(jié)點(diǎn)失效管理)
? ?租約機(jī)制(多線程并發(fā)控制)
9、其它
? ?HDFS的安全機(jī)制
? ?負(fù)載均衡
? ?文件壓縮
10、 ? ?操作接口與編程接口
? ?HDFS Shell
? ?HDFS Commands
? ?WebHDFS REST API
? ?HDFS Java API
演練:HDFS文件操作命令
演練:HDFS編程示例
第三部分:MapReduce分布式計(jì)算系統(tǒng):海量數(shù)據(jù)處理的利器
1、MapReduce的三層設(shè)計(jì)理念
? ?分布治之的設(shè)計(jì)思想(Map與Reduce)
? ?數(shù)據(jù)處理引擎(編程模型)
? ?運(yùn)行時(shí)環(huán)境(任務(wù)調(diào)度與執(zhí)行)
2、MapReduce的基本架構(gòu)
? ?JobTracker作業(yè)跟蹤器
? ?TaskTracker任務(wù)跟蹤器
? ?MapReduce與HDFS的部署關(guān)系
3、MapReduce編程模型概述
? ?編程接口介紹
? ?Hadoop工作流實(shí)現(xiàn)原理
4、MapReduce作業(yè)調(diào)度機(jī)制
? ?MapReduce作業(yè)生命周期
? ?作業(yè)調(diào)度策略
? ?靜態(tài)資源管理方案
5、數(shù)據(jù)并行處理機(jī)制(五步驟)
? ?Input階段實(shí)現(xiàn)
? ?Map階段實(shí)現(xiàn)
? ?Shuffle階段實(shí)現(xiàn)
? ?Reduce階段實(shí)現(xiàn)
? ?Output階段
6、MapReduce容錯(cuò)機(jī)制
? ?任務(wù)失敗與重新嘗試
? ?節(jié)點(diǎn)失效與重調(diào)度
? ?單點(diǎn)故障
7、MapReduce性能優(yōu)化
? ?優(yōu)化方向與思路
? ?磁盤IO性能優(yōu)化
? ?分片優(yōu)化
? ?線程數(shù)量?jī)?yōu)化
? ?內(nèi)存優(yōu)化
? ?壓縮優(yōu)化
8、MapReduce操作接口
? ?Job Shell
? ?Web UI
案例演練:MapReduce編程示例
9、YARN:下一代通用資源管理系統(tǒng)
? ?MRv1的局限性
? ?YARN基本框架
? ?NN HA:解決單點(diǎn)故障
? ?HDFS Federation:解決擴(kuò)展性問題
第四部分:HBase非關(guān)系型數(shù)據(jù)庫:海量數(shù)據(jù)的黎明
1、HBase的使用場(chǎng)景
2、HBase的基本架構(gòu)
? ?Zookeeper分布式協(xié)調(diào)服務(wù)器
? ?Master主控服務(wù)器
? ?Region Server區(qū)域服務(wù)器
3、HBase的數(shù)據(jù)模型
? ?HBase的表結(jié)構(gòu)
? ?行鍵、列鍵、時(shí)間戳
4、HBase的存儲(chǔ)模型
? ?基本單位Region
? ?存儲(chǔ)格式HFile
5、數(shù)據(jù)分裂機(jī)制Split
6、數(shù)據(jù)合并機(jī)制Compaction
? ?minor compaction
? ?major compaction
7、HLog寫前日志
8、數(shù)據(jù)庫讀寫操作
? ?數(shù)據(jù)庫寫入
? ?數(shù)據(jù)庫讀取
? ?三次尋址
9、HBase操作接口
? ?Native Java API
? ?HBase Shell
? ?批量加載工具
? ?HiveQL操作
10、 ? ?HBase性能優(yōu)化
? ?寫速度優(yōu)化
? ?讀速度優(yōu)化
11、 ? ?HBase集群監(jiān)控與管理
案例演練:HBase命令操作實(shí)例
第五部分:Hive分布式數(shù)據(jù)倉庫:高級(jí)的編程語言
1、Hive是什么
2、Hive與關(guān)系數(shù)據(jù)庫的區(qū)別
3、Hive系統(tǒng)架構(gòu)
? ?用戶接口層
? ?元數(shù)據(jù)存儲(chǔ)層
? ?驅(qū)動(dòng)層
4、Hive常用服務(wù)
5、Hive元數(shù)據(jù)的三種部署模式
6、Hive的命名空間
7、Hive數(shù)據(jù)類型與存儲(chǔ)格式
? ?數(shù)據(jù)類型
? ?TextFile/SequenceFile/RCFile
8、Hive的數(shù)據(jù)模型
? ?管理表
? ?外部表
? ?分區(qū)表
? ?桶表
9、HQL語言命令實(shí)例
? ?DDL數(shù)據(jù)定義語言
? ?DML數(shù)據(jù)操作語言
? ?QUERY數(shù)據(jù)查詢語言
10、 ? ?Hive自定義函數(shù)
? ?基本函數(shù)(UDF)
? ?聚合函數(shù)(UDAF)
? ?表生成函數(shù)(UDTF)
11、 ? ?Hive性能優(yōu)化
? ?動(dòng)態(tài)分區(qū)
? ?壓縮
? ?索引
? ?JVM重用
案例演練:Hive命令操作實(shí)例
第六部分:Sqoop數(shù)據(jù)交互工具:Hadoop與傳統(tǒng)數(shù)據(jù)庫的橋梁
1、Sqoop是什么
2、Sqoop的架構(gòu)和功能
? ?Sqoop1架構(gòu)
? ?Sqoop2架構(gòu)
3、數(shù)據(jù)雙向交換
? ?數(shù)據(jù)導(dǎo)入過程
? ?數(shù)據(jù)導(dǎo)出過程
4、數(shù)據(jù)導(dǎo)入工具與命令介紹
案例演練:Sqoop數(shù)據(jù)導(dǎo)入/導(dǎo)出實(shí)際操作
第七部分:Pig數(shù)據(jù)流處理引擎:數(shù)據(jù)腳本語言
1、Pig介紹
2、命令行交互工具Grunt
3、Pig數(shù)據(jù)類型
4、Pig Latin腳本語言介紹
? ?基礎(chǔ)知識(shí)
? ?輸入和輸出
? ?關(guān)系操作
? ?調(diào)用靜態(tài)Java函數(shù)
5、Pig Latin高級(jí)應(yīng)用
6、開發(fā)與測(cè)試Pig Latin腳本
? ?開發(fā)工具
? ?任務(wù)狀態(tài)監(jiān)控
? ?調(diào)試技巧
7、腳本性能優(yōu)化
8、用戶自定義函數(shù)UDF
案例演練:Pig Latin腳本編寫、測(cè)試與運(yùn)行操作
結(jié)束:課程總結(jié)與問題答疑。