在Hadoop1.X版本中,MapReduce是通过JobTracker运行实现的
我们写好MapReduce程序打成jar包交给client端,client把jar包提交到JobTracker。JobTracker把这个作业拆分成很多份,然后分配给TaskTracker去执行。JobTracker和TaskTracker是主从关系,通过心跳机制管理。TaskTracker并不是随机分配任务的,这里有个概念叫:数据本地化。意思是:将map task分配给含有该map处理的数据块(block)的TaskTracker上,运算向数据移动。在分配reduce任务时并不考虑数据本地化。
在MR1.X运行架构中,有3个角色:
- JobTracker
- TaskTracker
- Client
JobTracker是这个框架的核心,在框架中不仅是资源调度的主节点,也是任务调度的主节点。这会造成节点负载过重,容易发生单点故障。而且资源管理与计算调度强耦合,其他计算框架需要重复实现资源管理。不同框架对资源不能全局管理。
在Hadoop2.X版本中,引入的资源管理系统yarn
工作流程:
- client拿到Application计算的文