MapReduce正在风靡世界,比如google的bigtable,yahoo的hadop/hbase,其核心之一就是MapReduce。简单的说MapReduce的核心思想:1、数据在哪,运算在哪;2、多机器协同运算。
可是MapReduce就没有缺点了吗,我总结几条:
1、数据必须先存储,才能运算。
MapReduce在搜索的应用中,先将爬虫爬来的网页数据放在一个大存储上(一个分布式存储),然后间断性的对这些数据进行批量处理(MapReduce),即先存储,后运算。
存储和运算不能并行运行吗? 这样数据加工的实时性会更高?大部分运算是不具有依赖性的。
2、Map->Reduce过程中,有大量网络流量。
3、有大量的排序
有时候,这些排序是没有必要的