第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.2Block 16
2.2.3Blocklnfo和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 nn 1配置 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