【大数据基础】Datanode

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服务器

读数据
  1. 参数

    • blockId
    • generationStamp
    • startOffset
    • length
    • clientName
    • accessToken
  2. 零拷贝

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

写数据
  1. 参数
    • blockId
    • generationStamp
    • pipelineSize
    • isRecovery
    • clientName
    • hasSrcDataNode
    • srcDataNode
    • numTargets
    • targets
    • accessToken
    • checksum

3. 作为整体的datanode

datanode 和 namenode 的交互
  1. 握手、注册、数据块上报和心跳
  2. namenode指定的执行
数据块扫描器

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

datanode的启停
datanode的启动
  • 初始化
  • 数据节点注册
  • 启动数据节点的对外服务
datanode 的停止
  • 停止数据节点上的HTTP服务器和远程接口的IPC服务器
  • 数据点的成员变量shouldRun被设置为false。
  • 停止流式接口的相关服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值