Spark on yarn、Spark基礎認知

一籍胯、YARN是集群的資源管理系統(tǒng)

1、ResourceManager:負責整個集群的資源管理和分配声离。
2芒炼、ApplicationMaster:YARN中每個Application對應一個AM進程,負責與RM協(xié)商獲取資源术徊,獲取資源后告訴NodeManager為其分配并啟動Container本刽。
3、NodeManager:每個節(jié)點的資源和任務管理器赠涮,負責啟動/停止Container子寓,并監(jiān)視資源使用情況。
4笋除、Container:YARN中的抽象資源斜友。

二、 SPARK的概念

1垃它、Driver:和ClusterManager通信鲜屏,進行資源申請、任務分配并監(jiān)督其運行狀況等国拇。運行程序的main方法洛史,創(chuàng)建spark context對象。具體的:1)driver是作業(yè)的主進程酱吝,具有main函數(shù)也殖,并且有SparkContext的實例,是程序的人口點务热;2)功能:負責向集群申請資源忆嗜,向master注冊信息己儒,負責了作業(yè)的調度,捆毫,負責作業(yè)的解析闪湾、生成Stage并調度Task到Executor上。包括DAGScheduler冻璃,TaskScheduler响谓。
2、ClusterManager:這里指YARN省艳。
3、DAGScheduler:把spark作業(yè)轉換成Stage的DAG圖嫁审。
4跋炕、TaskScheduler:把Task分配給具體的Executor。
5律适、一個application對應一個sparkcontext辐烂,app中存在多個job,每個job在不同partition上的執(zhí)行稱為task捂贿。
6纠修、client:用戶提交程序的入口。
7厂僧、worker: worker就類似于包工頭扣草。主要功能:管理當前節(jié)點內存,CPU的使用狀況颜屠,接收master分配過來的資源指令辰妙,通過ExecutorRunner啟動程序分配任務。注意:1)worker不會匯報當前信息給master甫窟,worker心跳給master主要只有workid密浑,它不會發(fā)送資源信息以心跳的方式給mater,master分配的時候就知道work粗井,只有出現(xiàn)故障的時候才會發(fā)送資源尔破。2)worker不會運行代碼,具體運行的是Executor是可以運行具體appliaction寫的業(yè)務邏輯代碼浇衬,操作代碼的節(jié)點懒构,它不會運行程序的代碼的。

三径玖、 SPARK on YARN

1. yarn on cluster

(1)ResourceManager接到請求后在集群中選擇一個NodeManager分配Container痴脾,并在Container中啟動ApplicationMaster進程;
(2)在ApplicationMaster進程中初始化sparkContext梳星;
(3)ApplicationMaster向ResourceManager申請到Container后赞赖,通知NodeManager在獲得的Container中啟動excutor進程滚朵;
(4)sparkContext分配Task給excutor,excutor發(fā)送運行狀態(tài)給ApplicationMaster前域。


yarn_on_cluster.jpg

2. yarn on client

(1)ResourceManager接到請求后在集群中選擇一個NodeManager分配Container辕近,并在Container中啟動ApplicationMaster進程;
(2)driver進程運行在client中匿垄,并初始化sparkContext移宅;
(3)sparkContext初始化完后與ApplicationMaster通訊,通過ApplicationMaster向ResourceManager申請Container椿疗,ApplicationMaster通知NodeManager在獲得的Container中啟動excutor進程漏峰;
(4)sparkContext分配Task給excutor,excutor發(fā)送運行狀態(tài)給driver届榄。


yarn on client.jpg

3. 區(qū)別

  1. 它們的區(qū)別就是ApplicationMaster的區(qū)別:yarn-cluster中ApplicationMaster不僅負責申請資源浅乔,并負責監(jiān)控Task的運行狀況,因此可以關掉client铝条;而yarn-client中ApplicationMaster僅負責申請資源靖苇,由client中的driver來監(jiān)控調度Task的運行,因此不能關掉client班缰。
  2. client適合調試贤壁,dirver運行在客戶端; cluster適合生產,driver運行在集群子節(jié)點埠忘,具有容錯功能

四脾拆、 job stage task

  1. job : A job is triggered by an action, like count() or saveAsTextFile(). Click on a job to see information about the stages of tasks inside it. 所謂一個 job,就是由一個 rdd 的 action 觸發(fā)的動作给梅,可以簡單的理解為假丧,當你需要執(zhí)行一個 rdd 的 action 的時候,會生成一個 job动羽。
  2. stage : stage 是一個 job 的組成單位包帚,就是說,一個 job 會被切分成 1 個或 1 個以上的 stage运吓,然后各個 stage 會按照執(zhí)行順序依次執(zhí)行渴邦。由job->stage,其劃分原則是從寬依賴分隔拘哨。因為從寬依賴谋梭,所以子RDD的partition會依賴多個父RDD的partition,有些可能就沒有準備好倦青,所以進行劃分處理瓮床。
  3. task : A unit of work within a stage, corresponding to one RDD partition。即 stage 下的一個任務執(zhí)行單元,一般來說隘庄,一個 rdd 有多少個 partition踢步,就會有多少個 task,因為每一個 task 只是處理一個 partition 上的數(shù)據(jù)丑掺。
  4. spark作業(yè)提交流程:
    Spark任務會根據(jù)RDD之間的依賴關系获印,形成一個DAG有向無環(huán)圖,DAG會提交給DAGScheduler街州,DAGScheduler會把DAG劃分相互依賴的多個stage兼丰,劃分stage的依據(jù)就是RDD之間的寬窄依賴。遇到寬依賴就劃分stage,每個stage包含一個或多個task任務唆缴。然后將這些task以taskSet的形式提交給TaskScheduler運行鳍征。
  5. stage切割規(guī)則:從后往前,遇到寬依賴就切割stage


    stage_task.png
  6. spark工作機制:
    答:用戶在client端提交作業(yè)后面徽,會由Driver運行main方法并創(chuàng)建spark context上下文蟆技。
    執(zhí)行add算子,形成dag圖輸入dagscheduler斗忌,按照add之間的依賴關系劃分stage輸入task scheduler。 task scheduler會將stage劃分為task set分發(fā)到各個節(jié)點的executor中執(zhí)行旺聚。

五织阳、 RDD之間的寬依賴、窄依賴

  1. 窄依賴:表示父親 RDD 的一個分區(qū)最多被子 RDD 一個分區(qū)所依賴砰粹。有shuffle產生唧躲,父RDD的一個分區(qū)的數(shù)據(jù)去到子RDD的不同分區(qū)里
    例如:map filter union
  2. 寬依賴:表示父親 RDD 的一個分區(qū)可以被子 RDD 的多個子分區(qū)所依賴。沒有shuffle產生碱璃,父的一個分區(qū)數(shù)據(jù)到了子RDD的一個分區(qū)
    例如:groupByKey group sort
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末弄痹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嵌器,更是在濱河造成了極大的恐慌肛真,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爽航,死亡現(xiàn)場離奇詭異蚓让,居然都是意外死亡,警方通過查閱死者的電腦和手機讥珍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門历极,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衷佃,你說我怎么就攤上這事趟卸。” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵锄列,是天一觀的道長图云。 經常有香客問我,道長右蕊,這世上最難降的妖魔是什么琼稻? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮饶囚,結果婚禮上帕翻,老公的妹妹穿的比我還像新娘。我一直安慰自己萝风,他們只是感情好嘀掸,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著规惰,像睡著了一般睬塌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歇万,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天揩晴,我揣著相機與錄音迎吵,去河邊找鬼散址。 笑死给郊,一個胖子當著我的面吹牛串绩,可吹牛的內容都是我干的垃瞧。 我是一名探鬼主播粹湃,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼壹将,長吁一口氣:“原來是場噩夢啊……” “哼府蛇!你這毒婦竟也來了刹前?” 一聲冷哼從身側響起泳赋,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喇喉,沒想到半個月后祖今,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡轧飞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年衅鹿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片过咬。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡大渤,死狀恐怖,靈堂內的尸體忽然破棺而出掸绞,到底是詐尸還是另有隱情泵三,我是刑警寧澤耕捞,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站烫幕,受9級特大地震影響俺抽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜较曼,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一磷斧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捷犹,春花似錦弛饭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至枪孩,卻和暖如春憔晒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔑舞。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工拒担, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攻询。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓澎蛛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜕窿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容

  • 零呆馁、序言 角色:分布式的框架(比如hdfs桐经、yarn、zookeeper等)大多都會設計成不同的幾套程序扮演不同的...
    曾二爺耶閱讀 4,456評論 0 4
  • kerberos 介紹 閱讀本文之前建議先預讀下面這篇博客kerberos認證原理---講的非常細致浙滤,易懂 Ker...
    PunyGod閱讀 20,027評論 7 29
  • 本文主要分以下章節(jié): 一阴挣、Spark專業(yè)術語定義 二、 Spark的任務提交機制 一纺腊、Spark專業(yè)術語定義 1畔咧、...
    小豬Harry閱讀 320評論 0 1
  • Spark 運行模式分類 本地模式; standalone模式揖膜; spark on yarn 模式誓沸,又分未yarn...
    李小李的路閱讀 9,036評論 0 6
  • 窗外雨打蕉葉,吹皺一池綠水壹粟, 語重心長道相思拜隧,一床愁緒難眠。 春影如舊人空瘦,夜來風雨角聲寒洪添。 雨后彩霽聽虹垦页,初歇...
    半道殘陽鋪水中閱讀 354評論 15 8