MapReduce 1.x 架构
MapReduce 1.x 采用 Master/Slave 架构,由全局唯一的 Jobtracker 和多个 TaskTacker 组成,并且在Client中提供一系列的api供编程和管理使用。
1.client
提供api供用户编程调用,将用户编写的MapReduce程序提交到JobTracker中。
2. JobTracker
- 负责资源调度 主节点 发生故障整个集群瘫痪
- 负责任务调度,主节点
存在的问题
负载过高,容易故障
与MR耦合度太高,如果Spark也要运行在这一框架上,需要自己去实现,这个集群就存在两套资源调度器,存在资源隔离问题以及资源掠夺问题。。
全局唯一,主要负责集群资源监控和作业调度。JobTracker会对集群中所有的TaskTracker进行监控,一旦TaskTracker出现宕机、失败等情况,JobTracker中的调度器会将原来在这个TaskTracker上面执行的任务转移到其他的节点上面继续执行。当有新的作业进入到集群中时,调度器会根据资源的使用情况合理的分配这些作业。并且JobTracker中的调度器是可以插拔的,这意味着用户可以根据自己的需要,自定义作业和集群的调度方法。但是JobTracker存在单点故障的问题,一旦JobTracker所在的机器宕机,那么集群就无法正常工作。