2021年大數據Spark(七):應用架構基本了解

      網友投稿 753 2022-05-29

      Spark 應用架構-了解

      Driver 和Executors

      從圖中可以看到Spark Application運行到集群上時,由兩部分組成:Driver Program和Executors。

      第一、Driver Program

      相當于AppMaster,整個應用管理者,負責應用中所有Job的調度執行;

      2021年大數據Spark(七):應用架構基本了解

      運行JVM Process,運行程序的MAIN函數,必須創建SparkContext上下文對象;

      一個SparkApplication僅有一個;

      第二、Executors

      相當于一個線程池,運行JVM Process,其中有很多線程,每個線程運行一個Task任務,一個Task運行需要1 Core CPU,所有可以認為Executor中線程數就等于CPU Core核數;

      一個Spark Application可以有多個,可以設置個數和資源信息;

      Driver?Program是用戶編寫的數據處理邏輯,這個邏輯中包含用戶創建的SparkContext。SparkContext 是用戶邏輯與Spark集群主要的交互接口,它會和Cluster Manager交互,包括向它申請計算資源等。 Cluster Manager負責集群的資源管理和調度,現在支持Standalone、Apache Mesos和Hadoop的 YARN。Worker Node是集群中可以執行計算任務的節點。 Executor是在一個Worker Node上為某應用啟動的一個進程,該進程負責運行任務,并且負責將數據存在內存或者磁盤上。Task 是被送到某個Executor上的計算單元,每個應用都有各自獨立的 Executor,計算最終在計算節點的 Executor中執行。

      用戶程序從最開始的提交到最終的計算執行,需要經歷以下幾個階段:

      1)、用戶程序創建 SparkContext 時,新創建的 SparkContext 實例會連接到 ClusterManager。 Cluster Manager 會根據用戶提交時設置的 CPU 和內存等信息為本次提交分配計算資源,啟動 Executor。

      2)、Driver會將用戶程序劃分為不同的執行階段Stage,每個執行階段Stage由一組完全相同Task組成,這些Task分別作用于待處理數據的不同分區。在階段劃分完成和Task創建后, Driver會向Executor發送 Task;

      3)、Executor在接收到Task后,會下載Task的運行時依賴,在準備好Task的執行環境后,會開始執行Task,并且將Task的運行狀態匯報給Driver;

      4)、Driver會根據收到的Task的運行狀態來處理不同的狀態更新。 Task分為兩種:一種是Shuffle Map Task,它實現數據的重新洗牌,洗牌的結果保存到Executor 所在節點的文件系統中;另外一種是Result Task,它負責生成結果數據;

      5)、Driver 會不斷地調用Task,將Task發送到Executor執行,在所有的Task 都正確執行或者超過執行次數的限制仍然沒有執行成功時停止;

      Job、DAG和Stage

      還可以發現在一個Spark Application中,包含多個Job,每個Job有多個Stage組成,每個Job執行按照DAG圖進行的。

      其中每個Stage中包含多個Task任務,每個Task以線程Thread方式執行,需要1Core CPU。

      可以看到Spark為應用程序提供了非常詳盡的統計頁面,每個應用的Job和Stage等信息都可以在這里查看到。通過觀察應用詳情頁的各個信息,對進一步優化程序,調整瓶頸有著重要作用,后期綜合項目案例詳細講解。

      Spark Application程序運行時三個核心概念:Job、Stage、Task,說明如下:

      Task:被分配到各個 Executor 的單位工作內容,它是 Spark 中的最小執行單位,一

      般來說有多少個 Paritition(物理層面的概念,即分支可以理解為將數據劃分成不同

      部分并行處理),就會有多少個 Task,每個 Task 只會處理單一分支上的數據。

      Job:由多個 Task 的并行計算部分,一般 Spark 中的 action 操作(如 save、collect,后面進一步說明),會生成一個 Job。

      Stage:Job 的組成單位,一個 Job 會切分成多個 Stage,Stage 彼此之間相互依賴順序執行,而每個 Stage 是多個 Task 的集合,類似 map 和 reduce stage。

      spark 大數據

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:面向過程和面向對象
      下一篇:Java工廠模式
      相關文章
      亚洲二区在线视频| 亚洲理论电影在线观看| WWW亚洲色大成网络.COM | 久久久久久久尹人综合网亚洲| 无码天堂亚洲国产AV| 亚洲精品成a人在线观看夫| youjizz亚洲| 国产精品亚洲专区在线观看| 日韩亚洲AV无码一区二区不卡| 亚洲精品自产拍在线观看| 国产成人亚洲精品狼色在线| 亚洲精品亚洲人成在线观看下载 | 久久水蜜桃亚洲AV无码精品| 亚洲av日韩综合一区久热| 亚洲αⅴ无码乱码在线观看性色| 狠狠色伊人亚洲综合网站色| 久久精品国产96精品亚洲| 亚洲电影一区二区| 亚洲男女性高爱潮网站| 亚洲1234区乱码| 亚洲一区二区观看播放| 日本亚洲欧美色视频在线播放| 在线观看亚洲专区| 亚洲日韩精品无码专区网站| 亚洲日韩中文无码久久| 亚洲AV无码成人专区片在线观看 | 亚洲日产乱码一二三区别| 亚洲国产综合AV在线观看| 国产产在线精品亚洲AAVV| 国产精品亚洲视频| 亚洲产国偷V产偷V自拍色戒| 久久亚洲国产成人精品性色| 亚洲精品中文字幕乱码影院| 亚洲二区在线视频| 亚洲AV无码XXX麻豆艾秋| 亚洲精品国产高清不卡在线| 国产成人A人亚洲精品无码| 亚洲视频在线观看网址| 亚洲最大天堂无码精品区| 少妇亚洲免费精品| 国产亚洲精品va在线|