Hadoop 心跳机制(heartbeat)
1、 Hadoop 是 Master/Slave 结构,Master 中有 NameNode 和 ResourceManager,Slave中有 Datanode 和 NodeManager。
2、 Master 启动的时候会启动一个 IPC(Inter-Process Comunication,进程间通信)server 服务,等待 slave 的链接。
3、 Slave 启动时,会主动链接 master 的 ipc server 服务,并且每隔 3 秒链接一次 master,这个间隔时间是可以调整的,参数为dfs.heartbeat.interval,这个每隔一段时间去连接一次的机制,我们形象的称为心跳。Slave 通过心跳汇报自己的信息给 master,master 也通
过心跳给 slave 下达命令。
4、 NameNode 通过心跳得知 Datanode 的状态ResourceManager 通过心跳得知 NodeManager 的状态。
5、 如果 master 长时间都没有收到 slave 的心跳,就认为该 slave 挂掉了。
Namenode 感知到 Datanode 掉线死亡的时长计算:
HDFS 默认的超时时间为 10 分钟+30 秒。
这里暂且定义超时时间为 timeout
计算公式为:
timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval
而默认的 heartbeat.recheck.interval 大小为 5 分钟&