一、MapReduce概述
1.MapReduce是一種分佈式計算模型,由Google提出,主要用於搜索領域,解決海量數據的計算問題.
2.MR由兩個階段組成:Map和Reduce,用戶只需要實現map()和reduce()兩個函數,即可實現分佈式計算,非常簡單。
3.這兩個函數的形參是key、value對,表示函數的輸入信息。
二、MapReduce特點
易於編程
良好的擴展性
高容錯性
適合PB級以上海量數據的離線處理
三、MapReduce—不擅長的方面
1.實時計算
像MySQL一樣,在毫秒級或者秒級內返回結果
2 流式計算
MapReduce的輸入數據集是靜態的,不能動態變化
MapReduce自身的設計特點決定了數據源必須是靜態的
3 DAG(有向無環圖)計算框架
多個應用程序存在依賴關係,後一個應用程序的輸入爲前一個的輸出
四、常見MapReduce應用場景
1 簡單的數據統計,比如網站pv、uv統計
2 搜索引擎建索引
3 海量數據查找
4 複雜數據分析算法實現
聚類算法
分類算法
推薦算法
圖算法