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/29734436/viewspace-2155349/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hadoop之MapReduce2架構設計Hadoop架構
- Golang 基礎之基礎語法梳理 (三)Golang
- Hadoop 基礎之搭建環境Hadoop
- Hadoop 基礎之 HDFS 入門Hadoop
- Hadoop 基礎之生態圈Hadoop
- redis基礎梳理Redis
- Hadoop基礎Hadoop
- 【基礎梳理】cookie、session、sessionStorage、localStorage之間的區別及應用場景CookieSession
- git 基礎用法梳理Git
- Python教程分享之Python基礎知識點梳理Python
- js基礎知識梳理JS
- MongoDB基礎知識梳理MongoDB
- kafka基礎知識梳理Kafka
- Hadoop基礎知識Hadoop
- HarmonyOS-基礎之聯絡人案例
- kafka 基礎知識梳理及叢集環境部署記錄Kafka
- Python基礎知識點梳理Python
- Java基礎知識點梳理Java
- js面試題(基礎)梳理JS面試題
- Hadoop基礎入門之發行版本的選擇Hadoop
- 淺析Hadoop基礎原理Hadoop
- 前端基礎之原生js事件繫結案例前端JS事件
- Docker | Docker技術基礎梳理(一)Docker
- 基礎知識梳理~資料庫資料庫
- hadoop基礎知識分享(二)Hadoop
- hadoop基礎知識分享(一)Hadoop
- Hadoop學習之路(六)HDFS基礎Hadoop
- 學習hadoop需要什麼基礎?Hadoop
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop
- MySQL 基礎知識梳理學習(四)—-GTIDMySql
- 多執行緒基礎知識點梳理執行緒
- 超全面的Linux基礎知識的梳理Linux
- VUE的基礎案例1Vue
- Java基礎經典案例Java
- Hadoop基礎(二):從Hadoop框架討論大資料生態Hadoop框架大資料
- 前端基礎之jQuery基礎前端jQuery
- Docker | Docker技術基礎梳理(二) - 映象管理Docker
- 零基礎學前端之CSS文字與字型綜合案例前端CSS