海量數(shù)據(jù)處理與大數(shù)據(jù)技術(shù)實戰(zhàn)
本書以實戰(zhàn)案例為主,全面闡述了大數(shù)據(jù)開發(fā)領(lǐng)域中常用的技術(shù)原理和框架,以及框架對應(yīng)的實戰(zhàn)案例。全書共分為四大篇章:大數(shù)據(jù)基礎(chǔ)篇、大數(shù)據(jù)離線批處理技術(shù)篇、大數(shù)據(jù)在線實時處理技術(shù)篇、大數(shù)據(jù)處理實戰(zhàn)案例篇。大數(shù)據(jù)基礎(chǔ)篇主要介紹了大數(shù)據(jù)的基礎(chǔ)知識、Hadoop和Storm的基礎(chǔ)知識及其發(fā)展現(xiàn)狀和應(yīng)用前景;大數(shù)據(jù)離線批處理技術(shù)篇主要介紹了Hadoop、Hive和Sqoop的基本原理、環(huán)境搭建和項目案例;大數(shù)據(jù)在線實時處理技術(shù)篇主要介紹了Flume、Kafka、Storm的基本原理、環(huán)境搭建和項目案例;大數(shù)據(jù)處理實戰(zhàn)案例篇詳細介紹了基于海量日志數(shù)據(jù)的分析統(tǒng)計系統(tǒng)的實現(xiàn)過程,期間對各種大數(shù)據(jù)框架進行了整合,此案例項目稍加修改,便可應(yīng)用于實際開發(fā)項目中。
本書內(nèi)容由淺入深、從原理到實戰(zhàn),適合在校大學生、專業(yè)培訓機構(gòu)的學員、想轉(zhuǎn)行從事大數(shù)據(jù)開發(fā)的人員、需要系統(tǒng)學習大數(shù)據(jù)技術(shù)的開發(fā)人員、大數(shù)據(jù)從業(yè)者、大數(shù)據(jù)運維工程師、希望提高大數(shù)據(jù)開發(fā)實戰(zhàn)水平的人員、大數(shù)據(jù)開發(fā)經(jīng)理、大數(shù)據(jù)架構(gòu)師、需要時常查閱大數(shù)據(jù)常用框架技術(shù)和開發(fā)案例的人員閱讀。
冰河(本名劉亞壯),大數(shù)據(jù)架構(gòu)師,編程專家,擁有多年的項目架構(gòu)和實戰(zhàn)經(jīng)驗,多年來致力于分布式系統(tǒng)、微服務(wù)、分布式數(shù)據(jù)庫、大數(shù)據(jù)技術(shù)的研究,在高并發(fā)、高可用、高可擴展性、高可維護性和大數(shù)據(jù)等領(lǐng)域擁有豐富的實戰(zhàn)經(jīng)驗,對Hadoop、Spark、Storm等大數(shù)據(jù)框架源碼進行過深度分析并具有豐富的實戰(zhàn)經(jīng)驗。
第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ù)處理平臺的基礎(chǔ)架構(gòu) 4
1.4 大數(shù)據(jù)處理中的存儲技術(shù) 6
1.4.1 提升大數(shù)據(jù)存儲的容量 6
1.4.2 提升大數(shù)據(jù)存儲的吞吐量 6
1.4.3 提升大數(shù)據(jù)存儲的擴展 8
1.5 大數(shù)據(jù)處理中的計算技術(shù) 8
1.5.1 多處理技術(shù) 9
1.5.2 并行計算 9
1.5.3 高并發(fā)計算 9
1.5.4 離線批處理計算 9
1.5.5 在線實時計算 10
1.6 大數(shù)據(jù)處理中的容錯性 10
1.6.1 數(shù)據(jù)存儲的容錯性 10
1.6.2 數(shù)據(jù)計算的容錯性 12
1.7 大數(shù)據(jù)處理中的安全性 12
1.7.1 數(shù)據(jù)存儲的安全性 13
1.7.2 數(shù)據(jù)計算的安全性 13
1.8 大數(shù)據(jù)行業(yè)應(yīng)用案例 13
1.8.1 淘寶的千人千面系統(tǒng) 14
1.8.2 滴滴出行的車輛調(diào)度系統(tǒng) 14
1.9 本章總結(jié) 14
第2章 離線批處理技術(shù)——Hadoop 15
2.1 Google核心云計算技術(shù) 16
2.1.1 MapReduce編程模型 16
2.1.2 分布式文件系統(tǒng) 17
2.1.3 分布式結(jié)構(gòu)化數(shù)據(jù)存儲
BigTable 20
2.2 Hadoop云計算技術(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的原理和運行機制 27
2.2.6 Hadoop相關(guān)技術(shù)與概述 30
2.2.7 Hadoop的局限性 31
2.3 本章總結(jié) 32
第3章 在線實時處理技術(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ā)展趨勢 42
3.8.1 Storm的應(yīng)用現(xiàn)狀 42
3.8.2 Storm的發(fā)展趨勢 43
3.9 本章總結(jié) 43
第2篇 大數(shù)據(jù)離線批處理技術(shù)篇
第4章 Hadoop環(huá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虛擬機 57
4.4.1 安裝VMWare虛擬機 57
4.4.2 安裝CentOS虛擬機 59
4.4.3 修改主機名 66
4.4.4 配置靜態(tài)IP地址 67
4.4.5 配置主機名和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虛擬機 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 驗證Hadoop本地模式是否
安裝成功 82
5.5 Hadoop的偽集群模式安裝和配置 84
5.5.1 以偽集群模式配置Hadoop 84
5.5.2 格式化NameNode 86
5.5.3 啟動Hadoop 87
5.5.4 以瀏覽器方式驗證環(huán)境搭建
是否成功 87
5.5.5 運行MapReduce程序驗證
環(huán)境搭建是否成功 88
5.6 Hadoop集群模式的安裝和配置
(完全生產(chǎn)環(huán)境) 90
5.6.1 服務(wù)器規(guī)劃 90
5.6.2 Hadoop集群環(huán)境的準備 91
5.6.3 安裝并配置集群環(huán)境下的
JDK 93
5.6.4 搭建并配置Zookeeper集群 94
5.6.5 搭建并配置Hadoop集群 96
5.6.6 啟動Zookeeper集群 103
5.6.7 啟動Hadoop集群(1) 104
5.6.8 啟動Hadoop集群(2) 109
5.6.9 測試Hadoop HA的
高可用性 111
5.7 Hadoop集群模式的安裝和配置
(精簡版) 114
5.7.1 服務(wù)器規(guī)劃 115
5.7.2 搭建并測試Hadoop
集群環(huán)境 115
5.8 搭建Hadoop環(huán)境遇到的問題及
解決方案 116
5.8.1 以root用戶啟動Hadoop
的問題 116
5.8.2 權(quán)限被拒絕 117
5.8.3 sudo命令異常 117
5.8.4 Hadoop 3.x端口變動 118
5.8.5 Hadoop 3.x未能找到或加載
MRAppMaster類 118
5.8.6 未能加載native-hadoop library
的警告 120
5.8.7 Hadoop 3.x運行自帶的
wordcount報錯 120
5.8.8 Hadoop命令變動 122
5.9 Hadoop集群動態(tài)增加和刪除
節(jié)點 123
5.9.1 準備工作 123
5.9.2 動態(tài)添加DataNode和
NodeManager 124
5.9.3 動態(tài)刪除DataNode與
NodeManager(1) 127
5.9.4 動態(tài)刪除DataNode與
NodeManager(2) 129
5.10 Hadoop目錄結(jié)構(gòu)說明 130
5.11 本章總結(jié) 130