MapReduce正在風靡世界,比如google的bigtable,yahoo的hadop/hbase,其核心之一就是MapReduce。簡單的說MapReduce的核心思想:1、數據在哪,運算在哪;2、多機器協同運算。
可是MapReduce就沒有缺點了嗎,我總結幾條:
1、數據必須先存儲,才能運算。
MapReduce在搜索的應用中,先將爬蟲爬來的網頁數據放在一個大存儲上(一個分佈式存儲),然後間斷性的對這些數據進行批量處理(MapReduce),即先存儲,後運算。
存儲和運算不能並行運行嗎? 這樣數據加工的實時性會更高?大部分運算是不具有依賴性的。
2、Map->Reduce過程中,有大量網絡流量。
3、有大量的排序
有時候,這些排序是沒有必要的