MapReduce的局限性

    从MapReduce 的特点可以看出MapReduce的优点非常明显,但是MapReduce也有其局限性,并不是处理海量数据的普适方法。它的局限性主要体现在以下几点。

  •   MapReduce的执行速度慢。一个普通的MapReduce作业一般在分钟级别完成,复杂的作业或者数据量更大的情况下,也可能花费一小时或者更多,好在离线计算对于时间远没有OLTP那么敏感。所以MapReduce现在不是,以后也不会是关系型数据库的终结者。MapReduce的慢主要是由于磁盘I/O,  MapReduce作业通常都是数据密集型作业,大量的中间结果需要写到磁盘上并通过网络进行传输,这耗去了大量的时间。
  •   MapReduce过于底层。与SQL相比,MapReduce显得过于底层。对于普通的查询,一般人是不会希望写一个map函数和reduce函数的。对于习惯于关系型数据库的用户,或者数据分析师来说,编写map函数和reduce函数无疑是一件头疼的事情。好在Hive的出现,大大改善了这种状况。
  •  不是所有算法都能用MapReduce实现。这意味着,不是所有算法都能实现并行。例如机器学习的模型训练,这些算法需要状态共享或者参数间有依赖,且需要集中维护和更新。





本文参考书籍------Hadoop海量数据处理 技术详解与项目实战

原文地址:https://www.cnblogs.com/DeepRunning/p/9205989.html