1. HDFS

1.1 HDFS概述

1.1.1 HDFS体系架构
1.1.2 HDFS基本概念

1.2 HDFS通信协议

1.2.1 Hadoop RPC接口
1.2.2 流式接口

1.3 HDFS主要流程

1.3.1 HDFS客户端读流程
1.3.2 HDFS客户端写流程
1.3.3 HDFS客户端追加写流程
1.3.4 DataNode启动、心跳和执行名字节点指令流程
1.3.5 HA切换流程

2. Hadoop RPC(20180119-20180128)

2.1 RPC与HadoopRPC框架概述

2.2 HadoopRPC使用概述

2.3 定义RPC协议

2.3 客户端获取proxy对象&服务器获取server对象

2.4 RPC类实现

2.5 client类实现

2.6 server类实现

3. NameNode

3.1文件系统目录树

3.1.1 INode相关类
3.1.2 Feature相关类
3.1.3 FSEditlog类
3.1.4 FSImage类
3.1.5 FSDirecoty类

3.2 数据块管理

3.2.1 Block、Replica、BlocksMap
3.2.2 数据块副本状态
3.2.3 BlockManager类

3.3 数据节点管理

3.3.1 DatanodeDescriptor
3.3.2 DatanodeStorageInfo
3.3.3 DatanodeManager

3.4 租约管理

3.4.1 LeaseManager.Lease
3.4.2 LeaseManager

3.5 缓存管理

3.5.1 缓存管理概念和命令
3.5.2 HDFS集中式缓存架构
3.5.3 CacheManager类实现
3.5.4 CacheReplicationMonitor

3.6 ClientProtocol实现

3.6.1 创建文件
3.6.2 追加写文件
3.6.3 创建新的数据块
3.6.4 放弃数据块
3.6.5 关闭文件

3.7 NameNode启动和停止

3.7.1 安全模式
3.7.2 HDFS HA
3.7.3 名字节点的启动和停止

4 DataNode

4.1 DataNode逻辑结构

4.2 DataNode存储

4.2.1 DataNode磁盘存储结构
4.2.2 DataStorage实现

4.3 文件系统数据集

4.3.1 DataNode上数据块副本的状态
4.3.2 BlockPoolSlice实现
4.3.3 FsVolumeImpl实现
4.3.4 FsVolumeList实现
4.3.5 FsDatasetImpl实现

4.4 BlockPoolManager

4.4.1 BPServiceActor实现
4.4.2 BPOfferService实现
4.4.5 BlockPoolManager实现

4.5 流式接口

4.5.1 DataTransferProtocol定义
4.5.2 Sender和Receiver
4.5.3 DataXceiverServer
4.5.4 DataXceiver
4.5.5 读数据
4.5.6 写数据
4.5.7 数据块替换、数据块拷贝和读数据块校验
4.5.8 短路读操作
4.6 数据块扫描器
4.6.1 DataBlockScanner实现
4.6.2 BlockPoolSliceScanner实现

4.7 DirectoryScanner

4.8 DataNode类实现

4.8.1 DataNode的启动
4.8.2 DataNode的关闭

5. HDFS客户端

5.1 DFSClient实现

5.1.1 构造方法
5.1.2 关闭方法
5.1.3 文件系统管理与配置方法
5.1.4 HDFS文件与目录操作方法
5.1.5 HDFS文件读写方法

5.2 文件读操作与写操作

5.2.1 打开文件
5.2.2 DFSInputStream实现

5.3 文件短路读操作

5.3.1 短路读共享内存
5.3.2 DataTransferProtocol
5.3.3 DFSClient短路读操作流程
5.3.4 Datanode短路读操作流程

5.4 文件写操作和输出流

5.4.1 创建文件
5.4.2 DFSOutputStream实现
5.4.3 追加写操作
5.4.4 租约相关
5.4.5 关闭输出流

5.5 FsShell 和 DFSAdmin