海量數(shù)據(jù)處理與大數(shù)據(jù)技術(shù)實(shí)戰(zhàn)
本書(shū)以實(shí)戰(zhàn)案例為主,全面闡述了大數(shù)據(jù)開(kāi)發(fā)領(lǐng)域中常用的技術(shù)原理和框架,以及框架對(duì)應(yīng)的實(shí)戰(zhàn)案例。全書(shū)共分為四大篇章:大數(shù)據(jù)基礎(chǔ)篇、大數(shù)據(jù)離線批處理技術(shù)篇、大數(shù)據(jù)在線實(shí)時(shí)處理技術(shù)篇、大數(shù)據(jù)處理實(shí)戰(zhàn)案例篇。大數(shù)據(jù)基礎(chǔ)篇主要介紹了大數(shù)據(jù)的基礎(chǔ)知識(shí)、Hadoop和Storm的基礎(chǔ)知識(shí)及其發(fā)展現(xiàn)狀和應(yīng)用前景;大數(shù)據(jù)離線批處理技術(shù)篇主要介紹了Hadoop、Hive和Sqoop的基本原理、環(huán)境搭建和項(xiàng)目案例;大數(shù)據(jù)在線實(shí)時(shí)處理技術(shù)篇主要介紹了Flume、Kafka、Storm的基本原理、環(huán)境搭建和項(xiàng)目案例;大數(shù)據(jù)處理實(shí)戰(zhàn)案例篇詳細(xì)介紹了基于海量日志數(shù)據(jù)的分析統(tǒng)計(jì)系統(tǒng)的實(shí)現(xiàn)過(guò)程,期間對(duì)各種大數(shù)據(jù)框架進(jìn)行了整合,此案例項(xiàng)目稍加修改,便可應(yīng)用于實(shí)際開(kāi)發(fā)項(xiàng)目中。
本書(shū)內(nèi)容由淺入深、從原理到實(shí)戰(zhàn),適合在校大學(xué)生、專業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)員、想轉(zhuǎn)行從事大數(shù)據(jù)開(kāi)發(fā)的人員、需要系統(tǒng)學(xué)習(xí)大數(shù)據(jù)技術(shù)的開(kāi)發(fā)人員、大數(shù)據(jù)從業(yè)者、大數(shù)據(jù)運(yùn)維工程師、希望提高大數(shù)據(jù)開(kāi)發(fā)實(shí)戰(zhàn)水平的人員、大數(shù)據(jù)開(kāi)發(fā)經(jīng)理、大數(shù)據(jù)架構(gòu)師、需要時(shí)常查閱大數(shù)據(jù)常用框架技術(shù)和開(kāi)發(fā)案例的人員閱讀。
冰河(本名劉亞壯),大數(shù)據(jù)架構(gòu)師,編程專家,擁有多年的項(xiàng)目架構(gòu)和實(shí)戰(zhàn)經(jīng)驗(yàn),多年來(lái)致力于分布式系統(tǒng)、微服務(wù)、分布式數(shù)據(jù)庫(kù)、大數(shù)據(jù)技術(shù)的研究,在高并發(fā)、高可用、高可擴(kuò)展性、高可維護(hù)性和大數(shù)據(jù)等領(lǐng)域擁有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),對(duì)Hadoop、Spark、Storm等大數(shù)據(jù)框架源碼進(jìn)行過(guò)深度分析并具有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。
第1篇 大數(shù)據(jù)基礎(chǔ)篇
第1章 大數(shù)據(jù)處理概論 1
1.1 大數(shù)據(jù)的定義 2
1.2 大數(shù)據(jù)的結(jié)構(gòu)類型 3
1.3 大數(shù)據(jù)處理平臺(tái)的基礎(chǔ)架構(gòu) 4
1.4 大數(shù)據(jù)處理中的存儲(chǔ)技術(shù) 6
1.4.1 提升大數(shù)據(jù)存儲(chǔ)的容量 6
1.4.2 提升大數(shù)據(jù)存儲(chǔ)的吞吐量 6
1.4.3 提升大數(shù)據(jù)存儲(chǔ)的擴(kuò)展 8
1.5 大數(shù)據(jù)處理中的計(jì)算技術(shù) 8
1.5.1 多處理技術(shù) 9
1.5.2 并行計(jì)算 9
1.5.3 高并發(fā)計(jì)算 9
1.5.4 離線批處理計(jì)算 9
1.5.5 在線實(shí)時(shí)計(jì)算 10
1.6 大數(shù)據(jù)處理中的容錯(cuò)性 10
1.6.1 數(shù)據(jù)存儲(chǔ)的容錯(cuò)性 10
1.6.2 數(shù)據(jù)計(jì)算的容錯(cuò)性 12
1.7 大數(shù)據(jù)處理中的安全性 12
1.7.1 數(shù)據(jù)存儲(chǔ)的安全性 13
1.7.2 數(shù)據(jù)計(jì)算的安全性 13
1.8 大數(shù)據(jù)行業(yè)應(yīng)用案例 13
1.8.1 淘寶的千人千面系統(tǒng) 14
1.8.2 滴滴出行的車(chē)輛調(diào)度系統(tǒng) 14
1.9 本章總結(jié) 14
第2章 離線批處理技術(shù)——Hadoop 15
2.1 Google核心云計(jì)算技術(shù) 16
2.1.1 MapReduce編程模型 16
2.1.2 分布式文件系統(tǒng) 17
2.1.3 分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)
BigTable 20
2.2 Hadoop云計(jì)算技術(shù) 21
2.2.1 Hadoop概述 22
2.2.2 Hadoop核心組件 22
2.2.3 Hadoop生態(tài)圈 24
2.2.4 Hadoop物理架構(gòu) 26
2.2.5 Hadoop的原理和運(yùn)行機(jī)制 27
2.2.6 Hadoop相關(guān)技術(shù)與概述 30
2.2.7 Hadoop的局限性 31
2.3 本章總結(jié) 32
第3章 在線實(shí)時(shí)處理技術(shù)——Storm 33
3.1 Storm的定義 34
3.2 Storm的誕生 34
3.2.1 誕生背景 34
3.2.2 Twitter使用Storm 34
3.3 Storm的發(fā)展 35
3.4 Storm的基本組件 35
3.4.1 Storm核心組件 35
3.4.2 Storm集群組成 36
3.4.3 Storm分組策略 37
3.5 Storm的可靠性 38
3.6 Storm的特性 40
3.7 其他流式處理框架 41
3.7.1 Apache S4 41
3.7.2 Spark Streaming 41
3.8 Storm的應(yīng)用現(xiàn)狀和發(fā)展趨勢(shì) 42
3.8.1 Storm的應(yīng)用現(xiàn)狀 42
3.8.2 Storm的發(fā)展趨勢(shì) 43
3.9 本章總結(jié) 43
第2篇 大數(shù)據(jù)離線批處理技術(shù)篇
第4章 Hadoop環(huán)境準(zhǔn)備 44
4.1 Hadoop發(fā)行版本的選擇 45
4.1.1 Apache Hadoop 45
4.1.2 CDH 45
4.1.3 Hadoop版本 45
4.1.4 如何選擇Hadoop版本 47
4.2 Hadoop原理 47
4.2.1 HDFS原理 48
4.2.2 Hadoop MapReduce原理 51
4.2.3 Hadoop YARN原理 51
4.3 Hadoop架構(gòu) 53
4.3.1 HDFS架構(gòu) 53
4.3.2 Hadoop MapReduce架構(gòu) 55
4.3.3 Hadoop YRAN架構(gòu) 56
4.4 安裝CentOS虛擬機(jī) 57
4.4.1 安裝VMWare虛擬機(jī) 57
4.4.2 安裝CentOS虛擬機(jī) 59
4.4.3 修改主機(jī)名 66
4.4.4 配置靜態(tài)IP地址 67
4.4.5 配置主機(jī)名和IP地址的
映射關(guān)系 69
4.4.6 關(guān)閉防火墻 70
4.4.7 配置SSH免密碼登錄 70
4.5 本章總結(jié) 72
第5章 安裝配置Hadoop 73
5.1 添加Hadoop用戶身份 74
5.1.1 添加Hadoop用戶組和用戶 74
5.1.2 賦予Hadoop用戶目錄權(quán)限 74
5.1.3 賦予Hadoop用戶sodu
權(quán)限 74
5.1.4 賦予Hadoop用戶登錄密碼 75
5.1.5 配置Hadoop用戶SSH
免密碼登錄 75
5.2 Hadoop的安裝模式 75
5.2.1 本地模式 75
5.2.2 偽集群模式 76
5.2.3 集群模式 76
5.3 JDK的安裝和配置 76
5.3.1 下載JDK 77
5.3.2 上傳JDK到CentOS虛擬機(jī) 77
5.3.3 安裝并配置JDK 78
5.4 Hadoop的本地模式安裝和配置 80
5.4.1 下載Hadoop安裝包 80
5.4.2 安裝并配置Hadoop環(huán)境 81
5.4.3 以本地模式配置Hadoop 82
5.4.4 驗(yàn)證Hadoop本地模式是否
安裝成功 82
5.5 Hadoop的偽集群模式安裝和配置 84
5.5.1 以偽集群模式配置Hadoop 84
5.5.2 格式化NameNode 86
5.5.3 啟動(dòng)Hadoop 87
5.5.4 以瀏覽器方式驗(yàn)證環(huán)境搭建
是否成功 87
5.5.5 運(yùn)行MapReduce程序驗(yàn)證
環(huán)境搭建是否成功 88
5.6 Hadoop集群模式的安裝和配置
(完全生產(chǎn)環(huán)境) 90
5.6.1 服務(wù)器規(guī)劃 90
5.6.2 Hadoop集群環(huán)境的準(zhǔn)備 91
5.6.3 安裝并配置集群環(huán)境下的
JDK 93
5.6.4 搭建并配置Zookeeper集群 94
5.6.5 搭建并配置Hadoop集群 96
5.6.6 啟動(dòng)Zookeeper集群 103
5.6.7 啟動(dòng)Hadoop集群(1) 104
5.6.8 啟動(dòng)Hadoop集群(2) 109
5.6.9 測(cè)試Hadoop HA的
高可用性 111
5.7 Hadoop集群模式的安裝和配置
(精簡(jiǎn)版) 114
5.7.1 服務(wù)器規(guī)劃 115
5.7.2 搭建并測(cè)試Hadoop
集群環(huán)境 115
5.8 搭建Hadoop環(huán)境遇到的問(wèn)題及
解決方案 116
5.8.1 以root用戶啟動(dòng)Hadoop
的問(wèn)題 116
5.8.2 權(quán)限被拒絕 117
5.8.3 sudo命令異常 117
5.8.4 Hadoop 3.x端口變動(dòng) 118
5.8.5 Hadoop 3.x未能找到或加載
MRAppMaster類 118
5.8.6 未能加載native-hadoop library
的警告 120
5.8.7 Hadoop 3.x運(yùn)行自帶的
wordcount報(bào)錯(cuò) 120
5.8.8 Hadoop命令變動(dòng) 122
5.9 Hadoop集群動(dòng)態(tài)增加和刪除
節(jié)點(diǎn) 123
5.9.1 準(zhǔn)備工作 123
5.9.2 動(dòng)態(tài)添加DataNode和
NodeManager 124
5.9.3 動(dòng)態(tài)刪除DataNode與
NodeManager(1) 127
5.9.4 動(dòng)態(tài)刪除DataNode與
NodeManager(2) 129
5.10 Hadoop目錄結(jié)構(gòu)說(shuō)明 130
5.11 本章總結(jié) 130