大資料(hadoop-Mapreduce原理架構)
阿新 • • 發佈:2019-04-30
課程目標:
1:MapReduce的應用場景
2:MapReduce程式設計模型
3:MapReduce的架構
4:常見MapReduce應用場景
5:總結
MapReduce的定義
源自於Google的MapReduce論文
發表於2004年12月
Hadoop MapReduce是Google MapReduce克隆版
MapReduce特點
易於程式設計
良好的擴充套件性
高容錯性
適合PB級以上海量資料的離線處理
MapReduce的特色—不擅長的方面
實時計算
像MySQL一樣,在毫秒級或者秒級內返回結果
流式計算
MapReduce的輸入資料集是靜態的,不能動態變化
MapReduce自身的設計特點決定了資料來源必須是靜態的
DAG計算
多個應用程式存在依賴關係,後一個應用程式的輸入為前一個的輸出
MapReduce的例項一Wordcount
場景:有大量檔案,裡面儲存了單詞,且一個單詞佔一行
任務:如何統計每個單詞出現的次數
類似應用場景
搜尋引擎中,統計最流行的K個搜尋詞
統計搜尋詞頻率,幫助優化搜尋詞提示
Case1:整個檔案可以載入到記憶體中
Case2:檔案太大不能載入到記憶體中,但<word, count>可以存放到記憶體中;
Case3:檔案太大無法載入到記憶體中,且<word, count>也不行
將問題範化為:有一批檔案(規模為TB級或者PB級),如何統計這些檔案中所有單詞出現的次數
方案:首先,分別統計每個檔案中單詞出現次數,然後累加不同檔案中同一個單詞出現次數
典型的MapReduce過程