大數(shù)據(jù)技術基礎教程 課件 第6章 分布式計算框架MapReduce_第1頁
大數(shù)據(jù)技術基礎教程 課件 第6章 分布式計算框架MapReduce_第2頁
大數(shù)據(jù)技術基礎教程 課件 第6章 分布式計算框架MapReduce_第3頁
大數(shù)據(jù)技術基礎教程 課件 第6章 分布式計算框架MapReduce_第4頁
大數(shù)據(jù)技術基礎教程 課件 第6章 分布式計算框架MapReduce_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章分布式計算框架MapReduce《大數(shù)據(jù)技術基礎教程》學習目標/Target了解MapReduce簡介

理解MapReduce計算模型理解MapReduce工作原理掌握MapReduce編程實踐章節(jié)概述/

SummaryMapReduce是Hadoop的一個核心組成框架,使用該框架編寫的應用程序能夠以一種可靠的、容錯的方式并行處理大型集群(數(shù)千個節(jié)點)上的大量數(shù)據(jù)(TB級別以上),也可以對大數(shù)據(jù)進行加工、挖掘和優(yōu)化等處理。目錄/Contents010203MapReduce簡介MapReduce計算模型MapReduce工作原理04MapReduce編程實踐MapReduce簡介11.1MapReduce簡介Hadoop的MapReduce核?技術起源于?歌在2004年發(fā)表的關于MapReduce系統(tǒng)的論?介紹。Hadoop實現(xiàn)了Google的MapReduce編程模型,提供了簡單易用的編程接口,也提供了它自己的分布式文件系統(tǒng)HDFS,與Google不同的是,Hadoop是開源的,任何人都可以使用這個框架來進行并行編程。MapReduce將復雜的、運行于大規(guī)模集群上的并行計算過程高度地抽象到了兩個函數(shù):Map和Reduce。概念“Map(映射)”和“Reduce(歸約)”,以及它們的主要思想,都是從函數(shù)式編程語言里借來的,同時包含了從矢量編程語言里借來的特性。MapReduce計算模型22.1MapReduce計算模型在Hadoop中,用于執(zhí)行計算任務(MapReduce任務)的機器有兩個角色:一個是JobTracker,一個是TaskTracker,前者用于管理和調度工作,后者用于執(zhí)行工作。每次計算任務都可以分為兩個階段,Map階段和Reduce階段。其中,Map階段接收一組鍵值對模式<key,Value>的輸入并產生同樣是鍵值對模式的另一個或一批<key,Value>的中間輸出;Reduce階段負責接收Map產生的中間輸出<key,Value>,然后對這個結果進行處理并輸出結果。2.1MapReduce計算模型MapReduce工作原理33.11.x架構MapReduce1.x采用Master/Slave架構,由全局唯一的Jobtracker和多個TaskTacker組成,并且在Client中提供一系列的api供編程和管理使用。3.11.x架構MapReduce的完整流程為:第一步:讀取文件,解析成為<key,value>對;第二步:自定義map邏輯接收<k1,v1>,轉換成為新的<k2,v2>輸出;第三步:分區(qū)Partition。將相同key的數(shù)據(jù)發(fā)送到同一個reduce里面去;第四步:排序,map階段分區(qū)內的數(shù)據(jù)進行排序;第五步:combiner。調優(yōu)過程,對數(shù)據(jù)進行map階段的合并;第六步:將環(huán)形緩沖區(qū)的數(shù)據(jù)進行溢寫到本地磁盤小文件;第七步:歸并排序,對本地磁盤溢寫小文件進行歸并排序;3.11.x架構MapReduce的完整流程為:第九步:reduceTask啟動線程拉取屬于自己分區(qū)的數(shù)據(jù);第十步:從mapTask拉取回來的數(shù)據(jù)繼續(xù)進行歸并排序;第十一步:進行groupingComparator分組操作;第十二步:調用reduce邏輯,寫出數(shù)據(jù);第十三步:通過outputFormat進行數(shù)據(jù)輸出,寫到文件,一個reduceTask對應一個文件。3.22.x架構(YARN架構)3.22.x架構(YARN架構)①用戶編寫客戶端應用程序,向YARN提交應用程序,提交的內容包括ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。②YARN中的ResourceManager負責接收和處理來自客戶端的請求。接到客戶端應用程序請求后,ResourceManager里面的調度器會為應用程序分配一個容器。同時,ResourceManager的應用程序管理器會與該容器所在的NodeManager通信,為該應用程序在該容器中啟動一個ApplicationMaster(即圖6-5中的“MRAppMstr”)。③ApplicationMaster被創(chuàng)建后會首先向ResourceManager注冊,從而使得用戶可以通過ResourceManager來直接查看應用程序的運行狀態(tài)。接下來的步驟4~7是具體的應用程序執(zhí)行步驟。3.22.x架構(YARN架構)④ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請資源。⑤ResourceManager以“容器”的形式向提出申請的ApplicationMaster分配資源,一旦ApplicationMaster申請到資源后,就會與該容器所在的NodeManager進行通信,要求它啟動任務。⑥當ApplicationMaster要求容器啟動任務時,它會為任務設置好運行環(huán)境(包括環(huán)境變量、JAR包、二進制程序等),然后將任務啟動命令寫到一個腳本中,最后通過在容器中運行該腳本來啟動任務。⑦各個任務通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,讓ApplicationMaster可以隨時掌握各個任務的運行狀態(tài),從而可以在任務失敗時重新啟動任務。3.22.x架構(YARN架構)⑧應用程序運行完成后,ApplicationMaster向ResourceManager的應用程序管理器注銷并關閉自己。若ApplicationMaster因故失敗,ResourceManager中的應用程序管理器會監(jiān)測到失敗的情形,然后將其重新啟動,直到所有的任務執(zhí)行完畢。MapReduce編程實踐44.1MapReduce程序編寫步驟(1)Maven項目的pom.xml文件的配置(2)新建Mapper類4.1MapReduce程序編寫步驟(3)新建Reducer類(4)新建程序執(zhí)行主類(5)提交程序到集群4.2MapReduce編寫單詞統(tǒng)計程序4.2MapReduce編寫單詞統(tǒng)計程序4.2MapReduce編寫單詞統(tǒng)計程序4.2MapReduce編寫單詞統(tǒng)計程序4.2MapReduce編寫單詞統(tǒng)計程序4.2MapReduce編寫單詞統(tǒng)計程序本章小結本章主要介紹了分布式計算框架MapReduce,它是Hadoop的一個核心組成框架,概念“Map(映射)”和“Reduce(歸約)”以及它們的主要思想,都是從函數(shù)式編程語言里借用而來的,同時也包含了從矢量編程語言里借來的特性。MapReduce極大地方便了編程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論