處理海量數據的模式MapReduce,大規模數據集的並行運算
阿新 • • 發佈:2017-08-07
海量數據 mapreduce
MapReduce是一種處理海量數據的並行編程模式,用於大規模數據集(通常大於1TB)的並行運算。
“Map(映射)”、“Reduce(化簡)”的概念和主要思想,都是從函數式編程語言和矢量編程語言借鑒。
適合非結構化和結構化的海量數據的搜索、挖掘、分析與機器智能學習等。
MapReduce計算模型
分布式計算的瓶頸是網絡帶寬。“本地計算”是最有效的一種節約網絡帶寬的手段。
MapReduce的特點
1、輸入的鍵值是不固定的,由分析人員選擇
2、對於非結構化和半結構化數據,非常有效
3、適合於大規模數據的一次寫入,多次查詢
4、MapReduce其核心就是高速、流式讀寫操作
無共享
無共享結構讓MapReduce程序員無需考慮系統的部分失效問題;
因為自身的系統實現,能夠檢測到失敗的map或reduce任務;
並讓正常的機器重新執行這些失敗的任務;
因為各個任務之間彼此獨立;
任務的執行順序是無關緊要的;
MapReduce計算流程
MapReduce運行模型
Map函數——對一部分原始數據進行指定的操作。每個Map操作都針對不同的原始數據,因此Map與Map之間是互相獨立的,這使得它們可以充分並行化。
Reduce操作——對每個Map所產生的一部分中間結果進行合並操作,每個Reduce所處理的Map中間結果是互不交叉的,所有Reduce產生的最終結果經過簡單連接就形成了完整的結果集
數據分布存儲,帶來計算上的並行化:
MapReduce操作執行流程圖
本文出自 “中科院計算所培訓” 博客,謝絕轉載!
處理海量數據的模式MapReduce,大規模數據集的並行運算