无码人妻丰满熟妇奶水区码,麻豆一区区三,亚洲日韩欧美精品综合,亚洲无码地址

MapReduce開發(fā)運(yùn)行的精簡(jiǎn)原理(mapreduce開發(fā)流程)

作者:黑馬程序員
鏈接:https://zhuanlan.zhihu.com/p/81237437
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

簡(jiǎn)單介紹

相信關(guān)于Hadoop中MapReduce的相關(guān)文章會(huì)很多,這里只簡(jiǎn)單介紹一下MapReduce的相關(guān)知識(shí)。

Hadoop的MapReduce來源于Google公司的三篇論文中的MapReduce,其核心思想是“分而治之”

Map負(fù)責(zé)“分”,即把復(fù)雜的任務(wù)分解為若干個(gè)“簡(jiǎn)單的任務(wù)”來并行處理??梢赃M(jìn)行拆分的前提是這些小任務(wù)可以并行計(jì)算,彼此間幾乎沒有依賴關(guān)系。

Reduce負(fù)責(zé)“合”,即對(duì)map階段的結(jié)果進(jìn)行全局匯總。

現(xiàn)階段MapReduce一般運(yùn)行在Hadoop2.x版本的yarn資源平臺(tái)上,具體運(yùn)行過程后面會(huì)有詳細(xì)說明。

MapReduce編程規(guī)范

MapReduce 的開發(fā)一共有八個(gè)步驟, 其中 Map 階段分為 2 個(gè)步驟,Shuffle 階段 4 個(gè)步驟,Reduce 階段分為 2 個(gè)步驟

Map 階段 2 個(gè)步驟

1)設(shè)置 InputFormat 類, 將數(shù)據(jù)切分為 Key-Value(K1和V1) 對(duì), 輸入到第二步

2)自定義 Map 邏輯, 將第一步的結(jié)果轉(zhuǎn)換成另外的 Key-Value(K2和V2) 對(duì), 輸出結(jié)果

Shuffle 階段 4 個(gè)步驟

3)對(duì)輸出的 Key-Value 對(duì)進(jìn)行分區(qū)

4)對(duì)不同分區(qū)的數(shù)據(jù)按照相同的 Key 排序

5)(可選) 對(duì)分組過的數(shù)據(jù)初步規(guī)約, 降低數(shù)據(jù)的網(wǎng)絡(luò)拷貝

6)對(duì)數(shù)據(jù)進(jìn)行分組, 相同 Key 的 Value 放入一個(gè)集合中

Reduce 階段 2 個(gè)步驟

7)對(duì)多個(gè) Map 任務(wù)的結(jié)果進(jìn)行排序以及合并, 編寫 Reduce 函數(shù)實(shí)現(xiàn)自己的邏輯, 對(duì)輸入的 Key-Value 進(jìn)行處理, 轉(zhuǎn)為新的 Key-Value(K3和V3)輸出

8)設(shè)置 OutputFormat 處理并保存 Reduce 輸出的 Key-Value 數(shù)據(jù)

MapReduce開發(fā)運(yùn)行的精簡(jiǎn)原理(mapreduce開發(fā)流程)

MapReduce的步驟圖

yarn資源調(diào)度

yarn是hadoop集群當(dāng)中的資源管理系統(tǒng)模塊,從hadoop2.0開始引入yarn模塊,yarn可為各類計(jì)算框架提供資源的管理和調(diào)度,主要用于管理集群當(dāng)中的資源(主要是服務(wù)器的各種硬件資源,包括CPU,內(nèi)存,磁盤,網(wǎng)絡(luò)IO等)以及調(diào)度運(yùn)行在yarn上面的各種任務(wù)。

相比于hadoop1.x版本,yarn核心出發(fā)點(diǎn)是為了分離資源管理與作業(yè)監(jiān)控,實(shí)現(xiàn)分離的做法是擁有一個(gè)全局的資源管理ResourceManager(RM),以及每個(gè)應(yīng)用程序?qū)?yīng)一個(gè)的應(yīng)用管理器ApplicationMaster(AM)。

總結(jié)一句話就是說:yarn主要就是為了調(diào)度資源,管理任務(wù)。

YARN總體上是Master/Slave結(jié)構(gòu),主要由ResourceManager、NodeManager、 ApplicationMaster和Container等幾個(gè)組件構(gòu)成。

ResourceManager(RM) 負(fù)責(zé)處理客戶端請(qǐng)求,對(duì)各NM上的資源進(jìn)行統(tǒng)一管理和調(diào)度。給ApplicationMaster分配空閑的Container 運(yùn)行并監(jiān)控其運(yùn)行狀態(tài)。主要由兩個(gè)組件構(gòu)成:調(diào)度器和應(yīng)用程序管理器:

調(diào)度器(Scheduler):調(diào)度器根據(jù)容量、隊(duì)列等限制條件,將系統(tǒng)中的資源分配給各個(gè)正在運(yùn)行的應(yīng)用程序。調(diào)度器僅根據(jù)各個(gè)應(yīng)用程序的資源需求進(jìn)行資源分配,而資源分配單位是Container。Shceduler不負(fù)責(zé)監(jiān)控或者跟蹤應(yīng)用程序的狀態(tài)??傊?,調(diào)度器根據(jù)應(yīng)用程序的資源要求,以及集群機(jī)器的資源情況,為應(yīng)用程序分配封裝在Container中的資源。

應(yīng)用程序管理器(Applications Manager):應(yīng)用程序管理器負(fù)責(zé)管理整個(gè)系統(tǒng)中所有應(yīng)用程序,包括應(yīng)用程序提交、與調(diào)度器協(xié)商資源以啟動(dòng)ApplicationMaster 、監(jiān)控ApplicationMaster運(yùn)行狀態(tài)并在失敗時(shí)重新啟動(dòng)等,跟蹤分給的Container的進(jìn)度、狀態(tài)也是其職責(zé)。

NodeManager (NM) NodeManager 是每個(gè)節(jié)點(diǎn)上的資源和任務(wù)管理器。它會(huì)定時(shí)地向ResourceManager匯報(bào)本節(jié)點(diǎn)上的資源使用情況和各個(gè)Container的運(yùn)行狀態(tài);同時(shí)會(huì)接收并處理來自ApplicationMaster 的Container 啟動(dòng)/停止等請(qǐng)求。

ApplicationMaster (AM): 用戶提交的應(yīng)用程序均包含一個(gè)ApplicationMaster ,負(fù)責(zé)應(yīng)用的監(jiān)控,跟蹤應(yīng)用執(zhí)行狀態(tài),重啟失敗任務(wù)等。ApplicationMaster是應(yīng)用框架,它負(fù)責(zé)向ResourceManager協(xié)調(diào)資源,并且與NodeManager協(xié)同工作完成Task的執(zhí)行和監(jiān)控。

Container: Container是YARN中的資源抽象,它封裝了某個(gè)節(jié)點(diǎn)上的多維度資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等,當(dāng)ApplicationMaster向ResourceManager申請(qǐng)資源時(shí),ResourceManager為ApplicationMaster 返回的資源便是用Container 表示的。

yarn的架構(gòu)和工作流程

MapReduce開發(fā)運(yùn)行的精簡(jiǎn)原理(mapreduce開發(fā)流程)

步驟分析:

  1. 客戶端通過命令(hadoop jar xxx.jar)提交上傳任務(wù)到主節(jié)點(diǎn)ResourceManager(RM)中的ApplicationManager進(jìn)程
  2. 主節(jié)點(diǎn)RM判斷集群狀態(tài),選擇一臺(tái)NodeManager(NM),開啟一塊資源Container,用來開啟AppMaster進(jìn)程
  3. AppMaster進(jìn)程獲取RM接收的任務(wù)請(qǐng)求,進(jìn)行任務(wù)分配
  4. AppMaster根據(jù)任務(wù)情況向RM中的ResourceScheduler索要資源分配方案
  5. AppMaster根據(jù)資源分配方案找到到各個(gè)NodeManager從節(jié)點(diǎn)
  6. 在從節(jié)點(diǎn)上開啟資源Container,并運(yùn)行任務(wù)Task
  7. AppMaster獲取各個(gè)Task上傳的任務(wù)執(zhí)行進(jìn)度和結(jié)果
  8. AppMaster將任務(wù)執(zhí)行的結(jié)果返回給ApplicationManager

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2023年5月14日 上午10:28
下一篇 2023年5月14日 上午10:44

相關(guān)推薦

  • [單位角落]中國科學(xué)技術(shù)交流中心(中國科學(xué)技術(shù)交流中心是事業(yè)單位嗎)

    本系列旨在介紹處于輿論焦點(diǎn)的,以及不為人知的企事業(yè)單位。此舉既是為了讓這些默默為大家做奉獻(xiàn)的隊(duì)伍有展示的空間,也讓大家能更好的對(duì)他們進(jìn)行監(jiān)督。希望大家予以關(guān)注。 本次介紹的,是中國…

    科研百科 2024年4月15日
    75
  • 云南勘設(shè)項(xiàng)目管理系統(tǒng)

    云南勘設(shè)項(xiàng)目管理系統(tǒng):提升項(xiàng)目管理水平的關(guān)鍵 云南勘設(shè)項(xiàng)目管理系統(tǒng)是云南勘設(shè)公司為提升項(xiàng)目管理水平而開發(fā)的一款重要軟件系統(tǒng)。通過這款軟件系統(tǒng),云南勘設(shè)公司能夠更好地管理項(xiàng)目,提高項(xiàng)…

    科研百科 2024年12月9日
    8
  • 科研項(xiàng)目是學(xué)術(shù)成果嗎

    科研項(xiàng)目是學(xué)術(shù)成果嗎 科研項(xiàng)目是學(xué)術(shù)成果的重要組成部分。它們是由研究人員花費(fèi)大量時(shí)間和精力進(jìn)行研究而得出的成果,可以被證明是對(duì)某個(gè)領(lǐng)域的重要貢獻(xiàn)??蒲许?xiàng)目可以是單個(gè)研究項(xiàng)目,也可以…

    科研百科 2025年4月17日
    2
  • 醫(yī)學(xué)科研項(xiàng)目報(bào)銷范圍

    醫(yī)學(xué)科研項(xiàng)目報(bào)銷范圍為醫(yī)學(xué)研究是一項(xiàng)重要的開支,對(duì)于許多醫(yī)學(xué)研究機(jī)構(gòu)和個(gè)人來說是必要的。然而,由于醫(yī)學(xué)科研項(xiàng)目報(bào)銷的范圍和標(biāo)準(zhǔn)在不同的國家和地區(qū)可能有所不同,因此本文將討論醫(yī)學(xué)科研…

    科研百科 2025年4月2日
    6
  • 項(xiàng)目經(jīng)費(fèi)請(qǐng)示范文(項(xiàng)目經(jīng)費(fèi)審批表)

    項(xiàng)目經(jīng)費(fèi)審批表項(xiàng)目經(jīng)費(fèi)審批表法院審查最近的一項(xiàng)大型“夏季監(jiān)獄”判處判決書中明確根據(jù)對(duì)院規(guī)定,每位被告都向東向西向西的中心交納為“立事審判制”,領(lǐng)導(dǎo)班子成員上報(bào)事宜,違規(guī)行為需依法追…

    科研百科 2024年7月31日
    3
  • inurlsoft

    soft是一種軟件,能夠讓人們更輕松地完成各種任務(wù)。它不同于傳統(tǒng)的桌面軟件,它更多的是提供了一個(gè)平臺(tái),讓人們可以在其中創(chuàng)建自己的應(yīng)用程序。soft軟件不僅功能強(qiáng)大,而且使用起來也非…

    科研百科 2024年10月15日
    1
  • 手術(shù)室科研題目有哪些(手術(shù)室科研項(xiàng)目都有哪些名稱呢)

    手術(shù)室科研項(xiàng)目都有哪些名稱呢? 手術(shù)室科研項(xiàng)目是醫(yī)學(xué)領(lǐng)域中一項(xiàng)非常重要的任務(wù),其目的是通過在手術(shù)中進(jìn)行科學(xué)研究,提高手術(shù)的安全性和效果。隨著科學(xué)技術(shù)的不斷發(fā)展,手術(shù)室科研項(xiàng)目的名稱…

    科研百科 2024年8月3日
    5
  • 合同管理必要性

    合同管理必要性 合同管理是一種重要的管理活動(dòng),可以幫助企業(yè)確保合同的有效性和合法性,并保護(hù)企業(yè)的經(jīng)濟(jì)利益。在現(xiàn)代社會(huì),合同數(shù)量日益增多,合同管理已經(jīng)成為企業(yè)必須面對(duì)的挑戰(zhàn)。 合同管…

    科研百科 2024年9月20日
    5
  • 如何操作政府項(xiàng)目管理系統(tǒng)

    如何操作政府項(xiàng)目管理系統(tǒng) 政府項(xiàng)目管理系統(tǒng)是一種用于管理和監(jiān)督政府項(xiàng)目的軟件工具,能夠幫助政府和企業(yè)更好地組織和管理項(xiàng)目,提高效率和準(zhǔn)確性。本文將介紹如何操作政府項(xiàng)目管理系統(tǒng)。 1…

    科研百科 2025年1月16日
    2
  • 科研項(xiàng)目勞務(wù)協(xié)議內(nèi)容

    科研項(xiàng)目勞務(wù)協(xié)議 隨著科技的不斷發(fā)展,科研項(xiàng)目的開展越來越廣泛。在科研項(xiàng)目中,勞務(wù)合同的簽訂是必不可少的一項(xiàng)環(huán)節(jié)。一份好的勞務(wù)協(xié)議不僅可以保證項(xiàng)目進(jìn)展的順利進(jìn)行,還可以為雙方提供法…

    科研百科 2025年3月24日
    3