大數(shù)據(jù)平臺搭建與配置管理課程是大數(shù)據(jù)技術與應用專業(yè)的必修核心課程。本書重點培養(yǎng)讀者深入認識和使用Hadoop平臺,學習并掌握Hadoop大數(shù)據(jù)平臺的搭建與配置管理,并利用Hadoop知識處理和解決實際問題的能力。主要內(nèi)容為Hadoop安裝與配置、分布式文件系統(tǒng)HDFS、分布式編程框架MapReduce、分布式服務框架Zookeeper、數(shù)據(jù)倉庫Hive、分布式數(shù)據(jù)庫HBase、流式數(shù)據(jù)處理框架Storm。本書具有較強的實用性和可操作性,通俗易懂,操作步驟描述詳盡,并配有微課視頻。本書適合作為高等職業(yè)院校大數(shù)據(jù)技術與應用、軟件技術、云計算技術與應用等專業(yè)大數(shù)據(jù)相關課程的教材,也可作為從事大數(shù)據(jù)相關工作人員的參考用書,還可供有Java編程基礎的讀者參考學習
隨著計算機技術的進步和發(fā)展,人類社會產(chǎn)生的數(shù)據(jù)正呈爆炸式增長。數(shù)據(jù)是人類社會重要的戰(zhàn)略資源,大數(shù)據(jù)是未來的新石油,大數(shù)據(jù)對未來的科技與經(jīng)濟發(fā)展將帶來重大影響,一個國家擁有數(shù)據(jù)的規(guī)模和運用數(shù)據(jù)的能力將成為綜合國力的重要組成部分,對數(shù)據(jù)的占有和控制也將成為國家和企業(yè)間爭奪的焦點。大數(shù)據(jù)如此重要,但大數(shù)據(jù)人才卻十分短缺,據(jù)統(tǒng)計,截至2018年美國大數(shù)據(jù)分析人才缺口是19萬人,中國作為全球第二大經(jīng)濟體,擁有的數(shù)據(jù)占全球總量的13%,增長速度保持在50%左右,明顯高于全球的增長速度。如此巨大的市場,大數(shù)據(jù)處理技術人才必將供不應求,未來幾年我國將需要十幾萬大數(shù)據(jù)相關人才。
大數(shù)據(jù)平臺搭建與配置管理課程是大數(shù)據(jù)技術與應用專業(yè)的必修核心課程,基于能力本位教育理念設計,以學生為中心,強調(diào)參與式、互動式的主動學習過程。本書基于學生能力的發(fā)展,旨在培養(yǎng)學生深入認識和使用Hadoop平臺,掌握Hadoop大數(shù)據(jù)平臺的搭建與配置管理,并利用Hadoop知識處理和解決實際問題。
本教材的參考學時為114學時,建議采用理論實踐一體化教學模式,各項目的參考學時見表1。
表1 學時分配表
單元 學時
單元1 Hadoop安裝與配置 12
單元2 分布式文件系統(tǒng)HDFS 18
單元3 分布式編程框架MapReduce 24
單元4 分布式服務框架Zookeeper 12
單元5 數(shù)據(jù)倉庫Hive 18
單元6 分布式數(shù)據(jù)庫HBase 18
單元7 流式數(shù)據(jù)處理框架Storm 12
課時總計 114
本書由鄧建萍任主編,并負責編寫單元1~單元4;周鋒任副主編,并負責編寫單元5、單元6;蔡斐負責編寫單元7和教材中所有代碼部分的檢查測試工作。
本書配套的資源包、運行腳本、電子教案等可登錄http://www1daoyuncom下載。
大數(shù)據(jù)技術發(fā)展日新月異,筆者在撰寫本書過程中,參考了大量國內(nèi)外的教材、博客、專著、論文和資料,對大數(shù)據(jù)知識進行了系統(tǒng)的梳理,但限于時間和水平,書中疏漏和不足之處在所難免,殷切希望廣大讀者批評指正。
編者
2020年6月
單元1 Hadoop安裝與配置1
任務1.1 安裝Linux虛擬環(huán)境1
1 Linux系統(tǒng)介紹2
2開源協(xié)議介紹7
任務1.2 使用Linux基礎操作命令16
1 Linux文件和目錄管理16
2 Linux用戶和用戶組管理19
3 Linux Shell簡介20
任務1.3 安裝Java28
1 Java簡介28
2 Java與Hadoop的關系34
任務1.4 安裝Hadoop單節(jié)點和集群37
1 Hadoop簡介37
2 Hadoop系統(tǒng)架構41
小結(jié)46
習題46
單元2 分布式文件系統(tǒng)HDFS47
任務2.1 理解HDFS的讀寫過程47
1 HDFS文件系統(tǒng)簡介47
2 HDFS設計原則49
3 HDFS核心概念51
4 HDFS的HA方案53
任務2.2 使用Java操作HDFS58
1 HDFS簡介59
2 HDFS讀數(shù)據(jù)流程59
3 HDFS寫數(shù)據(jù)流程61
小結(jié)69
習題69
單元3 分布式編程框架MapReduce70
任務3.1 講解WordCount實例70
1 MapReduce概述70
2 MapReduce計算架構73
任務3.2 分析MapReduce實例應用83
1 MapReduce的Map過程83
2 MapReduce的Reduce過程85
小結(jié)91
習題92
單元4 分布式服務框架Zookeeper95
任務4.1 安裝與配置Zookeeper93
1 Zookeeper概述94
2 Zookeeper工作流96
3 Zookeeper leader選舉100
任務4.2 調(diào)用Zookeeper的Java客戶端API103
1 Zookeeper分布式協(xié)調(diào)服務原理103
2 Zookeeper znode剖析105
3解讀分布式鎖110
小結(jié)118
習題118
單元5數(shù)據(jù)倉庫Hive119
任務5.1 安裝與配置Hive119
1 Hive基礎知識120
2 Hive的工作123
3 Hive的數(shù)據(jù)類型124
4 Hive的數(shù)據(jù)模型125
5 Hive的架構解析126
6 HiveQL127
任務5.2 調(diào)用Hive的Java API133
1 Hive函數(shù)與自定義函數(shù)134
2 Hive常用模式設計137
小結(jié)146
習題146
單元6 分布式數(shù)據(jù)庫HBase148
任務6.1 安裝與配置HBase148
1 HBase概述149
2 HBase基本原則和架構152
3 HBase數(shù)據(jù)模型154
4 HBase HDFS目錄分析155
任務6.2 使用HBase Shell159
1 HBase Shell常用命令159
2 HBase架構詳情162
3 HBase文件存儲與讀寫166
任務6.3 調(diào)用HBase的Java API175
1 HBase Schema設計規(guī)則175
2 HBase API基本訪問命令179
小結(jié)185
習題186
單元7 流式數(shù)據(jù)處理框架Storm190
任務7.1 安裝與配置Storm188
1 Storm概述與架構188
2 Storm、Flink、Spark流式數(shù)據(jù)處理框架比較192
3 Storm基本概念與組件195
4 Storm的擴展197
任務7.2 使用Java開發(fā)Storm203
1深入剖析Storm Nimbus和Supervisor 203
2 Storm Worker、Executor和Task深入分析205
3 Storm的應用開發(fā)和調(diào)試過程介紹206
小結(jié)217
習題217
參考文獻218