TaskTrackers如何告知Jobtrackers他们的状态?

时间:2013-06-23 15:11:58

标签: networking hadoop mapreduce distributed-computing

我读到了Apache Hadoop。他们说在HDFS中,任务是任何过程,即mapper或reducer。他们一起打电话给工作。

他们有两件事, JOBTRACKER和TASKTRACKER ,tasktracker在每个管理mapper或reducer任务的节点上。

而且,Jobtracker就是那个管理所有任务跟踪器的人。

直到现在我理论上理解了所有的摘要,所有的内容都在很多博客中得到了很好的解释。

但我有一个疑问,tasktracker告诉jobtracker给定任务失败。他们如何相互沟通。他们使用的是其他任何软件,就像Apache AVRO一样。

请解释一下这个内部机制。

寻找你的回复。

2 个答案:

答案 0 :(得分:2)

AVRO与此毫无关系。它只是一个序列化框架,如果人们觉得Hadoop的序列化对他们没有多大帮助,人们通常会使用它。否则它只是Hadoop生态系统的另一个成员。

来到你原来的问题,它是通过心跳完成的,正如@thiru_k上面指出的那样。但是,随着可用插槽的数量,心跳信号还包含一些其他信息,例如作业状态,资源使用等。一段时间内未报告其进度的任务被标记为挂起或被杀死。我建议你仔细阅读link,它会回答你的所有问题。

答案 1 :(得分:1)

TaskTrackers通常每隔几分钟向JobTracker发送心跳消息,以向JobTracker保证它仍处于活动状态。这些消息还告知JobTracker可用插槽的数量,因此JobTracker可以保持最新的集群工作可以委派的位置