第1 篇 基礎篇
第1 章 大數據的三把利劍........................ 2
1.1 豌豆雜交實驗.................................. 2
1.2 曹衝稱象啓示.................................. 2
1.3 榖歌的三把利劍............................... 4
1.4 智慧改變世界.................................. 4
第2 章 企業的大數據觀............................ 5
2.1 企業麵臨的挑戰............................... 5
2.1.1 數據能力是核心競爭力....... 5
2.1.2 從粗放經營到智慧經營....... 6
2.1.3 技術與商業的雙重挑戰....... 6
2.2 企業大數據從哪來........................... 7
2.2.1 來自於主體的産生............... 7
2.2.2 來自於客體的産生............... 8
2.2.3 來自於社會的産生............... 9
2.3 企業大數據如何存儲....................... 9
2.3.1 非結構化數據存儲............... 9
2.3.2 結構化數據存儲................. 10
2.3.3 半結構化數據存儲..............11
2.3.4 大數據存儲的問題............. 12
2.4 企業大數據如何加工..................... 13
2.4.1 分析或挖掘模型設計......... 14
2.4.2 並行處理程序編碼............. 15
2.4.3 結果在全局中呈現............. 17
2.5 企業的大數據到哪裏去................. 17
2.5.1 大數據對企業影響深遠............................. 17
2.5.2 大數據是一種新商品......... 18
2.5.3 精準營銷需要大數據......... 18
2.6 企業大數據觀總結........................ 19
第3 章 大數據和大數據係統.................. 20
3.1 大數據............................................ 20
3.1.1 大數據概念......................... 20
3.1.2 大數據的特徵..................... 21
3.1.3 數據計量單位..................... 21
3.1.4 大數據來源......................... 22
3.1.5 大數據類型......................... 22
3.2 大數據係統.................................... 22
3.2.1 設計目標和原則................. 23
3.2.2 係統的設計思想................. 23
3.2.3 係統的邏輯架構................. 25
3.2.4 與現有係統的關係............. 26
3.2.5 當前的大數據係統............. 28
第2 篇 技術篇
第4 章 分布、鍵值對與族...................... 36
4.1 分布與MapReduce ........................ 36
4.2 鍵值對的奧妙所在......................... 38
4.3 動態數據庫錶原理......................... 39
第5 章 HDFS(分布式文件係統)........ 40
5.1 設計目標........................................ 40
5.2 基本概念........................................ 40
5.2.1 塊......................................... 41
5.2.2 名稱節點與數據節點......... 41
5.3 係統架構........................................ 42
5.3.1 邏輯架構............................. 42
5.3.2 物理架構............................. 43
5.4 運行機製........................................ 43
5.4.1 文件讀取............................. 43
5.4.2 文件寫入............................. 44
5.4.3 特彆關注............................. 46
5.5 係統功能........................................ 49
5.5.1 多文件係統......................... 49
5.5.2 目錄管理............................. 50
5.5.3 文件管理............................. 50
5.5.4 文件歸檔............................. 51
5.5.5 並行復製............................. 52
5.6 係統I/O 特性................................. 52
5.6.1 完整性校驗......................... 52
5.6.2 壓縮與編碼解碼................. 54
5.6.3 序列化................................. 55
5.6.4 特殊文件結構..................... 56
5.7 非Java 訪問接口........................... 57
5.8 係統性能........................................ 58
5.8.1 可靠性措施......................... 58
5.8.2 性能優化............................. 59
第6 章 MapReduce 分布式編程模式.... 60
6.1 不同於傳統.................................... 60
6.2 設計思想........................................ 61
6.3 基本概念........................................ 61
6.3.1 map()函數........................... 62
6.3.2 reduce()函數........................ 62
6.3.3 鍵值對................................. 63
6.3.4 中間結果............................. 63
6.3.5 移動代碼............................. 64
6.3.6 作業和任務節點................. 65
6.4 係統架構........................................ 65
6.4.1 邏輯架構............................. 65
6.4.2 物理架構............................. 66
6.5 運行機製........................................ 67
6.5.1 作業運行............................. 67
6.5.2 作業調度............................. 69
6.5.3 任務執行............................. 70
6.5.4 狀態更新............................. 70
6.5.5 作業完成............................. 71
6.5.6 故障處理............................. 71
6.6 關鍵技術........................................ 72
6.6.1 計數器................................. 72
6.6.2 排序..................................... 73
6.6.3 連接..................................... 73
6.6.4 shuffle.................................. 74
6.6.5 內存處理............................. 75
6.6.6 分布式緩存......................... 76
6.7 類型與格式.................................... 77
6.7.1 MR 的類型.......................... 77
6.7.2 輸入格式............................. 78
6.7.3 輸齣格式............................. 80
6.8 MR 的開發..................................... 81
6.8.1 開發端環境的建立............. 82
6.8.2 開發及單元測試................. 84
6.8.3 本地運行測試..................... 87
6.8.4 集群運行............................. 89
6.8.5 作業調試............................. 92
6.8.6 遠程調試............................. 93
6.8.7 作業調優............................. 94
6.9 MR 工作流..................................... 95
第7 章 HBase 分布式數據庫................. 96
7.1 設計目標........................................ 96
7.2 基本概念........................................ 97
7.2.1 邏輯模型............................. 97
7.2.2 物理模型............................. 98
7.2.3 區域..................................... 99
7.2.4 基本單元............................. 99
7.2.5 Region 服務器...................100
7.2.6 Master 主服務器................101
7.2.7 .META.元數據錶...............101
7.2.8 -ROOT-元數據錶...............102
7.3 係統架構.......................................103
7.3.1 邏輯架構............................104
7.3.2 物理架構............................105
7.4 運行機製.......................................105
7.5 係統功能.......................................107
7.5.1 用戶界麵............................107
7.5.2 shell 操作...........................109
7.6 庫錶設計.......................................112
7.7 訪問接口.......................................112
第3 篇 設計篇
第8 章 係統設計背景和目標.................116
8.1 係統設計背景...............................116
8.2 係統設計目標...............................117
8.2.1 存在問題............................117
8.2.2 設計目標............................118
第9 章 係統架構設計............................ 121
9.1 邏輯架構設計.............................. 121
9.1.1 係統邏輯架構................... 121
9.1.2 係統運行邏輯................... 122
9.2 功能架構設計.............................. 123
9.2.1 大數據管理係統的功能............................... 124
9.2.2 ZooKeeper 係統的功能............................... 126
9.2.3 Chukwa 采集係統的功能............................... 127
9.2.4 Pig 係統功能..................... 127
9.2.5 Hive 係統功能.................. 128
9.3 數據架構設計.............................. 128
9.3.1 數據總體架構................... 129
9.3.2 分布式文件數據結構....... 130
9.3.3 分布式數據庫數據結構............................130
9.3.4 關係型數據庫數據構成............................131
第10 章 運行架構設計...........................132
10.1 物理架構設計.............................133
10.1.1 網絡拓撲..........................133
10.1.2 軟/硬件選型.....................133
10.2 集成架構設計.............................135
10.2.1 總體集成設計..................135
10.2.2 專項集成設計..................137
10.3 安全架構設計.............................140
10.3.1 用戶層安全......................140
10.3.2 應用層安全......................141
10.3.3 數據層安全......................141
10.4 開發架構設計.............................142
第4 篇 安裝篇
第11 章 安裝規劃............................... 144
11.1 安裝目標..................................... 144
11.2 安裝步驟..................................... 145
第12 章 環境準備............................... 147
12.1 主機準備.................................... 147
12.2 介質準備.................................... 147
12.3 基礎安裝.................................... 148
12.3.1 JDK 安裝......................... 148
12.3.2 用戶創建......................... 148
12.3.3 SSH 配置......................... 149
第13 章 集群安裝............................... 150
13.1 HDFS 集群................................. 150
13.1.1 解析配置......................... 150
13.1.2 模闆創建......................... 151
13.1.3 復製分發......................... 153
13.1.4 運行啓動......................... 153
13.1.5 測試驗證......................... 154
13.2 HBase 集群................................. 156
13.2.1 解析配置......................... 156
13.2.2 模闆創建......................... 157
13.2.3 復製分發......................... 158
13.2.4 運行啓動......................... 158
13.2.5 測試驗證..........................158
13.3 ZooKeeper 集群..........................159
13.3.1 解析配置..........................159
13.3.2 模闆創建..........................160
13.3.3 復製分發..........................160
13.3.4 運行啓動..........................161
13.3.5 測試驗證..........................161
第14 章 分布式應用安裝....................163
14.1 Pig 安裝.......................................163
14.1.1 本地安裝..........................163
14.1.2 本地驗證..........................164
14.1.3 集成配置..........................164
14.1.4 集成驗證..........................165
14.2 Hive 安裝.....................................165
14.2.1 內嵌安裝與驗證..............166
14.2.2 從內嵌改為獨立..............166
14.2.3 從獨立改為遠程..............169
14.3 Chukwa 安裝...............................171
14.3.1 基礎係統安裝..................171
14.3.2 代理係統安裝..................172
14.3.3 收集係統的安裝..............174
14.3.4 作業係統的安裝..............175
14.3.5 HICC 係統的安裝...........176
第15 章 集成聯調............................... 177
15.1 集群間的集成聯調..................... 177
15.1.1 HBase 與HDFS集成聯調.......................... 177
15.1.2 HBase 與ZooKeeper集成聯調.......................... 178
15.2 分布式應用與集群間的集成聯調.................................... 179
15.2.1 Pig 與HDFS 的集成....... 179
15.2.2 Hive 與HDFS 的集成.... 180
15.2.3 Hive 與Hbase的集成...............................181
15.2.4 Chukwa 與HDFS的集成...............................183
15.3 客戶端與分布式係統間的集成聯調.....................................184
15.3.1 與分布式集群係統的集成...............................184
15.3.2 與分布式應用係統的集成................................185
第5 篇 開發篇
第16 章 大數據係統應用開發思路和環境............. 188
16.1 總體思路.................................... 188
16.1.1 大數據讀寫應用的開發............................. 188
16.1.2 大數據分析應用的開發............................. 188
16.2 開發環境.................................... 189
16.2.1 Plugin 插件的安裝.......... 189
16.2.2 Hadoop 開發環境的配置............................. 190
16.2.3 示例程序驗證................. 191
第17 章 HDFS 文件讀/寫應用開發..... 196
17.1 文件列錶.................................... 196
17.2 文件讀取.................................... 197
17.3 文件上傳.................................... 198
17.4 文件創建.................................... 199
17.5 文件寫入.................................... 200
17.6 文件壓縮與解壓......................... 201
17.6.1 壓縮寫入......................... 201
17.6.2 解壓後讀取..................... 203
17.7 目錄創建.................................... 205
17.8 文件重命名................................ 206
17.9 刪除文件.................................... 207
17.10 查看文件時間........................... 208
17.11 查看文件是否存在................... 209
17.12 查找文件位置........................... 210
17.13 查找集群所有的節點................211
17.14 SequenceFile 文件格式轉換........................ 212
17.14.1 創建SequenceFile 格式的文件............................213
17.14.2 讀取SequenceFile 格式的文件............................215
17.15 MapFile 文件格式轉換.............217
17.15.1 創建MapFile 格式的文件............................217
17.15.2 讀取MapFile 格式的文件............................218
17.15.3 SequenceFile 格式轉換成MapFile 格式.............220
第18 章 HBase 數據庫讀/寫應用開發...................................222
18.1 創建錶.........................................222
18.2 刪除錶.........................................224
18.3 查詢數據庫中的錶.....................225
18.4 插入記錄.....................................226
18.5 查詢記錄.....................................228
18.5.1 列族的查詢......................228
18.5.2 查詢所有記錄..................229
18.5.3 基於行鍵查詢..................231
18.5.4 基於標簽值查詢..............232
18.5.5 組閤條件查詢..................234
18.6 修改記錄.....................................236
18.7 刪除記錄.....................................237
第19 章 ZooKeeper 開發..................... 238
19.1 創建節點.................................... 238
19.2 刪除節點.................................... 240
19.3 加入子節點................................ 242
19.4 列齣節點成員............................. 242
19.5 獲取節點內容............................. 244
第20 章 MapReduce 開發................... 247
20.1 定製數據類型............................. 247
20.2 定製輸入格式............................. 250
20.3 定製輸齣格式............................. 254
20.4 將整個文件作為輸入................. 259
20.5 小文件聚閤成一個文件............. 264
20.6 多集閤文件輸齣......................... 266
20.7 對壓縮數據處理......................... 268
20.8 定製partioner ............................. 271
20.9 定製combiner ............................ 274
20.10 MapReduce 組閤...................... 278
20.10.1 迭代組閤....................... 278
20.10.2 綫性組閤....................... 283
20.10.3 依賴組閤....................... 284
20.10.4 前後鏈式組閤............... 288
20.11 多數據源連接........................... 292
20.11.1 Reduce 端連接.............. 292
20.11.2 Map 端連接................... 297
20.11.3 Map 端過濾的Reduce端連接........................... 300
20.12 全局參數應用...........................305
20.13 全局文件應用...........................309
20.14 關係數據庫訪問.......................311
20.14.1 關係數據庫讀取............312
20.14.2 關係數據庫的寫入........315
第21 章 Pig 開發....................................319
21.1 腳本編程.....................................319
21.1.1 腳本語言..........................319
21.1.2 腳本編程..........................322
21.1.3 腳本運行..........................323
21.2 自定義函數.................................327
21.2.1 編譯打包..........................327
21.2.2 測試運行..........................328
第22 章 Hive 開發..................................329
22.1 HiveQL 語言...............................329
22.1.1 HiveQL 的數據類型........329
22.1.2 HiveQL 的常用操作........330
22.2 UDF 編碼....................................339
22.3 UDAF 編碼.................................341
22.4 客戶端編碼.................................343
22.4.1 與Hive 服務器端連接建立..................................343
22.4.2 與Hive 進行指令交互....344
22.4.3 客戶端命令組織..............345
22.4.4 程序運行結果..................346
第6 篇 實踐篇
第23 章 企業大數據盤係統.................. 348
23.1 係統開發背景............................. 348
23.2 係統架構設計............................. 348
23.3 係統功能設計............................. 349
23.4 係統代碼實現............................. 350
第24 章 Hadoop 的日誌分析............... 352
24.1 係統開發背景............................. 352
24.2 係統架構設計............................. 352
24.3 係統功能設計.............................353
24.4 係統代碼實現.............................353
24.4.1 係統連接代碼..................353
24.4.2 Hive 模塊代碼.................355
24.4.3 係統組織代碼..................356
24.5 係統實現效果.............................357
參考文獻.....................................................358
· · · · · · (
收起)