我阅读了有关 Apache Hadoop 的信息。他们说在HDFS中,任务是任意进程,即mapper或者reducer。他们一起称为工作。
它们有两个东西,JOBTRACKER 和 TASKTRACKER,tasktracker 在每个管理 mapper 或 reducer 任务的节点上。
而且,Jobtracker 是管理所有任务跟踪器的人。
到目前为止,我从理论上理解了所有的概念,并且所有的东西在许多博客中都有很好的解释。
但我有一个疑问,tasktracker 如何通知 jobtracker 给定任务失败。他们如何相互沟通。他们是否使用任何其他软件,例如 Apache AVRO。
请解释一下这个的内部机制。
期待您的回复。
最佳答案
AVRO 与此无关。它只是一个序列化框架,如果人们觉得 Hadoop 的序列化对他们帮助不大,通常会使用它。否则它只是 Hadoop 生态系统的另一个成员。
回到您最初的问题,它是通过心跳完成的,正如@thiru_k 在上面指定的那样。但是除了可用插槽的数量之外,心跳信号还包含一些其他信息,例如作业状态、资源使用情况等。暂时不报告其进度的任务被标记为挂起或终止。我建议你通过这个 link ,它会回答你所有的问题。
关于networking - TaskTrackers 如何通知 Jobtrackers 它们的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17262125/