劍指大數(shù)據(jù)——Hadoop學(xué)習(xí)精要
定 價(jià):105 元
叢書(shū)名:程序員硬核技術(shù)叢書(shū)
- 作者:尚硅谷教育
- 出版時(shí)間:2022/10/1
- ISBN:9787121443923
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁(yè)碼:308
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
Hadoop是使用最廣泛的大數(shù)據(jù)處理框架之一,在大數(shù)據(jù)領(lǐng)域有著極其重要的地位,掌握Hadoop可以讓學(xué)習(xí)者對(duì)大數(shù)據(jù)的理解更進(jìn)一步。本書(shū)是基于Hadoop 3.1.3編寫的,從大數(shù)據(jù)的特點(diǎn)和處理難點(diǎn)入手,逐步講解Hadoop的起源和發(fā)展。從搭建Hadoop的學(xué)習(xí)環(huán)境開(kāi)始,依次對(duì)Hadoop的三大功能模塊進(jìn)行重點(diǎn)講解,并且結(jié)合大量案例,細(xì)致地講解HDFS、MapReduce、YARN的內(nèi)核原理和調(diào)優(yōu)方法,還會(huì)擴(kuò)展講解Hadoop的高可用實(shí)現(xiàn)、在生產(chǎn)環(huán)境中的調(diào)優(yōu)方法及源碼解讀。本書(shū)廣泛適用于大數(shù)據(jù)的學(xué)習(xí)者與從業(yè)人員,是大數(shù)據(jù)學(xué)習(xí)的必備書(shū)籍。
尚硅谷教育是一家專業(yè)的IT教育培訓(xùn)機(jī)構(gòu),開(kāi)設(shè)了JavaEE、大數(shù)據(jù)、HTML5前端等多門學(xué)科,在互聯(lián)網(wǎng)上發(fā)布的JavaEE、大數(shù)據(jù)、HTML5前端、區(qū)塊鏈、C語(yǔ)言、Python等技術(shù)視頻教程廣受贊譽(yù)。
第1章 大數(shù)據(jù)概論 1
1.1 大數(shù)據(jù)的特征 1
1.2 大數(shù)據(jù)的發(fā)展前景 2
1.2.1 大數(shù)據(jù)的應(yīng)用場(chǎng)景 2
1.2.2 大數(shù)據(jù)的未來(lái)發(fā)展 3
1.3 大數(shù)據(jù)生態(tài)體系與Hadoop 4
1.3.1 Hadoop的發(fā)展史 4
1.3.2 大數(shù)據(jù)生態(tài)體系 5
1.3.3 Hadoop架構(gòu) 7
1.4 本章總結(jié) 10
第2章 環(huán)境準(zhǔn)備 11
2.1 安裝VMware 11
2.2 安裝CentOS 11
2.3 安裝遠(yuǎn)程終端 19
2.3.1 安裝Xshell 19
2.3.2 安裝SecureCRT 21
2.4 虛擬機(jī)配置 23
2.4.1 網(wǎng)絡(luò)配置 23
2.4.2 網(wǎng)絡(luò)IP地址配置 24
2.4.3 主機(jī)名配置 25
2.4.4 防火墻配置 25
2.4.5 一般用戶配置 26
2.4.6 克隆虛擬機(jī) 26
2.5 本章總結(jié) 27
第3章 Hadoop快速上手 28
3.1 集群角色 28
3.1.1 Hadoop集群的主要角色 28
3.1.2 YARN的主要組成部分 28
3.2 本地模式 30
3.2.1 安裝 30
3.2.2 運(yùn)行官方示例程序 32
3.3 完全分布式模式 33
3.3.1 SSH免密登錄 33
3.3.2 shell腳本準(zhǔn)備 34
3.3.3 集群配置 36
3.3.4 NameNode格式化問(wèn)題 42
3.3.5 配置歷史服務(wù)器與日志聚集功能 44
3.3.6 Hadoop集群?jiǎn)⑼D_本 47
3.3.7 集群時(shí)間同步 48
3.4 本章總結(jié) 50
第4章 分布式文件系統(tǒng)HDFS 51
4.1 HDFS概述 51
4.1.1 HDFS背景及定義 51
4.1.2 HDFS的基本架構(gòu) 52
4.2 HDFS的shell操作 53
4.2.1 命令大全 53
4.2.2 命令行命令實(shí)操 54
4.3 HDFS的API操作 58
4.3.1 客戶端環(huán)境準(zhǔn)備 58
4.3.2 HDFS文件上傳案例 61
4.3.3 HDFS文件下載案例 62
4.3.4 HDFS文件重命名案例 63
4.3.5 HDFS文件刪除案例 63
4.3.6 HDFS文件詳情查看案例 63
4.3.7 HDFS文件和文件夾判斷案例 64
4.4 HDFS的讀/寫流程 65
4.4.1 HDFS中的數(shù)據(jù)塊大小 65
4.4.2 寫數(shù)據(jù)流程 65
4.4.3 讀數(shù)據(jù)流程 68
4.5 HDFS的工作機(jī)制 69
4.5.1 NameNode和SecondaryNameNode的工作機(jī)制 69
4.5.2 EditLog和FsImage文件解析 70
4.5.3 檢查點(diǎn)時(shí)間設(shè)置 76
4.5.4 DataNode的工作機(jī)制 76
4.5.5 數(shù)據(jù)完整性 77
4.6 本章總結(jié) 78
第5章 分布式計(jì)算MapReduce 79
5.1 MapReduce概述 79
5.1.1 MapReduce定義 79
5.1.2 MapReduce核心思想 80
5.2 MapReduce編程入門 81
5.2.1 官方示例程序WordCount源碼 81
5.2.2 編程規(guī)范 82
5.2.3 WordCount案例實(shí)操 82
5.3 Hadoop的序列化 89
5.3.1 序列化概述 89
5.3.2 Writable接口 89
5.3.3 序列化案例實(shí)操 90
5.4 MapReduce框架原理之InputFormat數(shù)據(jù)輸入 96
5.4.1 切片與MapTask并行度決定機(jī)制 96
5.4.2 Job提交流程源碼和FileInputFormat切片源碼詳解 98
5.4.3 FileInputFormat切片機(jī)制總結(jié) 101
5.4.4 TextInputFormat 101
5.4.5 CombineTextInputFormat切片機(jī)制 102
5.4.6 CombineTextInputFormat案例實(shí)操 103
5.5 MapReduce框架原理之shuffle機(jī)制 104
5.5.1 shuffle機(jī)制 104
5.5.2 分區(qū) 105
5.5.3 分區(qū)案例實(shí)操 106
5.5.4 WritableComparable排序 110
5.5.5 WritableComparable排序案例實(shí)操(全排序) 111
5.5.6 WritableComparable排序案例實(shí)操(區(qū)內(nèi)排序) 116
5.5.7 Combiner合并 119
5.5.8 Combiner合并案例實(shí)操 120
5.6 MapReduce框架原理之OutputFormat數(shù)據(jù)輸出 121
5.6.1 OutputFormat接口的實(shí)現(xiàn)類 121
5.6.2 自定義OutputFormat類的案例實(shí)操 122
5.7 MapReduce工作流程 126
5.8 Join 127
5.8.1 Reduce Join 127
5.8.2 Reduce Join案例實(shí)操 127
5.8.3 Map Join 133
5.8.4 Map Join案例實(shí)操 134
5.9 數(shù)據(jù)清洗 137
5.10 Hadoop中的數(shù)據(jù)壓縮 139
5.10.1 數(shù)據(jù)壓縮概述 139
5.10.2 壓縮參數(shù)配置 140
5.10.3 壓縮案例實(shí)操 141
5.11 本章總結(jié) 145
第6章 資源調(diào)度器YARN 146
6.1 YARN概述 146
6.1.1 基本架構(gòu) 147
6.1.2 工作機(jī)制 148
6.2 YARN的資源調(diào)度器和調(diào)度算法 150
6.2.1 FIFO調(diào)度器 150
6.2.2 容量調(diào)度器 150
6.2.3 公平調(diào)度器 152
6.3 YARN實(shí)操 156
6.3.1 常用的命令行命令 156
6.3.2 核心參數(shù) 158
6.3.3 核心參數(shù)配置案例 159
6.3.4 容量調(diào)度器配置案例 163
6.3.5 公平調(diào)度器配置案例 168
6.3.6 Tool接口案例 171
6.4 本章總結(jié) 174
第7章 高可用HA 175
7.1 ZooKeeper詳解 175
7.1.1 ZooKeeper入門 175
7.1.2 ZooKeeper安裝 178
7.1.3 ZooKeeper的內(nèi)部原理 180
7.1.4 ZooKeeper的命令操作 181
7.2 HA概述 188
7.2.1 什么是HA 188
7.2.2 HDFS HA的工作機(jī)制 188
7.3 Hadoop HA集群的搭建 189
7.3.1 HDFS HA手動(dòng)故障轉(zhuǎn)移 189
7.3.2 HDFS HA自動(dòng)故障轉(zhuǎn)移 192
7.3.3 YARN HA 195
7.3.4 Hadoop HA集群規(guī)劃 199
7.4 本章總結(jié) 199
第8章 生產(chǎn)調(diào)優(yōu)手冊(cè) 200
8.1 HDFS的核心參數(shù) 200
8.1.1 NameNode的內(nèi)存生產(chǎn)配置 200
8.1.2 NameNode心跳并發(fā)配置 202
8.1.3 啟用回收站功能 203
8.2 HDFS集群壓測(cè) 204
8.2.1 測(cè)試HDFS的寫性能 205
8.2.2 測(cè)試HDFS的讀性能 207
8.3 HDFS的多目錄配置 208
8.3.1 NameNode的多目錄配置 208
8.3.2 DataNode的多目錄配置 208
8.3.3 集群數(shù)據(jù)均衡之磁盤之間的數(shù)據(jù)均衡 209
8.4 HDFS集群的擴(kuò)容及縮容 209
8.4.1 添加白名單 209
8.4.2 服役新服務(wù)器 212
8.4.3 服務(wù)器之間的數(shù)據(jù)均衡 214
8.4.4 黑名單退役服務(wù)器 214
8.5 HDFS的存儲(chǔ)優(yōu)化策略 216
8.5.1 糾刪碼 216
8.5.2 異構(gòu)存儲(chǔ) 218
8.6 HDFS的故障排除 223
8.6.1 NameNode故障處理 223
8.6.2 集群安全模式&磁盤數(shù)據(jù)損壞 224
8.6.3 慢磁盤監(jiān)控 226
8.6.4 小文件存檔 227
8.7 MapReduce的生產(chǎn)經(jīng)驗(yàn) 228
8.7.1 MapReduce程序運(yùn)行較慢的原因 228
8.7.2 MapReduce的常用調(diào)優(yōu)參數(shù) 229
8.7.3 MapReduce的數(shù)據(jù)傾斜 231
8.8 Hadoop的綜合調(diào)優(yōu) 232
8.8.1 Hadoop的小文件優(yōu)化方法 232
8.8.2 測(cè)試MapReduce的計(jì)算性能 233
8.8.3 企業(yè)開(kāi)發(fā)場(chǎng)景案例 234
8.9 本章總結(jié) 239
第9章 源碼解析 240
9.1 RPC通信原理 240
9.2 NameNode啟動(dòng)源碼解析 243
9.2.1 查看源碼的準(zhǔn)備工作 243
9.2.2 啟動(dòng)9870端口服務(wù) 246
9.2.3 加載鏡像文件和編輯日志文件 247
9.2.4 初始化RPC服務(wù)器端 248
9.2.5 檢查資源 249
9.2.6 檢測(cè)心跳信息并進(jìn)行超時(shí)判斷 252
9.2.7 退出安全模式 255
9.3 DataNode啟動(dòng)源碼解析 257
9.3.1 查看源碼的準(zhǔn)備工作 257
9.3.2 初始化DataXceiverServer 259
9.3.3 初始化HTTP服務(wù) 260
9.3.4 初始化RPC服務(wù)器端 261
9.3.5 DataNode向NameNode注冊(cè) 262
9.3.6 DataNode向NameNode發(fā)送心跳信息 266
9.4 HDFS寫數(shù)據(jù)流程的源碼解析 268
9.4.1 查看源碼的準(zhǔn)備工作 269
9.4.2 Client向NameNode發(fā)起寫請(qǐng)求 269
9.4.3 NameNode處理Client的寫請(qǐng)求 270
9.4.4 DataStreamer啟動(dòng)流程 271
9.4.5 向DataStreamer的隊(duì)列中寫數(shù)據(jù) 274
9.4.6 建立管道之機(jī)架感知 276
9.4.7 建立管道之socket發(fā)送 278
9.4.8 建立管道之socket接收 280
9.4.9 客戶端接收DataNode的寫數(shù)據(jù)響應(yīng) 283
9.5 YARN源碼解析 284
9.5.1 查看源碼的準(zhǔn)備工作 284
9.5.2 創(chuàng)建YARN客戶端并提交任務(wù) 286
9.5.3 啟動(dòng)MRAppMaster 288
9.5.4 調(diào)度器任務(wù)執(zhí)行 291
9.6 Hadoop的源碼編譯 294
9.6.1 前期準(zhǔn)備工作 295
9.6.2 安裝工具包 295
9.6.3 編譯源碼 297
9.7 本章總結(jié) 298