【大数据基础】Datanode

it2022-05-05  160

Datanode 的实现

1. 数据块存储

1.1 数据节点的磁盘目录文件结构

${dfs.data.dir} 数据目录

blocksBeingWritten 正在写的数据块,由客户端发起current 已经写入的数据块detach 配合升级的临时路径tmp 数据块复制引发的,保存正在写的数据块

${dfs.data.dir}/current

HDFS数据块meta 校验信息

1.2 数据节点存储的实现

DataStorage 专注于节点存储空间的生存期管理FSDataset 创建数据块文件,维护数据块文件和数据块校验信息文件的关系。

1.3 数据节点升级

2. 流式接口的实现

TCP服务器

读数据

参数

blockIdgenerationStampstartOffsetlengthclientNameaccessToken

零拷贝

[外链图片转存失败(img-2ffBe0ka-1563433728871)(C:\Users\pphe\AppData\Roaming\Typora\typora-user-images\1563271268890.png)]

写数据

参数 blockIdgenerationStamppipelineSizeisRecoveryclientNamehasSrcDataNodesrcDataNodenumTargetstargetsaccessTokenchecksum

3. 作为整体的datanode

datanode 和 namenode 的交互

握手、注册、数据块上报和心跳namenode指定的执行

数据块扫描器

每个数据节点都会执行一个数据块扫描器DataBlockScanner,周期性的验证节点所存储的数据块,汇报给datanode。

datanode的启停

datanode的启动
初始化数据节点注册启动数据节点的对外服务
datanode 的停止
停止数据节点上的HTTP服务器和远程接口的IPC服务器数据点的成员变量shouldRun被设置为false。停止流式接口的相关服务

最新回复(0)