栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

DataNode工作机制

DataNode工作机制

一.DataNode工作流程


(1)register:当DataNode启动的时候,DataNode将自身信息告诉NameNode。作用是使得这个DataNode注册成为HDFS集群中的成员。

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

上面是DataNode 实际存储的文件内容 ,XXX.meta存储的是块相关的数据长度、校验和、时间戳

(2)blockreport: DataNode向 NameNode注册通过后,会周期性(6 小时)的向 nn汇报所有的块信息(块是否完好)以维持NameNode和数据块之间的映射关系。 这一步完成后,DtaNode才正式启动完成。
DN 向 NN 汇报当前解读信息的时间间隔,默认 6 小时;
扫描自己节点块信息列表的时间(自查时间)也是 6 小时一次,查完就向nn报道
//如果服务器质量较差,可以缩短自查周期

(3)heartbeat: 心跳默认 3 秒一次
作用:
①告诉NameNode 块的信息
②NameNode在心跳响应中将命令给到Datanode
当复制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟+30秒(10次心跳)没有收到某个 DataNode的心跳,则认为该节点不可用。则以后nn就不会允许客户端往该节点读、写数据。

总结: DataNode与NabeNode之间的交互非常的简单,大部分都是DataNode到NameNode的心跳,考虑到一个规模的HDFS集群,一个名字节点会管理上千个DataNode,所以这样的设计也非常自然了

二.DataNode掉线时限参数设置


超时时间为TimeOut,有公式:
TimeOut = dfs.namenode.heartbeat.recheck.interval * 2 + dfs.heartbeat.interval * 10
dfs.namenode.heartbeat.recheck.interval单位为毫秒,默认5min=30000ms
dfs.heartbeat.interval(心跳周期)单位为秒,默认3s

若要再次尝试启动NameNode,命令:hdfs --daemon start datanode

参考:https://www.cnblogs.com/tesla-turing/p/11488004.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/708048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号