HDFS06 DataNode

DataNode

DataNode工作机制

一个数据块在DataNode上以文字形式存储在磁盘上,包括一下两个文件。

image

image

1.DataNode启动后告诉NameNode本机的块信息(块是否完好),并周期性(默认6个小时)上报所有块消息(块是否完好)。

如DataNode1中Block1的数据长度、校验和、时间戳,Block3的数据长度、校验和、时间戳

DN先扫描自己节点块信息列表,默认6小时扫描一次,扫描自己的块是否有损害。

<property> 
  <name>dfs.datanode.directoryscan.interval</name> --数据节点自查时间间隔
  <value>21600s</value> 
  <description>Interval in seconds for Datanode to scan data 
  directories and reconcile the difference between blocks in memory and on 
the disk. 
  Support multiple time unit suffix(case insensitive), as described 
  in dfs.heartbeat.interval. 
  </description> 
</property>

DN再向NN汇报当前解读的信息,时间间隔默认6小时。

<property>
  <name>dfs.blockreport.intervalMsec</name> --块信息报告的时间间隔ms
  <value>21600000</value> 
  <description>Determines block reporting interval in 
milliseconds.</description>
</property>

2.心跳每3s一次,DataNode->NameNode我还活着,心跳返回结果带有NameNode->DataNode的命令。

3.超过10分钟+30s没有收到心跳的话,则认为该节点不可用。就认为该节点挂了,不会再向其传输信息。

数据完整性

DataNode 节点保证数据完整性的方法。

1.当 DataNode 读取 Block 的时候,它会计算 CheckSum。
2.如果计算后的 CheckSum,与 Block 创建时值不一样,说明 Block 已经损坏。
3.Client 读取其他 DataNode 上的 Block。
4.常见的校验算法 crc(32),md5(128),sha1(160)
5.DataNode 在其文件创建后周期验证 CheckSum。

DataNode掉线时限参数设置

image

注意
hdfs-site.xml 配置文件中的 heartbeat.recheck.interval 的单位为毫秒,dfs.heartbeat.interval 的单位为秒。

<property> 
    <name>dfs.namenode.heartbeat.recheck-interval</name> 
    <value>300000</value> 
</property> 
 
<property> 
    <name>dfs.heartbeat.interval</name> 
    <value>3</value> 
</property> 

image

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值