|
-- 會員 / 註冊 --
|
|
|
|
Hadoop應用開發技術詳解 ( 簡體 字) |
作者:劉剛 | 類別:1. -> 程式設計 -> 雲計算 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 37400 詢問書籍請說出此書號!【有庫存】 NT售價: 395 元 |
出版日:1/24/2014 |
頁數:420 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111452447 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:(資深專家系統講解Hadoop開發各項技術和編程方法) 本書由資深Hadoop技術專家撰寫,系統、全面、深入地講解了Hadoop開發者需要掌握的技術和知識,包括HDFS的原理和應用、Hadoop文件I/O的原理和應用、MapReduce的原理和高級應用、MapReduce的編程方法和技巧,以及Hive、HBase和Mahout等技術和工具的使用。并且提供大量基于實際生產環境的案例,實戰性非常強。
全書一共12章。第1∼2章詳細地介紹了Hadoop的生態系統、關鍵技術以及安裝和配置;第3章是MapReduce的使用入門,讓讀者了解整個開發過程;第4∼5章詳細講解了分布式文件系統HDFS和Hadoop的文件I/O;第6章分析了MapReduce的工作原理;第7章講解了如何利用Eclipse來編譯Hadoop的源代碼,以及如何對Hadoop應用進行測試和調試;第8∼9章細致地講解了MapReduce的開發方法和高級應用;第10∼12章系統地講解了Hive、HBase和Mahout。 |
目錄: 目 錄
前 言
第1章 Hadoop概述 / 1
1.1 Hadoop起源 / 1
1.1.1 Google與Hadoop模塊 / 1
1.1.2 為什么會有Hadoop / 1
1.1.3 Hadoop版本介紹 / 2
1.2 Hadoop生態系統 / 3
1.3 Hadoop常用項目介紹 / 4
1.4 Hadoop在國內的應用 / 6
1.5 本章小結 / 7
第2章 Hadoop安裝 / 8
2.1 Hadoop環境安裝配置 / 8
2.1.1 安裝VMware / 8
2.1.2 安裝Ubuntu / 8
2.1.3 安裝VMware Tools / 15
2.1.4 安裝JDK / 15
2.2 Hadoop 安裝模式 / 16
2.2.1 單機安裝 / 17
2.2.2 偽分布式安裝 / 18
2.2.3 分布式安裝 / 20
2.3 如何使用Hadoop / 27
2.3.1 Hadoop的啟動與停止 / 27
2.3.2 Hadoop配置文件 / 28
2.4 本章小結 / 28
第3章 MapReduce快速入門 / 30
3.1 WordCount 實例準備開發環境 / 30
3.1.1 使用Eclipse創建一個Java工程 / 30
3.1.2 導入Hadoop的JAR文件 / 31
3.2 MapReduce代碼的實現 / 32
3.2.1 編寫WordMapper類 / 32
3.2.2 編寫WordReducer類 / 33
3.2.3 編寫WordMain驅動類 / 34
3.3 打包、部署和運行 / 35
3.3.1 打包成JAR文件 / 35
3.3.2 部署和運行 / 36
3.3.3 測試結果 / 38
3.4 本章小結 / 39
第4章 Hadoop分布式文件系統詳解 / 40
4.1 認識HDFS / 40
4.1.1 HDFS的特點 / 40
4.1.2 Hadoop文件系統的接口 / 45
4.1.3 HDFS的Web服務 / 46
4.2 HDFS架構 / 46
4.2.1 機架 / 47
4.2.2 數據塊 / 47
4.2.3 元數據節點 / 48
4.2.4 數據節點 / 50
4.2.5 輔助元數據節點 / 50
4.2.6 名字空間 / 52
4.2.7 數據復制 / 53
4.2.8 塊備份原理 / 53
4.2.9 機架感知 / 54
4.3 Hadoop的RPC機制 / 55
4.3.1 RPC的實現流程 / 56
4.3.2 RPC的實體模型 / 56
4.3.3 文件的讀取 / 57
4.3.4 文件的寫入 / 58
4.3.5 文件的一致模型 / 59
4.4 HDFS的HA機制 / 59
4.4.1 HA集群 / 59
4.4.2 HA架構 / 60
4.4.3 為什么會有HA機制 / 61
4.5 HDFS的Federation機制 / 62
4.5.1 單個NameNode的HDFS架構的局限性 / 62
4.5.2 為什么引入Federation機制 / 63
4.5.3 Federation架構 / 64
4.5.4 多個名字空間的管理問題 / 65
4.6 Hadoop文件系統的訪問 / 66
4.6.1 安全模式 / 66
4.6.2 HDFS的Shell訪問 / 67
4.6.3 HDFS處理文件的命令 / 67
4.7 Java API接口 / 72
4.7.1 Hadoop URL讀取數據 / 73
4.7.2 FileSystem類 / 73
4.7.3 FileStatus類 / 75
4.7.4 FSDataInputStream類 / 77
4.7.5 FSDataOutputStream類 / 81
4.7.6 列出HDFS下所有的文件 / 83
4.7.7 文件的匹配 / 84
4.7.8 PathFilter對象 / 84
4.8 維護HDFS / 86
4.8.1 追加數據 / 86
4.8.2 并行復制 / 88
4.8.3 升級與回滾 / 88
4.8.4 添加節點 / 90
4.8.5 刪除節點 / 91
4.9 HDFS權限管理 / 92
4.9.1 用戶身份 / 92
4.9.2 權限管理的原理 / 93
4.9.3 設置權限的Shell命令 / 93
4.9.4 超級用戶 / 93
4.9.5 HDFS權限配置參數 / 94
4.10 本章小結 / 94
第5章 Hadoop 文件 I/O 詳解 / 95
5.1 Hadoop文件的數據結構 / 95
5.1.1 SequenceFile 存儲 / 95
5.1.2 MapFile存儲 / 99
5.1.3 SequenceFile轉換為MapFile / 101
5.2 HDFS數據完整性 / 103
5.2.1 校驗和 / 103
5.2.2 數據塊檢測程序 / 104
5.3 文件序列化 / 106
5.3.1 進程間通信對序列化的要求 / 106
5.3.2 Hadoop文件的序列化 / 107
5.3.3 Writable接口 / 107
5.3.4 WritableComparable接口 / 108
5.3.5 自定義Writable接口 / 109
5.3.6 序列化框架 / 113
5.3.7 數據序列化系統Avro / 114
5.4 Hadoop的Writable類型 / 115
5.4.1 Writable類的層次結構 / 115
5.4.2 Text類型 / 116
5.4.3 NullWritable類型 / 117
5.4.4 ObjectWritable類型 / 117
5.4.5 GenericWritable類型 / 117
5.5 文件壓縮 / 117
5.5.1 Hadoop支持的壓縮格式 / 118
5.5.2 Hadoop中的編碼器和解碼器 / 118
5.5.3 本地庫 / 121
5.5.4 可分割壓縮 LZO / 122
5.5.5 壓縮文件性能比較 / 122
5.5.6 Snappy壓縮 / 124
5.5.7 gzip、LZO和Snappy比較 / 124
5.6 本章小結 / 125
第6章 MapReduce工作原理 / 126
6.1 MapReduce的函數式編程概念 / 126
6.1.1 列表處理 / 126
6.1.2 Mapping數據列表 / 127
6.1.3 Reducing數據列表 / 127
6.1.4 Mapper和Reducer如何工作 / 128
6.1.5 應用實例:詞頻統計 / 129
6.2 MapReduce框架結構 / 129
6.2.1 MapReduce模型 / 130
6.2.2 MapReduce框架組成 / 130
6.3 MapReduce運行原理 / 132
6.3.1 作業的提交 / 132
6.3.2 作業初始化 / 134
6.3.3 任務的分配 / 136
6.3.4 任務的執行 / 136
6.3.5 進度和狀態的更新 / 136
6.3.6 MapReduce的進度組成 / 137
6.3.7 任務完成 / 137
6.4 MapReduce容錯 / 137
6.4.1 任務失敗 / 138
6.4.2 TaskTracker失敗 / 138
6.4.3 JobTracker失敗 / 138
6.4.4 子任務失敗 / 138
6.4.5 任務失敗反復次數的處理方法 / 139
6.5 Shuffle階段和Sort階段 / 139
6.5.1 Map端的Shuffle / 140
6.5.2 Reduce端的Shuffle / 142
6.5.3 Shuffle過程參數調優 / 143
6.6 任務的執行 / 144
6.6.1 推測執行 / 144
6.6.2 任務JVM重用 / 145
6.6.3 跳過壞的記錄 / 145
6.6.4 任務執行的環境 / 146
6.7 作業調度器 / 146
6.7.1 先進先出調度器 / 146
6.7.2 容量調度器 / 146
6.7.3 公平調度器 / 149
6.8 自定義Hadoop調度器 / 153
6.8.1 Hadoop調度器框架 / 153
6.8.2 編寫Hadoop調度器 / 155
6.9 YARN介紹 / 157
6.9.1 異步編程模型 / 157
6.9.2 YARN支持的計算框架 / 158
6.9.3 YARN架構 / 158
6.9.4 YARN工作流程 / 159
6.10 本章小結 / 160
第7章 Eclipse插件的應用 / 161
7.1 編譯Hadoop源碼 / 161
7.1.1 下載Hadoop源碼 / 161
7.1.2 準備編譯環境 / 161
7.1.3 編譯common組件 / 162
7.2 Eclipse安裝MapReduce插件 / 166
7.2.1 查找MapReduce插件 / 166
7.2.2 新建一個Hadoop location / 167
7.2.3 Hadoop插件操作HDFS / 168
7.2.4 運行MapReduce的驅動類 / 170
7.3 MapReduce的Debug調試 / 171
7.3.1 進入Debug運行模式 / 171
7.3.2 Debug調試具體操作 / 172
7.4 單元測試框架MRUnit / 174
7.4.1 認識MRUnit框架 / 174
7.4.2 準備測試案例 / 174
7.4.3 Mapper單元測試 / 176
7.4.4 Reducer單元測試 / 177
7.4.5 MapReduce單元測試 / 178
7.5 本章小結 / 179
第8章 MapReduce編程開發 / 180
8.1 WordCount案例分析 / 180
8.1.1 MapReduce工作流程 / 180
8.1.2 WordCount的Map過程 / 181
8.1.3 WordCount的Reduce過程 / 182
8.1.4 每個過程產生的結果 / 182
8.1.5 Mapper抽象類 / 184
8.1.6 Reducer抽象類 / 186
8.1.7 MapReduce驅動 / 188
8.1.8 MapReduce最小驅動 / 189
8.2 輸入格式 / 193
8.2.1 InputFormat接口 / 193
8.2.2 InputSplit類 / 195
8.2.3 RecordReader類 / 197
8.2.4 應用實例:隨機生成100個小數并求最大值 / 198
8.3 輸出格式 / 205
8.3.1 OutputFormat接口 / 205
8.3.2 RecordWriter類 / 206
8.3.3 應用實例:把首字母相同的單詞放到一個文件里 / 206
8.4 壓縮格式 / 211
8.4.1 如何在MapReduce中使用壓縮 / 211
8.4.2 Map作業輸出結果的壓縮 / 212
8.5 MapReduce優化 / 212
8.5.1 Combiner類 / 212
8.5.2 Partitioner類 / 213
8.5.3 分布式緩存 / 217
8.6 輔助類 / 218
8.6.1 讀取Hadoop配置文件 / 218
8.6.2 設置Hadoop的配置文件屬性 / 219
8.6.3 GenericOptionsParser選項 / 220
8.7 Streaming接口 / 221
8.7.1 Streaming工作原理 / 221
8.7.2 Streaming編程接口參數 / 221
8.7.3 作業配置屬性 / 222
8.7.4 應用實例:抓取網頁的標題 / 223
8.8 本章小結 / 225
第9章 MapReduce 高級應用 / 226
9.1 計數器 / 226
9.1.1 默認計數器 / 226
9.1.2 自定義計數器 / 229
9.1.3 獲取計數器 / 231
9.2 MapReduce二次排序 / 232
9.2.1 二次排序原理 / 232
9.2.2 二次排序的算法流程 / 233
9.2.3 代碼實現 / 235
9.3 MapReduce中的Join算法 / 240
9.3.1 Reduce端Join / 240
9.3.2 Map端Join / 242
9.3.3 半連接Semi Join / 244
9.4 MapReduce從MySQL讀寫數據 / 244
9.4.1 讀數據 / 245
9.4.2 寫數據 / 248
9.5 Hadoop系統調優 / 248
9.5.1 小文件優化 / 249
9.5.2 Map和Reduce個數設置 / 249
9.6 本章小結 / 250
第10章 數據倉庫工具Hive / 251
10.1 認識Hive / 251
10.1.1 Hive工作原理 / 251
10.1.2 Hive數據類型 / 252
10.1.3 Hive的特點 / 253
10.1.4 Hive下載與安裝 / 255
10.2 Hive架構 / 256
10.2.1 Hive用戶接口 / 257
10.2.2 Hive元數據庫 / 259
10.2.3 Hive的數據存儲 / 262
10.2.4 Hive解釋器 / 263
10.3 Hive 文件格式 / 264
10.3.1 TextFile格式 / 265
10.3.2 SequenceFile 格式 / 265
10.3.3 RCFile文件格式 / 265
10.3.4 自定義文件格式 / 269
10.4 Hive操作 / 270
10.4.1 表操作 / 270
10.4.2 視圖操作 / 278
10.4.3 索引操作 / 280
10.4.4 分區操作 / 283
10.4.5 桶操作 / 289
10.5 Hive復合類型 / 290
10.5.1 Struct類型 / 291
10.5.2 Array類型 / 292
10.5.3 Map類型 / 293
10.6 Hive的JOIN詳解 / 294
10.6.1 JOIN操作語法 / 294
10.6.2 JOIN原理 / 294
10.6.3 外部JOIN / 295
10.6.4 Map端JOIN / 296
10.6.5 JOIN中處理NULL值的語義區別 / 296
10.7 Hive 優化策略 / 297
10.7.1 列裁剪 / 297
10.7.2 Map Join操作 / 297
10.7.3 Group By操作 / 298
10.7.4 合并小文件 / 298
10.8 Hive內置操作符與函數 / 298
10.8.1 字符串函數 / 299
10.8.2 集合統計函數 / 299
10.8.3 復合類型操作 / 301
10.9 Hive用戶自定義函數接口 / 302
10.9.1 用戶自定義函數UDF / 302
10.9.2 用戶自定義聚合函數UDAF / 304
10.10 Hive的權限控制 / 306
10.10.1 角色的創建和刪除 / 307
10.10.2 角色的授權和撤銷 / 307
10.10.3 超級管理員權限 / 309
10.11 應用實例:使用 JDBC開發Hive 程序 / 311
10.11.1 準備測試數據 / 311
10.11.2 代碼實現 / 311
10.12 本章小結 / 313
第11章 開源數據庫HBase / 314
11.1 認識HBase / 314
11.1.1 HBase的特點 / 314
11.1.2 HBase訪問接口 / 314
11.1.3 HBase存儲結構 / 315
11.1.4 HBase存儲格式 / 317
11.2 HBase設計 / 319
11.2.1 邏輯視圖 / 320
11.2.2 框架結構及流程 / 321
11.2.3 Table和Region的關系 / 323
11.2.4 -ROOT-表和.META.表 / 323
11.3 關鍵算法和流程 / 324
11.3.1 Region定位 / 324
11.3.2 讀寫過程 / 325
11.3.3 Region分配 / 327
11.3.4 Region Server上線和下線 / 327
11.3.5 Master上線和下線 / 327
11.4 HBase安裝 / 328
11.4.1 HBase單機安裝 / 328
11.4.2 HBase分布式安裝 / 330
11.5 HBase的Shell操作 / 334
11.5.1 一般操作 / 334
11.5.2 DDL操作 / 335
11.5.3 DML操作 / 337
11.5.4 HBase Shell腳本 / 339
11.6 HBase客戶端 / 340
11.6.1 Java API交互 / 340
11.6.2 MapReduce操作HBase / 344
11.6.3 向HBase中寫入數據 / 348
11.6.4 讀取HBase中的數據 / 350
11.6.5 Avro、REST和Thrift接口 / 352
11.7 本章小結 / 353
第12章 Mahout算法 / 354
12.1 Mahout的使用 / 354
12.1.1 安裝Mahout / 354
12.1.2 運行一個Mahout案例 / 354
12.2 Mahout數據表示 / 356
12.2.1 偏好Perference類 / 356
12.2.2 數據模型DataModel類 / 357
12.2.3 Mahout 鏈接MySQL數據庫 / 358
12.3 認識Taste框架 / 360
12.4 Mahout推薦器 / 361
12.4.1 基于用戶的推薦器 / 361
12.4.2 基于項目的推薦器 / 362
12.4.3 Slope One 推薦策略 / 363
12.5 推薦系統 / 365
12.5.1 個性化推薦 / 365
12.5.2 商品推薦系統案例 / 366
12.6 本章小結 / 370
附錄A Hive內置操作符與函數 / 371
附錄B HBase 默認配置解釋 / 392
附錄C Hadoop三個配置文件的參數含義說明 / 398
|
序: |
|