DataNode数据存在的形式
[root@h102 subdir0]# pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1568640629-192.168.110.82-1622624666933/current/finalized/subdir0/subdir0
[root@h102 subdir0]# ll
total 48
-rw-rw-r--. 1 zyi zyi 1248 Jun 2 22:28 blk_1073741825
-rw-rw-r--. 1 zyi zyi 19 Jun 2 22:28 blk_1073741825_1001.meta
-rw-rw-r--. 1 zyi zyi 1013 Jun 3 03:46 blk_1073741854
-rw-rw-r--. 1 zyi zyi 15 Jun 3 03:46 blk_1073741854_1030.meta
-rw-rw-r--. 1 zyi zyi 7 Jun 11 07:34 blk_1073741861
-rw-rw-r--. 1 zyi zyi 11 Jun 11 07:34 blk_1073741861_1037.meta
-rw-rw-r--. 1 zyi zyi 6 Jun 11 07:34 blk_1073741862
-rw-rw-r--. 1 zyi zyi 11 Jun 11 07:34 blk_1073741862_1038.meta
-rw-rw-r--. 1 zyi zyi 14 Jun 11 07:37 blk_1073741864
-rw-rw-r--. 1 zyi zyi 11 Jun 11 07:37 blk_1073741864_1045.meta
-rw-rw-r--. 1 zyi zyi 304 Jul 1 04:25 blk_1073741865
-rw-rw-r--. 1 zyi zyi 11 Jul 1 04:25 blk_1073741865_1046.meta
blk_1073741825:数据
blk_1073741825_1001.meta:数据长度,校验和,时间戳
DataNode和NameNode
1)DataNode 启动后向 NameNode 注册,通过后,周期性(6 小时)的向 NameNode 上报所有的块信息。
在hdfs-default上面配置:
DN 扫描自己节点块信息列表的时间间隔(自查),默认 6 小时
2)心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复制块
数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个 DataNode 的心跳,再给30秒,之后则认为该节点不可用。
TimeOut = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
hdfs-site.xml 配置文件:
数据完整性
DataNode 节点保证数据完整性的方法。
(1)当 DataNode 读取 Block 的时候,它会计算 CheckSum。
(2)如果计算后的 CheckSum,与 Block 创建时值不一样,说明 Block 已经损坏。
(3)Client 读取其他 DataNode 上的 Block。
(4)常见的校验算法 crc(32),md5(128),sha1(160)
(5)DataNode 在其文件创建后周期验证 CheckSum。