我的Hadoop群集在工作中有超过50个节点,我们偶尔会遇到磁盘故障并需要停用datanode角色。
我的问题是 - 如果我只是停用datanode并让tasktracker继续运行,那么由于该节点上的HDFS服务不可用,这会导致此节点上的任务/作业失败吗?
答案 0 :(得分:0)
我希望任何尝试从"死"上的HDFS读取的任务节点失败。这应该导致节点在N次失败后被M / R列入黑名单(我认为默认为3)。此外,我相信每次工作都会发生这种情况。
但是,作业仍应完成,因为路由到坏节点的任务将仅在其他节点上重试。
答案 1 :(得分:0)
首先,为了运行作业,您需要输入文件。因此,当您将输入文件加载到HDFS时,默认情况下将拆分为64 MB块大小。此外,还有3次使用默认设置进行复制。现在,由于群集中的某个数据节点发生故障,因此Name节点不会将数据存储在该节点中。即使它也试图存储,它也会从数据节点获得有关状态的频繁更新。因此,它不会选择特定的数据节点来存储数据。
当您没有磁盘空间并且群集中只剩下唯一的死数据节点时,它应该抛出异常。然后是时候替换数据节点并扩展集群了。
希望这有帮助。
答案 2 :(得分:0)