天天看點

雲小課|MRS基礎原理之MapReduce介紹

作者:華為雲開發者聯盟

本文分享自華為雲社群《【雲小課】EI第42課 MRS基礎原理之Mapreduce介紹-雲社群-華為雲》,作者: Hello EI。

雲小課|MRS基礎原理之MapReduce介紹

MapReduce是Hadoop的核心,是Google提出的一個軟體架構,用于大規模資料集(大于1TB)的并行運算。概念“Map(映射)”和“Reduce(化簡)”,及他們的主要思想,都是從函數式程式設計語言借來的,還有從矢量程式設計語言借來的特性。

雲小課|MRS基礎原理之MapReduce介紹

MapReduce是面向大資料并行處理的計算模型、架構和平台。目前的軟體實作是指定一個Map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(化簡)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

雲小課|MRS基礎原理之MapReduce介紹

MapReduce是用于并行處理大資料集的軟體架構。MapReduce的根源是函數性程式設計中的map和reduce函數。Map函數接受一組資料并将其轉換為一個鍵/值對清單,輸入域中的每個元素對應一個鍵/值對。Reduce函數接受Map函數生成的清單,然後根據它們的鍵縮小鍵/值對清單。MapReduce起到了将大事務分散到不同裝置處理的能力,這樣原本必須用單台較強伺服器才能運作的任務,在分布式環境下也能完成。

MapReduce結構

MapReduce通過實作YARN的Client和ApplicationMaster接口內建到YARN中,利用YARN申請計算所需資源。

雲小課|MRS基礎原理之MapReduce介紹
  • HDFS是Hadoop分布式檔案系統,具有高容錯和高吞吐量的特性,可以部署在價格低廉的硬體上,存儲應用程式的資料,适合有超大資料集的應用程式。
  • 而MapReduce是一種程式設計模型,用于大資料集(大于1TB)的并行運算。在MapReduce程式中計算的資料可以來自多個資料源,如Local FileSystem、HDFS、資料庫等。最常用的是HDFS,可以利用HDFS的高吞吐性能讀取大規模的資料進行計算。同時在計算完成後,也可以将資料存儲到HDFS。
  • MapReduce是運作在YARN之上的一個批處理的計算架構。MRv1是Hadoop 1.0中的MapReduce實作,它由程式設計模型(新舊程式設計接口)、運作時環境(由JobTracker和TaskTracker組成)和資料處理引擎(MapTask和ReduceTask)三部分組成。該架構在擴充性、容錯性(JobTracker單點)和多架構支援(僅支援MapReduce一種計算架構)等方面存在不足。MRv2是Hadoop 2.0中的MapReduce實作,它在源碼級重用了MRv1的程式設計模型和資料處理引擎實作,但運作時環境由YARN的ResourceManager和ApplicationMaster組成。其中ResourceManager是一個全新的資源管理系統,而ApplicationMaster則負責MapReduce作業的資料切分、任務劃分、資源申請和任務排程與容錯等工作。

如何在MRS叢集中送出MapReduce作業

應用開發完成後,使用者可通過MRS雲服務管理控制台直接送出Mapreduce作業,也可以通過叢集用戶端送出。

首先參考建立叢集(https://support.huaweicloud.com/qs-mrs/mrs_09_0010.html)購買一個MRS叢集,例如購買MRS 3.1.0版本叢集,該叢集已開啟Kerberos認證。

通過界面送出MapReduce作業

  • 登入MRS管理控制台。
  • 選擇“叢集清單 > 現有叢集”,單擊叢集名稱,進入叢集資訊頁面。
  • 在“概覽”頁簽的基本資訊區域,單擊“IAM使用者同步”右側的“同步”進行IAM使用者同步。
  • 單擊“作業管理”,進入“作業管理”頁簽。單擊“添加”,進入“添加作業”頁面。
雲小課|MRS基礎原理之MapReduce介紹
  • 作業類型:MapReduce

    作業名稱:test01

    執行程式路徑:單擊“HDFS”,并選擇待執行的jar檔案。例如:hdfs://hacluster/tmp/hadoop-mapreduce-examples-xxx.jar (此處以hadoop example程式為例,已提前将jar包上傳至HDFS)

    執行程式參數:teragen 9999999 /tmp/teragen (表示随機生成9999999行的資料,并将執行結果放置在“/tmp/teragen”路徑下)

  • 确認作業配置資訊,單擊“确定”,完成作業的新增,等待執行結果變為“成功”。
雲小課|MRS基礎原理之MapReduce介紹
  • 選擇“檔案管理 > HDFS檔案清單”,在“/tmp/teragen”路徑下檢視到新生成的檔案。
雲小課|MRS基礎原理之MapReduce介紹

通過用戶端CLI送出作業

我們也可以通過叢集的用戶端,以指令行的形式來送出作業。

安裝叢集用戶端,可參考安裝用戶端,例如用戶端安裝目錄為:“/opt/client”。

登入用戶端伺服器,進入用戶端目錄。

cd /opt/client
source bigdata_env
kinit 叢集業務使用者           

執行以下指令送出任務。

yarn jar HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar teragen 9999999 /tmp/teragen           

執行結果顯示“Job xxx completed successfully”表示執行成功。

...
2022-05-26 19:16:02,274 INFO mapreduce.Job: Job job_1653461199536_0001 running in uber mode : false
2022-05-26 19:16:02,275 INFO mapreduce.Job:  map 0% reduce 0%
2022-05-26 19:16:14,453 INFO mapreduce.Job:  map 50% reduce 0%
2022-05-26 19:16:16,471 INFO mapreduce.Job:  map 100% reduce 0%
2022-05-26 19:16:16,482 INFO mapreduce.Job: Job job_1653461199536_0001 completed successfully
2022-05-26 19:16:16,601 INFO mapreduce.Job: Counters: 33
	File System Counters
		FILE: Number of bytes read=0
		FILE: Number of bytes written=587030
		FILE: Number of read operations=0
...           

執行以下指令,檢視“/tmp/teragen”路徑下檔案生成成功。

hdfs dfs -ls /tmp/teragen           
Found 3 items
-rw-r--r--   3 developuser hadoop          0 2022-05-26 19:16 /tmp/teragen/_SUCCESS
-rw-r--r--   3 developuser hadoop     500000 2022-05-26 19:16 /tmp/teragen/part-m-00000
-rw-r--r--   3 developuser hadoop     499900 2022-05-26 19:16 /tmp/teragen/part-m-00001           

使用業務使用者登入FusionInsight Manager界面,進入Yarn服務概覽頁面,單擊“ResourceManager(主機名,主)”,在Yarn的原生界面,也可以檢視該作業的詳細資訊。

雲小課|MRS基礎原理之MapReduce介紹

點選下方關注,第一時間了解華為雲新鮮技術~

華為雲部落格_大資料部落格_AI部落格_雲計算部落格_開發者中心-華為雲

繼續閱讀