MapReduce編程模型有以下這些特點:
簡單而強大的接口,所有的算法需要改寫成map函數和reduce函數實現。搜索引擎領域中的許多數據處理程序可以用MapReduce簡單直觀地改寫。對用戶而言,只要是能用map和reduce表示的算法,就可以簡單高效的實現,不必關心底層細節。
數據類型采用key/value對,一種非常簡單和靈活的數據組織形式。分布式文件系統中的各種常見類型數據可以作為輸入數據,并行數據庫中的表也可以作為輸入數據。實際使用中,只需將輸入數據解釋為key/value對的數據格式即可。
高度并行執行,沒有復雜的消息傳遞機制。map節點之間、reduce節點之間沒有消息傳遞,獨立完成主控節點分配的任務。map節點和reduce節點之間存在簡單的消息傳遞,map節點存儲中間計算結果,并根據分區函數將不同分區的數據傳遞給第二階段的reduce節點。
運行于無共享架構的商用計算機集群之上。每個節點有自己的本地存儲,這些本地存儲組成了MapReduce下面的分布式文件系統。任務分配考慮數據局部性,本地存儲可以存放中間計算結果。這種架構有很好的可擴展性,但同時要求MapReduce有很強的容錯能力。
適用于大規模數據分析處理,不適用于交互頻繁的操作。MapReduce可以滿足大規模數據的高吞吐率要求,并不適用于實時性強的交互處理。另外,MapReduce 適用于大文件的處理,不適用于大量的小文件處理,要處理大量的小文件需要先對這些小文件進行合并預處理。
回答所涉及的環境:聯想天逸510S、Windows 10。
MapReduce編程模型有以下這些特點:
簡單而強大的接口,所有的算法需要改寫成map函數和reduce函數實現。搜索引擎領域中的許多數據處理程序可以用MapReduce簡單直觀地改寫。對用戶而言,只要是能用map和reduce表示的算法,就可以簡單高效的實現,不必關心底層細節。
數據類型采用key/value對,一種非常簡單和靈活的數據組織形式。分布式文件系統中的各種常見類型數據可以作為輸入數據,并行數據庫中的表也可以作為輸入數據。實際使用中,只需將輸入數據解釋為key/value對的數據格式即可。
高度并行執行,沒有復雜的消息傳遞機制。map節點之間、reduce節點之間沒有消息傳遞,獨立完成主控節點分配的任務。map節點和reduce節點之間存在簡單的消息傳遞,map節點存儲中間計算結果,并根據分區函數將不同分區的數據傳遞給第二階段的reduce節點。
運行于無共享架構的商用計算機集群之上。每個節點有自己的本地存儲,這些本地存儲組成了MapReduce下面的分布式文件系統。任務分配考慮數據局部性,本地存儲可以存放中間計算結果。這種架構有很好的可擴展性,但同時要求MapReduce有很強的容錯能力。
適用于大規模數據分析處理,不適用于交互頻繁的操作。MapReduce可以滿足大規模數據的高吞吐率要求,并不適用于實時性強的交互處理。另外,MapReduce 適用于大文件的處理,不適用于大量的小文件處理,要處理大量的小文件需要先對這些小文件進行合并預處理。
回答所涉及的環境:聯想天逸510S、Windows 10。