大資料學習筆記(十七)-MapReduce
1.在MapReduce中被分成了兩類,map操作和reduce操作,1個job是由若干次map操作和1次reduce操作組成的。
在MapReduce中,最重要的就是理解資料在處理時都是以Key/Value形式輸入輸出的(在資料初始讀入時,也是以Key/Value形式讀入的)
2.對map、reduce操作的理解
①map是對映:簡單理解的話可以理解成遍歷原有資料集中的所有資料,針對每一條資料都用相同的邏輯對資料進行處理,然後再產生新的資料集。因為是遍歷操作,所以每條資料都是獨立的,所以是可以並行的,分佈在不同機器上進行運算。
②reduce是歸約:所謂的歸約可以理解成框架將資料集按照Key值生成一個Value的List,在reduce回撥方法中,可以這些資料進行處理。因為要將Key值相同的資料集中在一起進行處理,所以會有網路IO/磁碟IO,也就是shuffle,因此並行度低,執行速度慢。
3.使用MapReduce處理資料
①初學MapReduce,學習的是WordCount Example,在這個例子裡的job是由1次map和1次reduce組成的,對於比較簡單的邏輯這樣就可以了,但是一個job實際上是可以由多次map和1次Reduce組成的。
②處理更復雜的邏輯需要在reduce前執行多次map操作或者再reduce操作後也需要使用map操作對reduce產生的結果進行處理,這個時候就可以使用ChainMapper來實現reduce前的多次map操作,reduce之後要執行map操作可以使用ChainReducer來實現。
③在更復雜的一些情況下,可能需要經過多次reduce,這個時候只需要在寫Driver時順序的寫多個job設定前一個job的輸出為後一個job的輸入就可以了,每個job間以
job.waitForCompletion(true);
提交作業就可以順序的執行多個job了。
我自己的感覺是,MapReduce可以用來做資料的初次ETL,將資料完成整理之後,使用Hive來做後續的處理,因為HQL能夠提供更好更簡單的資料處理方法。比如group by和join,實現起來還是挺複雜的。
但是這就看出MapReduce的侷限了。Spark就提供了對應的運算元,可以實現複雜的資料運算。
4.使用MapReduce實現連線操作時,需要兩個對映器(Mapper),此時可以使用MultipleInputs類來達到使用多個對映器,如果只有一個對映器則是用之前的job.setMapperClass()來實現。
相關文章
- java大資料最全課程學習筆記(5)--MapReduce精通(一)Java大資料筆記
- 【大資料】離線批處理計算MapReduce | 複習筆記大資料筆記
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- Redis學習筆記(十七) 叢集(上)Redis筆記
- SpringBoot學習筆記(十七:非同步呼叫)Spring Boot筆記非同步
- SpringBoot學習筆記(十七:MyBatis-Plus )Spring Boot筆記MyBatis
- 大資料教程分享Actor學習筆記大資料筆記
- Nginxupload上傳模組(學習筆記十七)Nginx筆記
- 大資料學習開發技術:MapReduce執行原理大資料
- 資料庫學習筆記資料庫筆記
- 工作學習筆記(十七)MyBatis中eq和like筆記MyBatis
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- PHP 資料加密 (學習筆記)PHP加密筆記
- 1029學習筆記 資料庫筆記資料庫
- 資料結構學習筆記資料結構筆記
- python學習筆記:資料庫Python筆記資料庫
- MySQL資料庫學習筆記MySql資料庫筆記
- 大資料學習筆記500條【第一彈】,記得收藏!大資料筆記
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- 學習筆記(四十七):@ohos.window (視窗)筆記
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料培訓教你快速學習MapReduce程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 大資料測試學習筆記之測試工具集大資料筆記
- 學習筆記(二十七):ArkUi-警告彈窗(AlertDialog)筆記UI
- Ansibleyaml的語法、playbook檔案例子(學習筆記十七)YAML筆記
- 資料結構學習筆記1資料結構筆記
- Redis學習筆記(七) 資料庫Redis筆記資料庫
- 資料結構學習筆記--棧資料結構筆記
- 達夢資料庫學習筆記資料庫筆記
- Python 學習筆記——資料型別Python筆記資料型別
- 小白學習大資料測試之hadoop hdfs和MapReduce小實戰大資料Hadoop
- 基於python的大資料分析實戰學習筆記-AnacondaPython大資料筆記
- 好程式設計師大資料學習筆記:Storm架構程式設計師大資料筆記ORM架構
- 大資料學習筆記之Hadoop安裝步驟詳解大資料筆記Hadoop
- Jenkins+Cobertura程式碼覆蓋率(學習筆記三十七)Jenkins筆記
- Python學習筆記(一) 資料型別Python筆記資料型別