目錄
第1章 HDFS HA及解決方案 1
1.1 HDFS係統架構 2
1.2 HA定義 3
1.3 HDFS HA原因分析及應對措施 4
1.3.1 可靠性 4
1.3.2 可維護性 5
1.4 現有HDFS HA解決方案 5
1.4.1 Hadoop的元數據備份方案 6
1.4.2 Hadoop的SecondaryNameNode方案 7
1.4.3 Hadoop的Checkpoint ode方案 7
1.4.4 Hadoop的BackupNode方案 8
1.4.5 DRDB方案 9
1.4.6 FaceBook的AvatarNode方案 10
1.5 方案優缺點比較 10
第2章 HDFS元數據解析 13
2.1 概述 14
2.2 內存元數據結構 14
2.2.1 INode 15
2.2.2 Block 16
2.2.3 BlockInfo和DatanodeDescriptor 17
2.2.4 小結 17
2.2.5 代碼分析——元數據結構 18
2.3 磁盤元數據文件 24
2.4 Format情景分析 27
2.5 元數據應用場景分析 45
第3章 Hadoop的元數據備份方案 47
3.1 運行機製分析 48
3.1.1 NameNode啓動加載元數據情景分析 50
3.1.2 元數據更新及日誌寫入情景分析 64
3.1.3 Checkpoint過程情景分析 73
3.1.4 元數據可靠性機製 109
3.1.5 元數據一緻性機製 110
3.2 使用說明 110
第4章 Hadoop的Backup Node方案 113
4.1 Backup Node概述 114
4.1.1 係統架構 115
4.1.2 使用原則 115
4.1.3 優缺點 116
4.2 運行機製分析 116
4.2.1 啓動流程 117
4.2.2 元數據操作情景分析 141
4.2.3 日誌池(journal spool)機製 151
4.2.4 故障切換機製 156
4.3 實驗方案說明 158
4.4 構建實驗環境 158
4.4.1 網絡拓撲 159
4.4.2 係統安裝及配置 160
4.4.3 安裝JDK 170
4.4.4 虛擬機集群架設 171
4.4.5 NameNode安裝及配置 173
4.4.6 Backup Node安裝及配置 173
4.4.7 Data Node安裝及配置 174
4.4.8 Clients安裝及配置 175
4.5 異常解決方案 175
4.5.1 異常情況分析 175
4.5.2 NameNode配置 175
4.5.3 Backup Node配置 182
4.5.4 Data Node配置 185
4.5.5 NameNode宕機切換實驗 189
4.5.6 NameNode宕機讀寫測試 196
第5章 AvatarNode運行機製 205
5.1 方案說明 206
5.1.1 係統架構 206
5.1.2 思路分析 208
5.1.3 性能數據 209
5.2 元數據分析 209
5.2.1 類FSNamesystem 210
5.2.2 類FSDirectory 210
5.2.3 AvatarNode的磁盤元數據文件 211
5.3 AvatarNode Primary啓動過程 211
5.4 AvatarNode Standby啓動過程 217
5.4.1 AvatarNode的構造方法 217
5.4.2 Standby綫程的run()方法 218
5.4.3 Ingest綫程的run()方法 220
5.4.4 Ingest綫程的ingestFSEdits ()方法 220
5.4.5 Standby綫程的doCheckpoint()方法 221
5.5 用戶操作情景分析 223
5.5.1 創建目錄情景分析 223
5.5.2 創建文件情景分析 231
5.6 AvatarNode Standby故障切換過程 240
5.7 元數據一緻性保證機製 242
5.7.1 元數據目錄樹信息 242
5.7.2 Data Node與Block數據塊映射信息 243
5.8 Block更新同步問題 246
5.8.1 問題描述 246
5.8.2 結論 246
5.8.3 源碼分析 246
第6章 AvatarNode使用 253
6.1 方案說明 254
6.1.1 網絡拓撲 254
6.1.2 操作係統安裝及配置 255
6.2 使用Avatar打補丁版本 255
6.2.1 Hadoop源碼聯機Build 256
6.2.2 Hadoop源碼本地Build 262
6.2.3 NFS服務器構建 264
6.2.4 Avatar分發與部署 267
6.2.5 Primary(namenode0)節點配置 269
6.2.7 Data Node節點配置 276
6.2.8 Client節點配置 278
6.2.9 創建目錄 279
6.2.10 掛載NFS 280
6.2.11 啓動Ucarp 280
6.2.12 格式化 281
6.2.13 係統啓動 281
6.2.14 檢查 282
6.2.15 NameNode失效切換寫文件實驗 283
6.2.16 NameNode失效切換讀文件實驗 291
6.3 Avatar FaceBook版本的使用 294
6.3.1 Hadoop FaceBook版本安裝 294
6.3.2 節點配置 295
6.3.3 啓動HDFS 300
6.3.4 NameNode失效切換 302
第7章 AvatarNode異常解決方案 305
7.1 測試環境 306
7.2 Primary失效 306
7.2.1 解決方案 306
7.2.2 寫操作實驗步驟 307
7.2.3 改進寫操作機製 313
7.2.4 讀操作實驗步驟 313
7.2.5 小結 317
7.3 Standby失效 317
7.4 NFS失效(數據未損壞) 317
7.4.1 解決方案 317
7.4.2 寫操作實驗步驟 318
7.4.3 讀操作實驗步驟 320
7.4.4 小結 322
7.5 NFS失效(數據已損壞) 323
7.5.1 解決方案 323
7.5.2 寫操作實驗步驟 324
7.5.3 讀操作實驗步驟 327
7.5.4 小結 330
7.6 Primary先失效,NFS後失效(數據未損壞) 331
7.6.1 解決方案 331
7.6.2 寫操作實驗步驟 331
7.6.3 讀操作實驗步驟 333
7.6.4 小結 334
7.7 Primary先失效(數據未損壞),NFS後失效(數據損壞) 335
7.7.1 解決方案 335
7.7.2 寫操作實驗步驟 335
7.7.3 讀操作實驗步驟 338
7.7.4 小結 339
7.8 NFS先失效(數據未損壞),Primary後失效 340
7.8.1 解決方案 340
7.8.2 寫操作實驗步驟 340
7.8.3 讀操作實驗步驟 342
7.8.4 小結 343
7.9 NFS先失效(數據損壞),Primary後失效(數據損壞) 344
7.9.1 解決方案 344
7.9.2 寫操作實驗步驟 344
7.9.3 讀操作實驗步驟 346
7.9.4 小結 348
7.10 實驗結論 348
第8章 Cloudera HA NameNode使用 349
8.1 HA NameNode說明 350
8.2 CDH4B1版本HDFS集群配置 351
8.2.1 虛擬機安裝 351
8.2.2 nn1配置 351
8.2.3 dn1~dn3配置 355
8.2.4 HDFS集群構建 358
8.3 HA NameNode配置 361
8.3.1 nn1配置 361
8.3.2 其他節點配置 365
8.4 HA NameNode使用 367
8.4.1 啓動HA HDFS集群 367
8.4.2 第1次failover 368
8.4.3 模擬寫操作 368
8.4.4 模擬Active Name Node失效,第2次failover 369
8.3.5 模擬新的Standby NameNode加入 370
8.5 小結 371
· · · · · · (
收起)