MapReduce 1.0 的缺陷
MapReduce 1.0采用Master/Slave架构设计,包括一个JobTracker和若干个TaskTracker,前者负责作业的调度和资源的管理,后者负责执行JobTracker指派的具体任务。这种架构设计具有一些缺陷,具体如下:
- 存在单点故障
MapReduce 1.0由JobTracker负责所有MapReduce作业的调度,而系统中只有一个JobTracker,因此会存在单点故障问题,即这个唯一的JobTracker出现故障就会导致系统不可用。
- JobTracker任务过重
JobTracker即要负责作业的调度和失败恢复,又要负责资源管理分配。JobTracker执行过多的任务,需要消耗大量的资源,例如当存在非常多的MapReduce任务时,JobTracker需要巨大的内存开销,这也潜在地增加了JobTracker失败的风险。正因如此,业内普遍总结出MapReduce 1.0支持主机数目的上限为4000个。
- 容易出现内存溢出
在TaskTracker端,资源的分配并不考虑CPU、内存的实际使用情况,而只是根据MapReduce任务