TaskTracker概述
Tracker是JobTracker与Task之间的“沟通桥梁”,一方面,从JobTracker端接收并执行各种命令,比如运行任务、提交任务、杀死任务等等;另一方面,它将本节点上的各个任务状态通过周期性心跳汇报给JobTracker。
Task Tracker实现两个功能:汇报心跳和执行命令
-
汇报心跳:TaskTracker周期性将所在节点各种信息通过心跳机制汇报给JobTracker,包括,机器级别信息如节点健康状况、资源使用情况等;任务级别信息如任务执行进度、任务运行状态、任务Counter值等。
-
执行命令:JobTracker收到TaskTracker心跳信息后,会根据心跳信息和当前作业情况为该TaskTracker下达命令,包括启动任务、提交任务、杀死任务、杀死作业和重新初始化。为了防止任务之间的干扰,TaskTracker为每个任务创建一个单独的JAVA虚拟机,并用专门的线程监控其资源使用情况,一旦发现超量使用资源就直接将其杀掉。