3

我正在阅读有关 Hadoop 以及它的容错性的信息。我阅读了 HDFS 并阅读了如何处理主节点和从节点的故障。但是,我找不到任何提到 mapreduce 如何执行容错的文档。特别是当包含 Job Tracker 的主节点宕机或任何从节点宕机时会发生什么?

如果有人可以向我指出一些详细解释这一点的链接和参考资料。

4

3 回答 3

5

MapReduce 层的容错取决于 hadoop 版本。对于 hadoop.0.21 之前的版本,没有检查点,JobTracker 失败会导致数据丢失。

但是,从 hadoop.0.21 开始的版本,添加了检查点,其中 JobTracker 在文件中记录其进度。当 JobTracker 启动时,它会查找此类数据,以便可以从中断的地方重新开始工作。

于 2011-04-28T10:59:50.787 回答
4

Hadoop 中的容错

如果 JobTracker 在指定的时间段内(默认设置为 10 分钟)没有收到来自 TaskTracker 的任何心跳,则 JobTracker 了解与该 TaskTracker 关联的工作人员已失败。当这种情况发生时,JobTracker 需要将所有挂起和正在进行的任务重新调度到另一个 TaskTracker,因为属于失败的 TaskTracker 的中间数据可能不再可用。

如果所有已完成的 map 任务属于未完成的作业,它们也需要重新调度,因为驻留在失败的 TaskTracker 文件系统中的中间结果可能无法被 reduce 任务访问。

TaskTracker 也可以被列入黑名单。在这种情况下,列入黑名单的 TaskTracker 与 JobTracker 保持通信,但没有任务分配给相应的工作人员。当属于由 TaskTracker 管理的特定作业的给定数量的任务(默认情况下,此数量设置为 4)失败时,系统认为发生了故障。

TaskTracker 发送给 JobTracker 的心跳中的一些相关信息是: ● TaskTrackerStatus

● 重新启动

● 如果是第一次心跳

● 如果节点需要执行更多任务

TaskTrackerStatus 包含有关由 TaskTracker 管理的工作人员的信息,例如可用的虚拟和物理内存以及有关 CPU 的信息。JobTracker 保留有故障的 TaskTracker 的黑名单,以及从该 TaskTracker 接收到的最后一个心跳。因此,当接收到新的重新启动/第一次心跳时,JobTracker 可以通过使用此信息来决定是重新启动 TaskTracker 还是将 TaskTracker 从黑名单中删除

之后,在 JobTracker 中更新 TaskTracker 的状态并创建 HeartbeatResponse。此 HeartbeatResponse 包含 TaskTracker 将采取的下一个操作。如果有任务要执行,TaskTracker 需要新任务(这是 Heartbeat 的一个参数)并且它不在黑名单中,则创建清理任务和设置任务(清理/设置机制尚未进一步研究) . 如果没有要执行的清理或设置任务,JobTracker 会获取新任务。当任务可用时,LunchTaskAction 被封装在每个任务中,然后 JobTracker 也会查找:

- 被杀死的任务

-杀死/清理的工作

- 尚未保存输出的任务。

所有这些操作(如果适用)都将添加到要在 HeartbeatResponse 中发送的操作列表中。Hadoop 中实现的容错机制仅限于在给定执行失败时重新分配任务。在这种情况下,支持两种情况: 1. 如果分配给给定 TaskTracker 的任务失败,则通过 Heartbeat 通信通知 JobTracker,如果可能,JobTracker 会将任务重新分配给另一个节点。2. 如果TaskTracker 失败,JobTracker 会注意到故障情况,因为它不会收到来自该TaskTracker 的Heartbeats。然后,JobTracker 会将 TaskTracker 拥有的任务分配给另一个 TaskTracker。JobTracker 中也存在单点故障,因为如果它失败了,整个执行就会失败。

在 Hadoop 中实现的容错标准方法的主要优点在于其简单性,并且似乎在本地集群中运行良好。但是,对于大型分布式基础设施,标准方法还不够,节点之间的距离可能太大,并且重新分配任务所浪费的时间可能会减慢系统速度

于 2015-03-25T19:23:40.160 回答
2

Master 节点(NameNode)是 hadoop 中的单点故障。如果它出现故障,则系统不可用。

从(计算)节点故障很好,故障时在它们上运行的任何东西都只是在不同的节点上重新运行。事实上,即使节点运行缓慢,也可能发生这种情况。

有一些项目/公司希望消除单点故障。如果您有兴趣,谷歌搜索“hadoop ha”(高可用性)应该会让您上路。

于 2011-04-28T04:53:26.923 回答