HDFS DataNode工作机制和数据存储

工作机制

  • 一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件:一个是数据本身,一个是元数据包括数据块的长度,数据块的校验和,以及时间戳。
  • DataNode启动后向NameNode注册,通过后则周期性(1小时)的向NameNode上报所有的块信息。
  • 心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令。如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。
  • 集群运行中可以安全加入和退出一些机器。


数据完整性

  • 当Client读取DataNode上block的时候,会计算checksum。如果计算后的checksum,与block创建时值不一样,说明block已经损坏。这时Client需要读取其他DataNode上的block。
  • DataNode在其文件创建后周期验证checksum。


掉线参数设置

DataNode进程死亡或者网络故障造成DataNode无法与NameNode通信,NameNode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长。HDFS默认的超时时长为10分钟+30秒。如果定义超时时间为timeout,则超时时长的计算公式为:

timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval

<code>dfs.namenode.heartbeat.recheck-interval 300000ms
dfs.heartbeat.interval 3s/<code>


分享到:


相關文章: