1.抽象层次低
对于简单的功能,编写大量的代码。
2.表达能力有限
MR把复杂分布式编程工作高度抽象到两个函数上,即MAP与REDUCE 上,实际生产环境上中有些不能只用简单的两个函数完成。
3.要管理作业间复杂的依赖关系
实际应用通常需要大量的job协作完成,job之间往往存在复杂的依赖关系。
4.迭代效率低
对于需要迭代的任务。需要反复读写HDFS文件中的数据,大大降低了迭代的效率
5.资源浪费
Reduce任务需要等到所有的MaP任务完成之后才开始。
6.实时性差
适用于离线批处理