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