HDFS的心跳机制

  DataNode默认向NameNode每隔3秒汇报一次,主要汇报2点:一点是DataNode的状态信息,另一个是自身DataNode所持有的所有的数据块的信息。

  按照规定,每个DataNode都需要向NameNode汇报,如果某一时刻开始,某个DataNode不汇报了,可能就是宕机了(只要通过玩过传输数据,就可能存在丢失或延迟)。HDFS规定:NameNode连续10次没有收到汇报,便认为可能存在宕机的可能。

  DataNode启动好之后,会专门启动一个线程,去专门负责心跳数据包,如果整个DataNode没有任何问题,但只是当前负责发送心跳数据包的线程挂了。NameNode会发送命令向DataNode确认,查看心跳数据包的服务是否正常,为了保险起见,一般会确认2次,每5分钟确认一次;如果2次都没有返回结果,那么认为DataNode已经挂了。

你可能感兴趣的:(hadoop)