gpt4 book ai didi

hadoop - 模拟节点故障时,Hadoop集群中是否出现NoRouteToHostException?

转载 作者:行者123 更新时间:2023-12-02 20:29:38 35 4
gpt4 key购买 nike

我有一个hadoop集群,需要对它进行一些容错测试。在测试期间,当Hadoop(HDFS)群集中的某个节点关闭(以模拟故障)并且其IP地址不再存在于网络中时-其余节点上的HDFS无限期挂起,并带有NoRouteToHostExceptions-是否可以解决此问题?

附带说明一下,如果我杀死节点上的hadoop进程但使节点处于运行状态(IP地址在网络上仍然有效),则容错功能正常,没有挂起,一切正常。

我已经在这里看到了对此异常的解释:
https://wiki.apache.org/hadoop/NoRouteToHost

如果无法解决此问题-我认为Hadoop集群应该能够容错节点故障?

谢谢

根据第一个答案进行更新:
是的,服务已在所有节点上完全复制以实现高可用性-这是设计的故意部分。

(1)如果我实际上只是杀死该节点上的Hadoop服务,但让该节点运行(其IP地址在网络上仍然有效),则不会发生此问题,并且其余节点将继续正常运行而不会丢失数据(因为数据已在所有节点上完全复制)。

(2)当我关闭节点并且其IP在网络上不再可用,其余节点无法再与其建立TCP连接(因为IP不再存在)时,就会出现问题,因此它们会无限期地挂起,并带有NoRouteToHostExceptions -这是我要解决的问题

再次具有讽刺意味的是,如果IP地址仍然有效,但是Hadoop服务关闭,则不会发生此挂起的问题-(1)以上-其余节点仍可以建立与“模拟失败”节点的TCP连接,但是Hadoop服务关闭了。

这不是网络问题,而是模拟集群中节点故障的受控测试。
当节点关闭以模拟故障时,很明显IP地址在网络上将不再有效。我们遇到的问题是,当节点的IP地址不再存在时,Hadoop集群似乎无法处理这种情况。我们所期望的(或者也许是一个更好的词)是,当Hadoop集群中的其余节点遇到NoRouteToHostException时,他们会认为该节点发生了故障,如果没有该节点,它将继续正常运行。如果这不可能,那没关系,我只需要确定就可以确定我没有错过任何东西。再次感谢

最佳答案

I thought Hadoop clusters were supposed to be fault tolerant to node failures?



只有一点。
  • 如果您有一个NameNode,并且它出现故障,则无可用。您无法读取/写入/处理数据。
  • 如果HDFS块副本的所有DataNode都已关闭,则无法读取该数据。
  • 如果ResourceManager关闭,则无法运行MapReduce,Spark等作业。

  • 目前尚不清楚您关闭了哪台计算机,但是我建议您查看NameNode和ResourceManager HA配置,并将DataNodes的默认复制因子设置为至少3。

    但是,“没有主机路由”不是Hadoop问题,也不是在应用程序级别上要解决的问题。如Wiki所述,

    These are all network configuration/router issues. As it is your network, only you can find out and track down the problem.



    从根本上讲,这意味着您需要确保路由表和DNS服务器或主机文件知道服务器IP的位置。

    关于hadoop - 模拟节点故障时,Hadoop集群中是否出现NoRouteToHostException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53960246/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com