【问题标题】:what Hadoop will do after one of datanodes down一个数据节点关闭后 Hadoop 会做什么
【发布时间】:2019-01-12 13:10:15
【问题描述】:

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

补充,如果down数据节点过一会又回来了,hadoop能识别那个节点上的数据吗?谢谢!

【问题讨论】:

    标签: hadoop


    【解决方案1】:

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

    是的,Hadoop 会识别它并在其他一些节点上复制该数据。当 Namenode 停止接收来自数据节点的心跳时,它假定数据节点丢失。为了将所有数据的复制保持在定义的复制因子,它将在其他数据节点上制作副本。

    补充一下,如果down数据节点过一会又回来了,hadoop能识别那个节点上的数据吗?

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

    来自 Apache HDFS 文档的片段:

    每个 DataNode 都会定期向 NameNode 发送 Heartbeat 消息。网络分区会导致 DataNode 的一个子集失去与 NameNode 的连接。 NameNode 通过没有心跳消息来检测这种情况。 NameNode 将没有最近 Heartbeat 的 DataNode 标记为已死,并且不会向它们转发任何新的 IO 请求。任何注册到死 DataNode 的数据都不再可用于 HDFS。 DataNode 死亡可能会导致某些块的复制因子低于其指定值。 NameNode 不断跟踪需要复制的块,并在必要时启动复制。 The necessity for re-replication may arise due to many reasons: a DataNode may become unavailable, a replica may become corrupted, a hard disk on a DataNode may fail, or the replication factor of a file may be increased

    【讨论】:

    • 非常感谢! NameNode会删除丢失的数据节点或其他数据节点中的多余副本吗?
    • 我认为这可能取决于每个数据节点上使用的一些参数,例如 rackspace。因为 Name 节点也尝试在每个数据节点上等量分布数据。
    猜你喜欢
    • 2013-08-20
    • 2023-03-12
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2016-09-06
    相关资源
    最近更新 更多