深度剖析Hadoop HDFS
2020-03-18 09:40:37 1 举报
AI智能生成
深度剖析Hadoop HDFS
作者其他创作
大纲/内容
第三部分 解决方案篇
7 HDFS的数据管理
7.1 HDFS的读写限流方案
7.1.1 限流方案实现要点以及可能造成的影响
7.1.2 限流方案实现
7.1.3 限流测试结果
7.2 HDFS数据资源使用量分析以及趋势预测
7.2.1 要获取哪些数据
7.2.2 如何获取这些数据
7.2.3 怎么用这些数据
7.3 HDFS数据迁移解决方案
7.3.1 数据迁移使用场景
7.3.2 数据迁移要素考量
7.3.3 HDFS数据迁移解决方案:DistCp
7.3.4 DistCp优势特性
7.3.5 Hadoop DistCp命令
7.3.6 DistCp解决集群间数据迁移实例
7.4 DataNode迁移方案
7.4.1 迁移方案的目标
7.4.2 DataNode更换主机名、ip地址时的迁移方案
7.5 HDFS集群重命名方案
7.6 HDFS的配置管理方案
7.6.1 HDFS配置管理的问题
7.6.2 现有配置管理工具
7.6.3 运用Git来做配置管理
7.7 小结
8 HDFS的数据读写
8.1 DataNode引用计数磁盘选择策略
8.1.1 HDFS现有磁盘选择策略
8.1.2 自定义磁盘选择策略
8.2 Hadoop节点“慢磁盘”监控
8.2.1 慢磁盘的定义以及如何发现
8.2.2 慢磁盘监控
8.3 小结
9 HDFS的异常场景
9.1 DataNode慢启动问题
9.1.1 DataNode慢启动现象
9.1.2 代码追踪分析
9.1.3 参数可配置化改造
9.2 Hadoop中止下线操作后大量剩余复制块问题
9.2.1 节点下线操作的含义及问题
9.2.2 死节点“复活”
9.2.3 Decommission下线操作如何运作
9.2.4 中止下线操作后移除残余副本块解决方案
9.3 DFSOutputStream的DataStreamer线程泄漏问题
9.3.1 DFSOutputStream写数据过程及周边相关类、变量
9.3.2 DataStreamer数据流对象
9.3.3 ResponseProcessor回复获取类
9.3.4 DataStreamer与DFSOutputStream的关系
9.3.5 Streamer线程泄漏问题
9.4 小结
附录 如何向开源社区提交自己的代码
打补丁的前提
补丁注意事项
如何让Committer采纳你的补丁
总结
第一部分 核心设计篇
1 HDFS的数据存储
1.1 HDFS内存存储
1.1.1 HDFS内存存储原理
1.1.2 Linux虚拟内存盘
1.1.3 HDFS的内存存储流程分析
1.1.4 LAZY_PERSIST内存存储的使用
1.2 HDFS异构存储
1.2.1 异构存储类型
1.2.2 异构存储原理
1.2.3 块存储类型选择策略
1.2.4 块存储策略集合
1.2.5 块存储策略的调用
1.2.6 HDFS异构存储策略的不足之处
1.2.7 HDFS存储策略的使用
1.3 小结
2 HDFS的数据管理与策略选择
2.1 HDFS缓存与缓存块
2.1.1 HDFS物理层面缓存块
2.1.2 缓存块的生命周期状态
2.1.3 CacheBlock、UnCacheBlock场景触发
2.1.4 CacheBlock、UnCacheBlock缓存块的确定
2.1.5 系统持有的缓存块列表如何更新
2.1.6 缓存块的使用
2.1.7 HDFS缓存相关配置
2.2 HDFS中心缓存管理
2.2.1 HDFS缓存适用场景
2.2.2 HDFS缓存的结构设计
2.2.3 HDFS缓存管理机制分析
2.2.4 HDFS中心缓存疑问点
2.2.5 HDFS CacheAdmin命令使用
2.3 HDFS快照管理
2.3.1 快照概念
2.3.2 HDFS中的快照相关命令
2.3.3 HDFS内部的快照管理机制
2.3.4 HDFS的快照使用
2.4 HDFS副本放置策略
2.4.1 副本放置策略概念与方法
2.4.2 副本放置策略的有效前提
2.4.3 默认副本放置策略的分析
2.4.4 目标存储好坏的判断
2.4.5 chooseTargets的调用
2.4.6 BlockPlacementPolicyWithNodeGroup继承类
2.4.7 副本放置策略的结果验证
2.5 HDFS内部的认证机制
2.5.1 BlockToken认证
2.5.2 HDFS的Sasl认证
2.5.3 BlockToken认证与HDFS的Sasl认证对比
2.6 HDFS内部的磁盘目录服务
2.6.1 HDFS的三大磁盘目录检测扫描服务
2.6.2 DiskChecker:坏盘检测服务
2.6.3 DirectoryScanner:目录扫描服务
2.6.4 VolumeScanner:磁盘目录扫描服务
2.7 小结
3 HDFS的新颖功能特性
3.1 HDFS视图文件系统:ViewFileSystem
3.1.1 ViewFileSystem:视图文件系统
3.1.2 ViewFileSystem内部实现原理
3.1.3 ViewFileSystem的使用
3.2 HDFS的Web文件系统:WebHdfsFileSystem
3.2.1 WebHdfsFileSystem的REST API操作
3.2.2 WebHdfsFileSystem的流程调用
3.2.3 WebHdfsFileSystem执行器调用
3.2.4 WebHDFS的OAuth2认证
3.2.5 WebHDFS的使用
3.3 HDFS数据加密空间:Encryption zone
3.3.1 Encryption zone原理介绍
3.3.2 Encryption zone源码实现
3.3.3 Encryption zone的使用
3.4 HDFS纠删码技术
3.4.1 纠删码概念
3.4.2 纠删码技术的优劣势
3.4.3 Hadoop纠删码概述
3.4.4 纠删码技术在Hadoop中的实现
3.5 HDFS对象存储:Ozone
3.5.1 Ozone介绍
3.5.2 Ozone的高层级设计
3.5.3 Ozone的实现细节
3.5.4 Ozone的使用
3.6 小结
二部分 细实现篇
4 HDFS的块处理
4.1 HDFS块检查命令fsck
4.1.1 fsck参数使用
4.1.2 fsck过程调用
4.1.3 fsck原理分析
4.1.4 fsck使用场景
4.2 HDFS如何检测并删除多余副本块
4.2.1 多余副本块以及发生的场景
4.2.2 OverReplication多余副本块处理
4.2.3 多余副本块清除的场景调用
4.3 HDFS数据块的汇报与处理
4.3.1 块处理的五大类型
4.3.2 toAdd:新添加的块
4.3.3 toRemove:待移除的块
4.3.4 toInvalidate:无效的块
4.3.5 toCorrupt:损坏的块
4.3.6 toUC:正在构建中的块
4.4 小结
5 HDFS的流量处理
5.1 HDFS的内部限流
5.1.1 数据的限流
5.1.2 DataTransferThrottler限流原理
5.1.3 数据流限流在Hadoop中的使用
5.1.4 Hadoop限流优化点
5.2 数据平衡
5.2.1 Balancer和Dispatcher
5.2.2 数据不平衡现象
5.2.3 Balancer性能优化
5.3 HDFS节点内数据平衡
5.3.1 磁盘间数据不平衡现象及问题
5.3.2 传统的磁盘间数据不平衡解决方案
5.3.3 社区解决方案:DiskBalancer
5.4 小结
6 HDFS的部分结构分析
6.1 HDFS镜像文件的解析与反解析
6.1.1 HDFS的FsImage镜像文件
6.1.2 FsImage的解析
6.1.3 FsImage的反解析
6.1.4 HDFS镜像文件的解析与反解析命令
6.2 DataNode数据处理中心DataXceiver
6.2.1 DataXceiver的定义和结构
6.2.2 DataXceiver下游处理方法
6.2.3 ShortCircuit
6.2.4 DataXceiver的上游调用
6.2.5 DataXceiver与DataXceiverServer
6.3 HDFS邻近信息块:BlockInfoContiguous
6.3.1 triplets对象数组
6.3.2 BlockInfoContiguous的链表操作
6.3.3 块迭代器BlockIterator
6.4 小结
0 条评论
下一页