目 录
第 1章 Hadoop 1
1.1 简介 1
1.1.1 Hadoop 1.0 1
1.1.2 Hadoop 2.0 3
1.2 Hadoop 3.0 4
1.3 阅读Hadoop源码 6
1.3.1 单元测试 8
1.3.2 断点调试代码 11
1.4 小结 13
第 2章 HDFS 14
2.1 HDFS简介 14
2.2 解析NameNode中的元数据及其内存结构 15
2.2.1 解析NameNode中的元数据 16
2.2.2 解析NameNode的内存结构 19
2.3 解析NameNode的HA功能 23
2.3.1 基于QJM的HA 23
2.3.2 故障转移 26
2.3.3 多NameNode模式 28
2.4 HDFS的Federation 29
2.4.1 基于viewfs的Federation 30
2.4.2 基于Router的Federation 31
2.5 纠删码 32
2.5.1 纠删码的原理 33
2.5.2 HDFS EC 35
2.5.3 HDFS EC的实现 38
2.5.4 对比HDFS EC策略与三副本策略 49
2.6 下一代对象存储系统Ozone 50
2.6.1 Ozone初体验 50
2.6.2 Ozone架构 53
2.7 小结 55
第3章 YARN 56
3.1 YARN简介 56
3.2 解析ResourceManager的HA功能 60
3.2.1 故障转移 61
3.2.2 数据恢复 63
3.3 YARN Federation 65
3.3.1 架构 65
3.3.2 Router 66
3.3.3 State Store和Policy Store 69
3.3.4 AMRMProxy 69
3.3.5 跨子集群运行 74
3.4 中央调度器 75
3.4.1 Capacity调度器 76
3.4.2 Fair调度器 78
3.4.3 调度扩展 90
3.5 分布式调度器 96
3.5.1 分布式调度器的架构 97
3.5.2 opportunistic container 98
3.6 YARN Shared Cache 99
3.6.1 资源本地化 100
3.6.2 Shared Cache的架构 101
3.6.3 Shared Cache实例 102
3.7 小结 104
第4章 Application on YARN 105
4.1 MapReduce的简介 105
4.2 MapReduce的源码分析 106
4.2.1 InputSplit 107
4.2.2 环形缓冲区 109
4.2.3 溢写和归并 112
4.2.4 Shuffle 113
4.3 MapReduce on YARN 119
4.3.1 YARN的事件机制和状态机机制 119
4.3.2 MR ApplicationMaster 123
4.4 Application on YARN 124
4.5 小结 129
第5章 实战指南 130
5.1 Hadoop 3.x的部署 130
5.1.1 Hadoop 3.x HA的部署 130
5.1.2 Hadoop 3.x Federation的部署 145
5.2 Hadoop升级 149
5.2.1 Hadoop 2.0升级为Hadoop 3.0 151
5.2.2 Hadoop 3.0降级为Hadoop 2.0 155
5.2.3 升级/降级中遇到的问题 155
5.3 二次开发 160
5.3.1 与其他自研系统融合 160
5.3.2 自身功能扩展之自动识别修复后的数据盘 163
5.3.3 合并社区Patch 166
5.3.4 提交Pull Request 167
5.4 周边系统平台 169
5.4.1 任务调度平台 169
5.4.2 监控平台 170
5.4.3 集群诊断分析平台 174
5.5 小结 176