MapReduce設計上具有以下主要的技術特征:
向“外”橫向擴展,而非向“上”縱向擴展:即MapReduce集群的構建完全選用價格便宜、易于擴展的低端商用服務器,而非價格昂貴、不易擴展的高端服務器。對于大規模數據處理,由于有大量數據存儲需要,顯而易見,基于低端服務器的集群遠比基于高端服務器的集群優越,這就是為什么MapReduce并行計算集群會基于低端服務器實現的原因。
失效被認為是常態:MapReduce集群中使用大量的低端服務器,節點硬件失效和軟件出錯是常態,因而一個良好設計、具有高容錯性的并行計算系統不能因為節點失效而影響計算服務的質量,任何節點失效都不應當導致結果的不一致或不確定性。任何一個節點失效時,其他節點要能夠無縫接管失效節點的計算任務,當失效節點恢復后應能自動無縫加入集群,而不需要管理員人工進行系統配置。
為應用開發者隱藏系統層細節:MapReduce提供了一種抽象機制將程序員與系統層細節隔離開來,程序員僅需描述需要計算什么,而具體怎么去計算就交由系統的執行框架處理,這樣程序員可從系統層細節中解放出來,而致力于其應用本身的算法設計。
順序處理數據、避免隨機訪問數據:大規模數據處理的特點決定了大量的數據記錄難以全部存放在內存,而通常只能放在外存儲中進行處理。由于磁盤的順序訪問要遠比隨機訪問快得多,因此MapReduce主要設計為面向順序式大規模數據的磁盤訪問處理。
把處理向數據遷移:為了減少大規模數據并行計算系統中的數據通信開銷,代之把數據傳送到處理節點(數據向處理器或代碼遷移)時,應當考慮將處理向數據靠攏和遷移。MapReduce采用了數據/代碼互定位的技術方法,計算節點將首先盡量負責計算其本地存儲的數據,以發揮數據本地化特點,僅當節點無法處理本地數據時,再采用就近原則尋找其他可用計算節點,并把數據傳送到該可用計算節點。
平滑無縫的可擴展性:這里指出的可擴展性主要包括兩層意義上的擴展數據擴展和系統規模擴展性。
回答所涉及的環境:聯想天逸510S、Windows 10。
MapReduce設計上具有以下主要的技術特征:
向“外”橫向擴展,而非向“上”縱向擴展:即MapReduce集群的構建完全選用價格便宜、易于擴展的低端商用服務器,而非價格昂貴、不易擴展的高端服務器。對于大規模數據處理,由于有大量數據存儲需要,顯而易見,基于低端服務器的集群遠比基于高端服務器的集群優越,這就是為什么MapReduce并行計算集群會基于低端服務器實現的原因。
失效被認為是常態:MapReduce集群中使用大量的低端服務器,節點硬件失效和軟件出錯是常態,因而一個良好設計、具有高容錯性的并行計算系統不能因為節點失效而影響計算服務的質量,任何節點失效都不應當導致結果的不一致或不確定性。任何一個節點失效時,其他節點要能夠無縫接管失效節點的計算任務,當失效節點恢復后應能自動無縫加入集群,而不需要管理員人工進行系統配置。
為應用開發者隱藏系統層細節:MapReduce提供了一種抽象機制將程序員與系統層細節隔離開來,程序員僅需描述需要計算什么,而具體怎么去計算就交由系統的執行框架處理,這樣程序員可從系統層細節中解放出來,而致力于其應用本身的算法設計。
順序處理數據、避免隨機訪問數據:大規模數據處理的特點決定了大量的數據記錄難以全部存放在內存,而通常只能放在外存儲中進行處理。由于磁盤的順序訪問要遠比隨機訪問快得多,因此MapReduce主要設計為面向順序式大規模數據的磁盤訪問處理。
把處理向數據遷移:為了減少大規模數據并行計算系統中的數據通信開銷,代之把數據傳送到處理節點(數據向處理器或代碼遷移)時,應當考慮將處理向數據靠攏和遷移。MapReduce采用了數據/代碼互定位的技術方法,計算節點將首先盡量負責計算其本地存儲的數據,以發揮數據本地化特點,僅當節點無法處理本地數據時,再采用就近原則尋找其他可用計算節點,并把數據傳送到該可用計算節點。
平滑無縫的可擴展性:這里指出的可擴展性主要包括兩層意義上的擴展數據擴展和系統規模擴展性。
回答所涉及的環境:聯想天逸510S、Windows 10。