Hadoop之MapReduce2基礎梳理及案例
基礎梳理
1.Mapreduce 分散式計算系統
一個分散式運算程式的程式設計框架也是hadoop的資料分析和應用的核心框架,將使用者的業務邏輯程式碼和自帶的預設元件整合一個完整的分散式用程式,併發執行在一個hadoop叢集上
2.為什麼需要MapReduce
1.海量資料在單機上受硬體資源限制
2.單機程式擴充套件到叢集來分散式執行,加大程式複雜開發難度大
3.使用MR框架,研發大部分工作集中在業務邏輯開發,複雜的計算交給框架處理
3.MapReduce執行目錄及例項
在MapReduce元件裡,官方提供一些樣例程式其中就有WordCount和Pi程式.他們的jar包在hadoop目錄下hadoop-mapreduce-examples-2.8.1.jar,忘記目錄可以find -name *example*
[hadoop@hadoop001 hadoop-2.8.1]$ pwd
/opt/software/hadoop-2.8.1
[hadoop@hadoop001 hadoop-2.8.1]$ find . -name *examples*
./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-sources.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-test-sources.jar
4.hadoop命令跑wordcount例子程式(詞頻統計)
#建立測試文字上傳hdfs
[hadoop@hadoop001 hadoop-2.8.1]$ vim 1.txt
a1 a2
a2 f1 a2
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -put 1.txt /input
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -ls /input
Found 1 items
-rw-r--r-- 1 hadoop supergroup 52 2018-05-28 16:55 /input/1.txt
#輸出目錄存在否者會提示錯誤
[hadoop@hadoop001 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.8.1.jar wordcount /input/ /output1
#檢視統計結果
[hadoop@hadoop001 mapreduce]$ hdfs dfs -cat /output1/part-r-00000
a1 1
a2 3
f1 1
WordCount例子可以體現出MapReduce運用原理
Map Task 對映:
空格分割|每個執行緒中以單詞為統計,以1為詞頻的values (key/values)
a1 1
a2 1
a2 1
a2 1
f1 1
每個map的輸出都需要shuffle(洗牌)操作,將相同的Key放在一個桶裡
交給reduce處理
Reduce Task 規約 合併計算:
a1 1
a2 3
f1 1
5.MapReduce執行機制
輸入分片:一個檔案如果有5個塊 那個預設就會有5個Map Task任務
如果在map計算前進行分片調整,將小檔案進行合併,對於木桶效應
MapReduce可以實現最佳化計算
參考 http://blog.itpub.net/30089851/viewspace-2127850/
1.Mapreduce 分散式計算系統
一個分散式運算程式的程式設計框架也是hadoop的資料分析和應用的核心框架,將使用者的業務邏輯程式碼和自帶的預設元件整合一個完整的分散式用程式,併發執行在一個hadoop叢集上
2.為什麼需要MapReduce
1.海量資料在單機上受硬體資源限制
2.單機程式擴充套件到叢集來分散式執行,加大程式複雜開發難度大
3.使用MR框架,研發大部分工作集中在業務邏輯開發,複雜的計算交給框架處理
3.MapReduce執行目錄及例項
在MapReduce元件裡,官方提供一些樣例程式其中就有WordCount和Pi程式.他們的jar包在hadoop目錄下hadoop-mapreduce-examples-2.8.1.jar,忘記目錄可以find -name *example*
[hadoop@hadoop001 hadoop-2.8.1]$ pwd
/opt/software/hadoop-2.8.1
[hadoop@hadoop001 hadoop-2.8.1]$ find . -name *examples*
./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-sources.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-test-sources.jar
4.hadoop命令跑wordcount例子程式(詞頻統計)
#建立測試文字上傳hdfs
[hadoop@hadoop001 hadoop-2.8.1]$ vim 1.txt
a1 a2
a2 f1 a2
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -put 1.txt /input
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -ls /input
Found 1 items
-rw-r--r-- 1 hadoop supergroup 52 2018-05-28 16:55 /input/1.txt
#輸出目錄存在否者會提示錯誤
[hadoop@hadoop001 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.8.1.jar wordcount /input/ /output1
#檢視統計結果
[hadoop@hadoop001 mapreduce]$ hdfs dfs -cat /output1/part-r-00000
a1 1
a2 3
f1 1
WordCount例子可以體現出MapReduce運用原理
Map Task 對映:
空格分割|每個執行緒中以單詞為統計,以1為詞頻的values (key/values)
a1 1
a2 1
a2 1
a2 1
f1 1
每個map的輸出都需要shuffle(洗牌)操作,將相同的Key放在一個桶裡
交給reduce處理
Reduce Task 規約 合併計算:
a1 1
a2 3
f1 1
5.MapReduce執行機制
輸入分片:一個檔案如果有5個塊 那個預設就會有5個Map Task任務
如果在map計算前進行分片調整,將小檔案進行合併,對於木桶效應
MapReduce可以實現最佳化計算
參考 http://blog.itpub.net/30089851/viewspace-2127850/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31441024/viewspace-2155251/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hadoop之MapReduce2架構設計Hadoop架構
- Golang 基礎之基礎語法梳理 (三)Golang
- redis基礎梳理Redis
- Hadoop 基礎之 HDFS 入門Hadoop
- Hadoop 基礎之生態圈Hadoop
- Hadoop 基礎之搭建環境Hadoop
- git 基礎用法梳理Git
- 【基礎梳理】cookie、session、sessionStorage、localStorage之間的區別及應用場景CookieSession
- OkHttp 知識梳理(3) OkHttp 之快取基礎HTTP快取
- Hadoop基礎Hadoop
- js基礎知識梳理JS
- js面試題(基礎)梳理JS面試題
- kafka基礎知識梳理Kafka
- MongoDB基礎知識梳理MongoDB
- kafka 基礎知識梳理及叢集環境部署記錄Kafka
- HarmonyOS-基礎之聯絡人案例
- Hadoop 基礎概念Hadoop
- Java基礎知識點梳理Java
- Python教程分享之Python基礎知識點梳理Python
- 前端基礎之原生js事件繫結案例前端JS事件
- Hadoop基礎知識Hadoop
- Python基礎知識點梳理Python
- 基礎知識梳理~資料庫資料庫
- Docker | Docker技術基礎梳理(一)Docker
- Hadoop基礎入門之發行版本的選擇Hadoop
- 淺析Hadoop基礎原理Hadoop
- 《Hadoop基礎教程》 試讀Hadoop
- Java基礎經典案例Java
- VUE的基礎案例1Vue
- hadoop基礎知識分享(一)Hadoop
- 零基礎學前端之CSS文字與字型綜合案例前端CSS
- 機器學習基礎知識梳理,新手必備!(附連結)機器學習
- 多執行緒基礎知識點梳理執行緒
- Docker容器學習梳理 - 基礎知識(2)Docker
- Docker容器學習梳理–基礎知識(2)Docker
- Kotlin 知識梳理(1) Kotlin 基礎Kotlin
- Canvas&Paint 知識梳理(1) Canvas 基礎CanvasAI
- Docker容器學習梳理 - 基礎知識(1)Docker