其中一个数据节点关闭后,Hadoop将做什么

其中一个数据节点关闭后,Hadoop将做什么,hadoop,Hadoop,我有10个数据节点和2个名称节点Hadoop集群,配置了3个复制,我想知道如果其中一个数据节点出现故障,Hadoop会尝试在其他活动节点上生成丢失的复制吗?或者什么也不做(因为还剩下2个副本) 另外,如果关闭的数据节点在一段时间后返回,hadoop能识别该节点上的数据吗?谢谢 hadoop会尝试在其他活动节点上生成丢失的复制吗?或者什么也不做(因为还剩下2个副本) 是的,Hadoop将识别它并在其他一些节点上复制该数据。当Namenode停止从数据节点接收心跳时,它假定数据节点丢失。为了将所有数

我有10个数据节点和2个名称节点Hadoop集群,配置了3个复制,我想知道如果其中一个数据节点出现故障,Hadoop会尝试在其他活动节点上生成丢失的复制吗?或者什么也不做(因为还剩下2个副本)

另外,如果关闭的数据节点在一段时间后返回,hadoop能识别该节点上的数据吗?谢谢

hadoop会尝试在其他活动节点上生成丢失的复制吗?或者什么也不做(因为还剩下2个副本)

是的,Hadoop将识别它并在其他一些节点上复制该数据。当Namenode停止从数据节点接收心跳时,它假定数据节点丢失。为了将所有数据复制到定义的复制因子,它将在其他数据节点上进行复制

另外,如果关闭的数据节点在一段时间后返回,hadoop能识别该节点上的数据吗

是的,当数据节点返回其所有数据时,Name node将删除/删除数据的额外副本。在数据节点的下一次心跳中,Name节点将发送删除额外数据并释放磁盘空间的指令

Apache HDFS文档中的代码片段:

每个DataNode定期向NameNode发送心跳消息。网络分区可能会导致DataNodes子集与NameNode失去连接。NameNode通过缺少心跳消息来检测这种情况。NameNode将没有最近心跳的DataNodes标记为死节点,并且不向它们转发任何新的IO请求。已注册到死数据节点的任何数据对HDFS不再可用。DataNode死亡可能会导致某些块的复制因子低于其指定值。NameNode不断跟踪需要复制的块,并在必要时启动复制<代码>重新复制的必要性可能由于多种原因而产生:DataNode可能不可用,副本可能损坏,DataNode上的硬盘可能出现故障,或者文件的复制系数可能增加


谢谢!NameNode将删除丢失的数据节点或其他数据节点中的额外副本?我认为这可能取决于每个数据节点上使用的一些参数,如
rack
space
。因为名称节点也尝试在每个数据节点上以相等的数量分发数据。