Hadoop节点和角色

时间:2015-01-14 15:13:57

标签: hadoop mapreduce hdfs cloudera

我的Hadoop群集在工作中有超过50个节点,我们偶尔会遇到磁盘故障并需要停用datanode角色。

我的问题是 - 如果我只是停用datanode并让tasktracker继续运行,那么由于该节点上的HDFS服务不可用,这会导致此节点上的任务/作业失败吗?

3 个答案:

答案 0 :(得分:0)

我希望任何尝试从"死"上的HDFS读取的任务节点失败。这应该导致节点在N次失败后被M / R列入黑名单(我认为默认为3)。此外,我相信每次工作都会发生这种情况。

但是,作业仍应完成,因为路由到坏节点的任务将仅在其他节点上重试。

答案 1 :(得分:0)

首先,为了运行作业,您需要输入文件。因此,当您将输入文件加载到HDFS时,默认情况下将拆分为64 MB块大小。此外,还有3次使用默认设置进行复制。现在,由于群集中的某个数据节点发生故障,因此Name节点不会将数据存储在该节点中。即使它也试图存储,它也会从数据节点获得有关状态的频繁更新。因此,它不会选择特定的数据节点来存储数据。

当您没有磁盘空间并且群集中只剩下唯一的死数据节点时,它应该抛出异常。然后是时候替换数据节点并扩展集群了。

希望这有帮助。

答案 2 :(得分:0)

  1. Node1上的TaskTracker是否处于空闲状态,因为该节点上没有DataNode服务? 正确,如果数据节点被禁用,那么任务跟踪器将无法处理数据,因为数据不可用;它会闲置。 2.或者TaskTracker是否处理来自其他节点上的DataNodes的数据? 不,由于数据位置原则,任务跟踪器不会处理来自其他节点的数据。。 3.由于节点上的DN已关闭,我们是否从Node1上的TaskTracker服务中获得错误? ,任务跟踪器将无法处理任何数据,因此没有错误。; 4.如果我在HDFS上运行Hive,Impala等服务 - 这些服务会在与Node1上的TaskTracker联系时抛出错误吗? 他们将无法联系节点1上的任务跟踪器。当客户端请求处理数据时,Name节点告诉客户端数据位置,因此基于数据位置,所有其他应用程序将与数据通信节点