DataNode工作机制
- DataNode启动后,首先向NameNode节点注册信息
- 成功后,开始定时执行数据校验和同步,将自身的数据块列表信息同步到nameNode的映射表上。
-
同时开启心跳,namenode超时不能收到心跳,datanode将会被移除集群。一些namenode对datanode的操作,也会伴随心跳的返回进行传输。
具体如下图
数据完整性检查
- Datanode读取数据时会利用md5校验和比对
- 当校验和错误,说明block损坏,将从其他datanode上读取数据
- datanode在创建文件后,会周期性对文件校验和
心跳超时设置
<property>
<!--超时时间-->
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
</property>
<property>
<!--心跳周期-->
<name> dfs.heartbeat.interval </name>
<value>3</value>
</property>
多目录配置
DataNode和NameNode一样,支持本地多目录。即,将数据存放到不同的目录中。
在hdfs-site.xml中配置
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
</property>