9992019 YARN,母系社會的執行架構

2021-09-01 14:48:18 字數 3091 閱讀 7198

最近看了不少yarn的技術資料,每次看都覺得不知所云。無法理解其精髓,今天在航班上突然靈光一現,豁然開朗。然後,又洋洋灑灑在航班清潔袋上鬼畫符,寫下了今天我想跟大家分享的內容。我自己覺得蠻過癮的,也希望大家看著也更過癮。

廢話不多說,上圖!

首先,我鄭重申明:我家庭和睦,我很愛我的孩子,更愛我的老婆(請注意我說話的順序,我很嚴謹)。

解釋一下以上這張圖想要表達的意思。上圖講述的就是乙個家庭生活中經常會遇到的場景:給小孩買東西。

兒子:小名client,提需求是他的強項,自己沒有購買能力,只能將需求提交給他老媽——也就是我老婆。

老婆:小名rm,超級大boss,家庭核心成員,掌門人,擅長垂簾聽政。平日主要負責兩件大事:1、資金管理,家裡的生活開支、事無鉅細、樣樣門兒清(老婆辛苦了)。2、排計畫,手上的資金不能亂花,所以都按計畫行事,杜絕突發情況出現。

老公:小名am,也就是鄙人了。1、擅長執行任務(勞累命,哈哈),需要隨時接受老婆分配的工作任務。2、需要週期性的通過親情**號碼向老婆匯報生活和工作等各方面的情況(多跟上級匯報工作是職場法則)。其他方面就不多說了,都是淚,過……。自己看圖理解!

買東西其實不複雜,具體的處理流程如下:

兒子只負責提需求。老婆主要根據當前家庭的收入支出情況,以及需求的合理性(玩具是否適合這個年齡段、是否具有危險性、是否適合男孩子玩等)來判斷需求是否可以被接納。一旦確定兒子提出的請求是合理的,就把購買商品的任務下發給老公執行。

還有一種情況,如果兒子一次性有多個商品需要購買的話,老婆為了防止老公搞混淆了,也會乙個個的下達單獨的購買指令、由老公來負責逐一執行。老婆在提交購買指令的時候,會詳細說明購買商品的要求。

老公接到老婆下發的指令後,立馬執行任務。並且需要具備基本的判斷能力,比如:哪些商品適合在**購買,哪些商品是適合在京東上購買等等。這個過程需要多加小心,處理的好就是一座豐碑,處理不當的話就會成為乙個墓碑了,極有可能莫名其妙的得罪了老婆。

老公需要週期性的主動關注老婆的**或京東購物車狀態,並且要對購物車中收藏的商品進行細緻的分析,理清楚商品購買的優先順序。確定購買優先順序的方法有以下幾種:

其一:老婆自用的商品優先順序高。如果老婆自用的商品太多,那就需要從時間維度考量,收藏時間很久的,優先順序一定要提高,不然死都不知道怎麼死的;

其二:**低的商品優先順序高,花錢少,就別磨嘰了;

其三:把商品進行分類,比如:衣、食、住、行。然後根據各類產品所佔比例來排優先順序。這種情況下,一般購買量大,為了不影響本月的資金周轉,也建議購買佔比最小的商品類別。這樣花錢,心裡多少會好受一些。

在購買商品的時候,也必須及時跟老婆商討,以免選定的商品不符合要求。

商品到貨後,交給兒子使用。

至此,整個流程結束。

為什麼文章標題要把yarn與母系社會扯在一起呢?

道理很簡單:女人,是適合處理各種對內、對外的事務的,溝通協調是她們的長項。簡單中不乏睿智,強勢中也不缺溫柔。

說點正經的吧。

幾個基本元件介紹:

1、resourcemanager(rm)

任務排程器(scheduler)

每當使用者提交了乙個應用程式就會為這個應用程式產生乙個對應的am,並且這個單獨程序是在其中乙個子節點上執行的。它的主要功能:為應用向rm申請資源,並對task實行排程、與nodemanager通訊以啟動或者停止任務、監控所有任務的運**況,並且在任務失敗的情下,重新為任務申請資源並且重啟任務、負責推測任務的執行、當am向rm註冊後,am可以提供客戶端查詢作業進度資訊等。

3、nodemanager(nm)

nm是每個子節點上的資源和任務管理器,一方面,它會定向通過心跳資訊向rm匯報本節點上的資源使用情況和各個container的運**況;另一方面,它會接收並且處理來自am的container啟動和停止的各種請求。

4、container

container是yarn中對系統資源的抽象,同時它也是系統資源分配的基本單位,它封裝節點上多維度資源,其中包括cpu、記憶體、磁碟、網路等。yarn會為每個任務分配乙個container,並且該任務只能夠使用該container中所描述的資源。container是乙個動態的資源劃分單位,它是根據實際提交的應用程式所需求的資源自動生成的,換句話說,container其裡邊所描述的cpu、記憶體等資源是根據實際應用程式需求而變的。

yarn的工作流程如下:

步驟1,使用者(兒子)向yarn提交應用程式,其中包括使用者程式、相關檔案、啟動am命令、am程式等。

步驟2,rm(老婆)為該應用程式分配第乙個container(任務),並且與container所在的nm(老公)通訊,並且要求該nm在這個container中啟動應用程式對應的am。

步驟3,am(具體購買的某個商品)首先會向rm註冊,這樣使用者才可以直接通過rm檢視到應用程式的執行狀態,然後它為準備為該應用程式的各個任務申請資源,並監控它們的執行狀態直到執行結束,即重複後面4-7步驟。

步驟4,am採用輪詢的方式通過rpc協議(親情號碼)向rm申請和領取資源。

步驟5,一旦am申請到資源後,便會與申請到的container所對應的nm進行通訊,並且要求它在該container中啟動任務。

步驟6,任務啟動。nm為要啟動的任務配置好執行環境,包括環境變數、jar包、二進位制程式等,並且將啟動命令寫在乙個指令碼裡,通過該指令碼執行任務。

步驟7,各個任務通過rpc協議向其對應的am匯報自己的執行狀態和進度,以讓am隨時掌握各個任務的執行狀態,從而可以在任務執行失敗時重啟任務(監控商品快遞的狀態等)。

步驟8,應用程式執行完畢後,其對應的am會向rm通訊,要求登出和關閉自己。

最後,還原一下最開始的架構圖,供各位理解:

不得不說:生活,就是一門高深莫測的藝術!你們承不承認?

Yarn(一)Yarn通俗介紹

apache hadoop yarn yet another resource negotiator,另一種資源協調者 是一種新的 hadoop 資源管理器,它是乙個通用資源管理系統和排程平台,可為上層應用提供統一的資源管理和排程,它的引入為集群在利用率 資源統一管理和資料共享等方面帶來了巨大好處。...

使用yarn 公升級node 安裝 Yarn

由於看雲對於免費使用者的限制愈發嚴苛,本文件已經遷移至語雀。本文件將不做維護。toc 安裝 yarn 什麼是 yarn yarn 對你的 來說是乙個包管理器,你可以通過它使用全世界開發者的 或者分享自己的 yarn 做這些快捷 安全 可靠,所以你不用擔心什麼。通過 yarn 你可以使用其他開發者針對...

YARN篇 基於HA的YARN集群搭建

修改配置如下 vi mapred site.xml mapreduce.framework.namename yarnvalue property vi yarn site.xml yarn.nodemanager.aux servicesname mapreduce shufflevalue pr...