《精通Hadoop》是2016年人民郵電出版社出版的圖書,作者是[印] 卡倫斯 ( SandeepKaranth )。
基本介紹
內容簡介,目錄,
內容簡介
這本高階教程將通過大量示例幫助你精通Hadoop,掌握Hadoop實踐和技巧。主要內容包括:Hadoop MapReduce、Pig 和Hive 最佳化策略,YARN 審讀剖析,如何利用Storm,等等。如果你熟悉Hadoop,並想將自己的技能再提高一個層次,本書是你的不二之選。
目錄
第1 章 Hadoop 2.X 1
1.1 Hadoop 的起源 1
1.2 Hadoop 的演進 2
1.3 Hadoop 2.X 6
1.3.1 Yet Another Resource Negotiator(YARN) 7
1.3.2 存儲層的增強 8
1.3.3 支持增強 11
1.4 Hadoop 的發行版 11
1.4.1 選哪個Hadoop 發行版 12
1.4.2 可用的發行版 14
1.5 小結 16
第2 章 MapReduce 進階 17
2.1 MapReduce 輸入 18
2.1.1 InputFormat 類 18
2.1.2 InputSplit 類 18
2.1.3 RecordReader 類 19
2.1.4 Hadoop 的“小檔案”問題 20
2.1.5 輸入過濾 24
2.2 Map 任務 27
2.2.1 dfs.blocksize 屬性 28
2.2.2 中間輸出結果的排序與溢出 28
2.2.3 本地reducer 和Combiner 31
2.2.4 獲取中間輸出結果——Map 側 31
2.3 Reduce 任務 32
2.3.1 獲取中間輸出結果——Reduce 側 32
2.3.2 中間輸出結果的合併與溢出 33
2.4 MapReduce 的輸出 34
2.5 MapReduce 作業的計數器 34
2.6 數據連線的處理 36
2.6.1 Reduce 側的連線 36
2.6.2 Map 側的連線 42
2.7 小結 45
第3 章 Pig 進階 47
3.1 Pig 對比SQL 48
3.2 不同的執行模式 48
3.3 Pig 的複合數據類型 49
3.4 編譯Pig 腳本 50
3.4.1 邏輯計畫 50
3.4.2 物理計畫 51
3.4.3 MapReduce 計畫 52
3.5 開發和調試助手 52
3.5.1 DESCRIBE 命令 52
3.5.2 EXPLAIN 命令 53
3.5.3 ILLUSTRATE 命令 53
3.6 Pig 操作符的高級特性 54
3.6.1 FOREACH 操作符進階 54
3.6.2 Pig 的特殊連線 58
3.7 用戶定義函式 61
3.7.1 運算函式 61
3.7.2 載入函式 66
3.7.3 存儲函式 68
3.8 Pig 的性能最佳化 69
3.8.1 最佳化規則 69
3.8.2 Pig 腳本性能的測量 71
3.8.3 Pig 的Combiner 72
3.8.4 Bag 數據類型的記憶體 72
3.8.5 Pig 的reducer 數量 72
3.8.6 Pig 的multiquery 模式 73
3.9 最佳實踐 73
3.9.1 明確地使用類型 74
3.9.2 更早更頻繁地使用投影 74
3.9.3 更早更頻繁地使用過濾 74
3.9.4 使用LIMIT 操作符 74
3.9.5 使用DISTINCT 操作符 74
3.9.6 減少操作 74
3.9.7 使用Algebraic UDF 75
3.9.8 使用Accumulator UDF 75
3.9.9 剔除數據中的空記錄 75
3.9.10 使用特殊連線 75
3.9.11 壓縮中間結果 75
3.9.12 合併小檔案 76
3.10 小結 76
第4 章 Hive 進階 77
4.1 Hive 架構 77
4.1.1 Hive 元存儲 78
4.1.2 Hive 編譯器 78
4.1.3 Hive 執行引擎 78
4.1.4 Hive 的支持組件 79
4.2 數據類型 79
4.3 檔案格式 80
4.3.1 壓縮檔案 80
4.3.2 ORC 檔案 81
4.3.3 Parquet 檔案 81
4.4 數據模型 82
4.4.1 動態分區 84
4.4.2 Hive 表索引 85
4.5 Hive 查詢最佳化器 87
4.6 DML 進階 88
4.6.1 GROUP BY 操作 88
4.6.2 ORDER BY 與SORT BY 88
4.6.3 JOIN 類型 88
4.6.4 高級聚合 89
4.6.5 其他高級語句 90
4.7 UDF、UDAF 和UDTF 90
4.8 小結 93
第5 章 序列化和Hadoop I/O 95
5.1 Hadoop 數據序列化 95
5.1.1 Writable 與WritableComparable 96
5.1.2 Hadoop 與Java 序列化的區別 98
5.2 Avro 序列化 100
5.2.1 Avro 與MapReduce 102
5.2.2 Avro 與Pig 105
5.2.3 Avro 與Hive 106
5.2.4 比較Avro 與Protocol Buffers/Thrift 107
5.3 檔案格式 108
5.3.1 Sequence 檔案格式 108
5.3.2 MapFile 格式 111
5.3.3 其他數據結構 113
5.4 壓縮 113
5.4.1 分片與壓縮 114
5.4.2 壓縮範圍 115
5.5 小結 115
第6 章 YARN——其他套用模式進入Hadoop 的引路人 116
6.1 YARN 的架構 117
6.1.1 資源管理器 117
6.1.2 Application Master 118
6.1.3 節點管理器 119
6.1.4 YARN 客戶端 120
6.2 開發YARN 的應用程式 120
6.2.1 實現YARN 客戶端 120
6.2.2 實現AM 實例 125
6.3 YARN 的監控 129
6.4 YARN 中的作業調度 134
6.4.1 容量調度器 134
6.4.2 公平調度器 137
6.5 YARN 命令行 139
6.5.1 用戶命令 140
6.5.2 管理員命令 140
6.6 小結 141
第7 章 基於YARN 的Storm——Hadoop中的低延時處理 142
7.1 批處理對比流式處理 142
7.2 Apache Storm 144
7.2.1 Apache Storm 的集群架構 144
7.2.2 Apache Storm 的計算和數據模型 145
7.2.3 Apache Storm 用例 146
7.2.4 Apache Storm 的開發 147
7.2.5 Apache Storm 0.9.1 153
7.3 基於YARN 的Storm 154
7.3.1 在YARN 上安裝Apache Storm 154
7.3.2 安裝過程 154
7.4 小結 161
第8 章 雲上的Hadoop 162
8.1 雲計算的特點 162
8.2 雲上的Hadoop 163
8.3 亞馬遜Elastic MapReduce 164
8.4 小結 175
第9 章 HDFS 替代品 176
9.1 HDFS 的優缺點 176
9.2 亞馬遜AWS S3 177
9.3 在Hadoop 中實現檔案系統 179
9.4 在Hadoop 中實現S3 原生檔案系統 179
9.5 小結 189
第10 章 HDFS 聯合 190
10.1 舊版HDFS 架構的限制 190
10.2 HDFS 聯合的架構 192
10.2.1 HDFS 聯合的好處 193
10.2.2 部署聯合NameNode 193
10.3 HDFS 高可用性 195
10.3.1 從NameNode、檢查節點和備份節點 195
10.3.2 高可用性——共享edits 196
10.3.3 HDFS 實用工具 197
10.3.4 三層與四層網路拓撲 197
10.4 HDFS 塊放置策略 198
10.5 小結 200
第11 章 Hadoop 安全 201
11.1 安全的核心 201
11.2 Hadoop 中的認證 202
11.2.1 Kerberos 認證 202
11.2.2 Kerberos 的架構和工作流 203
11.2.3 Kerberos 認證和Hadoop 204
11.2.4 HTTP 接口的認證 204
11.3 Hadoop 中的授權 205
11.3.1 HDFS 的授權 205
11.3.2 限制HDFS 的使用量 208
11.3.3 Hadoop 中的服務級授權 209
11.4 Hadoop 中的數據保密性 211
11.5 Hadoop 中的日誌審計 216
11.6 小結 217
第12 章 使用Hadoop 進行數據分析 218
12.1 數據分析工作流 218
12.2 機器學習 220
12.3 Apache Mahout 222
12.4 使用Hadoop 和Mahout 進行文檔分析 223
12.4.1 詞頻 223
12.4.2 文頻 224
12.4.3 詞頻-逆向文頻 224
12.4.4 Pig 中的Tf-idf 225
12.4.5 餘弦相似度距離度量 228
12.4.6 使用k-means 的聚類 228
12.4.7 使用Apache Mahout 進行k-means 聚類 229
12.5 RHadoop 233
12.6 小結 233
附錄 微軟Windows 中的Hadoop 235