0
点赞
收藏
分享

微信扫一扫

Hadoop 3.x|第七天|DataNode

舟海君 2022-03-25 阅读 55
hadoop

数据块在DN上的存储方式

一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据
本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

工作机制

  1. DataNode 启动后向 NameNode 注册,通过后,周期性(6 小时)的向NameNode 上报所有的块信息。
  2. 心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个 DataNode 的心跳,则认为该节点不可用。
  3. 集群运行中可以安全加入和退出一些机器。

保证数据完整性的方法

DN保证数据完整性的方法

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

掉线时限参数设置

可能出现的问题

DataNode进程死亡或者网络故障,造成DataNode无法与NameNode通信。

NameNode不会立即把该节点判定
为死亡,要经过一段时间,这段时间
暂称作超时时长。

超时时长

HDFS默认的超时时长为10分钟+30秒。
定义公式为

默认的dfs.namenode.heartbeat.recheck-interval 大小为5分钟,dfs.heartbeat.interval默认为3秒。(上面有提到过心跳),故为10分钟+30秒

设置方式

两个的设置在hdfs-site.xml里,其中heartbeat.recheck.interval为5分钟即300000毫秒。
其中dfs.heartbeat.interval的单位为秒。

举报

相关推荐

python(第七天)

HCIP第七天

第七天bj

Java第七天

LeetCode打卡第七天

淘淘商城第七天

0 条评论