一、DataNode工作机制

1.DataNode工作机制及存储

  • HDFS分布式文件系统也是一个主从架构
  • 主节点是namenode,负责管理整个集群以及维护集群的元数据信息
  • 从节点datanode,主要负责文件数据存储

在这里插入图片描述

2. datanode工作机制

在这里插入图片描述
-1) 一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件

  • 一个是数据本身
  • 一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
  • hdfs-site.xml中指定了数据存储的路径
  • 2)DataNode启动后向namenode注册,通过后,周期性(6小时)的向namenode上报所有的块信息。
  • 3)心跳是每3秒一次
    • 心跳返回结果带有namenode给该datanode的命令如复制块数据到另一台机器,或删除某个数据块。
    • 如果超过10分钟没有收到某个datanode的心跳,则认为该节点不可用
  • 4)集群运行中可以安全加入和退出一些机器
    3.datanode的数据完整性
    1. 当客户端向hdfs写数据时
    • 会计算数据的校验和,以此保证数据通过网络传输,到达datanode后,没有丢失数据
  • 2)当DataNode读取block的时候
    • 它会计算checksum
    • 如果计算后的checksum,与block创建时值不一样,说明block已经损坏
    • client读取其他DataNode上的block
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Datanode分块机制是指在Hadoop分布式文件系统,为了支持大文件的存储和处理,将大文件划分为多个块(Block),每个块的大小通常为64MB或128MB,并将这些块分散存储在不同的Datanode上。 具体来说,当客户端上传一个大文件时,Namenode会根据预设的块大小将文件划分为多个块,并为每个块分配一个唯一的Block ID。然后,Namenode会将每个块的Block ID和副本信息(如副本数、存储位置等)存储在元数据(Metadata。 接下来,客户端会通过数据流的方式将每个块上传到对应的Datanode上,并告知Datanode所上传的块的Block ID和副本信息。Datanode会确认该块是否已经存在于本地,如果不存在,则会将该块存储在本地,并根据副本数的设置将该块复制到其他的Datanode上。如果该块已经存在于本地,则Datanode会返回成功的响应。 当客户端需要读取某个块时,它会向Namenode请求该块的副本信息。Namenode会查询元数据,返回该块所有副本的位置信息。客户端会选择距离最近的Datanode读取该块,如果该Datanode发生故障,则会选择距离次近的Datanode读取该块,以此类推,直到成功读取该块为止。 总的来说,Datanode分块机制Hadoop分布式文件系统的核心机制之一,它通过将大文件划分为多个块,并将这些块分散存储在不同的Datanode上,实现了高效的数据存储和处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值