Spark 執行機制
1. Spark執行基本流程
- 構建Spark Application的執行環境(啟動SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)註冊並申請執行Executor資源;
- 資源管理器分配Executor資源並啟動Executor,Executor執行情況將隨著心跳傳送到資源管理器上;
- SparkContext構建成DAG圖,將DAG圖分解成Stage,並把Taskset傳送給Task Scheduler。Executor向SparkContext申請Task,Task Scheduler將Task發放給Executor運行同時SparkContext將應用程式程式碼發放給Executor。
- Task在Executor上執行,執行完畢釋放所有資源
2. Spark執行架構特點
- 每個Application獲取專屬的executor程序,該程序在Application期間一直駐留,並以多執行緒方式執行tasks。
- Spark任務與資源管理器無關,只要能夠獲取executor程序,並能保持相互通訊就可以。
- 提交SparkContext的Client應該靠近Worker節點(執行Executor的節點),最好是在同一個Rack裡,因為Spark程式執行過程中SparkContext和Executor之間有大量的資訊交換;如果想在遠端叢集中執行,最好使用RPC將SparkContext提交給叢集,不要遠離Worker執行SparkContext。
- Task採用了資料本地性和推測執行的優化機制。
Spark 任務排程
1. 任務排程流程圖
各個RDD之間存在著依賴關係,這些依賴關係就形成有向無環圖DAG,DAGScheduler對這些依賴關係形成的DAG進行Stage劃分,劃分的規則很簡單,從後往前回溯,遇到窄依賴加入本stage,遇見寬依賴進行Stage切分。完成了Stage的劃分。DAGScheduler基於每個Stage生成TaskSet,並將TaskSet提交給TaskScheduler。TaskScheduler 負責具體的task排程,最後在Worker節點上啟動task。
2. DAGScheduler
- DAGScheduler對DAG有向無環圖進行Stage劃分。
- 記錄哪個RDD或者 Stage 輸出被物化(快取),通常在一個複雜的shuffle之後,通常物化一下(cache、persist),方便之後的計算。
- 重新提交shuffle輸出丟失的stage(stage內部計算出錯)給TaskScheduler
- 將 Taskset 傳給底層排程器
- – spark-cluster TaskScheduler
- – yarn-cluster YarnClusterScheduler
- – yarn-client YarnClientClusterScheduler
3. TaskScheduler
- 為每一個TaskSet構建一個TaskSetManager 例項管理這個TaskSet 的生命週期
- 資料本地性決定每個Task最佳位置
- 提交 taskset( 一組task) 到叢集執行並監控
- 推測執行,碰到計算緩慢任務需要放到別的節點上重試
- 重新提交Shuffle輸出丟失的Stage給DAGScheduler
相關推薦
Spark學習筆記4——spark執行機制
Spark架構及執行機制 Spark執行架構包括叢集資源管理器(Cluster Manager)、執行作業任務的工作節點(Worker Node)、每個應用的任務控制節點(Driver)和每個工作節點上負責具體任務的執行程序(Executor)。其中,叢集資源管理器可以是S
Spark 執行機制
1. Spark執行基本流程 構建Spark Application的執行環境(啟動SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)註冊並申請執行Executor資源; 資源管理器分配Executor
理解Spark的執行機制
Spark生態系統目前已經非常成熟了,有很多型別的任務都可以使用spark完成,我們先看下spark生態系統的組成: spark的核心主要由3個模組組成: (1)spark core 是spark的最底層的程式設計實現,定義了許多的函式及方法,是所有spark元件
第42課: Spark Broadcast內幕解密:Broadcast執行機制徹底解密、Broadcast原始碼解析、Broadcast最佳實踐
第42課: Spark Broadcast內幕解密:Broadcast執行機制徹底解密、Broadcast原始碼解析、Broadcast最佳實踐Broadcast在機器學習、圖計算、構建日常的各種演算法中到處可見。 Broadcast就是將資料從一個節點發送到其它的節點上;
spark基礎之排程器執行機制簡述
一 概述 驅動程式在啟動的時候,首先會初始化SparkContext,初始化SparkContext的時候,就會建立DAGScheduler、TaskScheduler、SchedulerBacken
【Spark工作機制詳解】 執行機制
Spark主要包括 排程與任務分配、I/O模組、通訊控制模組、容錯模組 、 Shuffle模組。 Spark 按照 ①應用 application ②作業 job ③ stage ④ task 四個層次進行排程,採用經典的FIFO和FAIR等排程演
spark:架構+執行機制的一些總結--50
Hadoop中包含計算框架MapReduce和分散式檔案系統HDFS,spark是一個計算框架 // 中間結果:spark儲存到記憶體、Hadoop儲存到磁碟,spark將執行模型抽象為通用的有向無環圖通用計劃(DAG) //////////////////////////
Spark 中 RDD的執行機制
1. RDD 的設計與執行原理 Spark 的核心是建立在統一的抽象 RDD 之上,基於 RDD 的轉換和行動操作使得 Spark 的各個元件可以無縫進行整合,從而在同一個應用程式中完成大資料計算任務。 在實際應用中,存在許多迭代式演算法和互動式資料探勘工具,這些應用場景的共同之處在於不同計算階段之間會重用中
深入理解JVM_java代碼的執行機制01
功能 存在 oot 對象實例 符號 token 類型 格式 找對象 本章學習重點: 1、Jvm: 如何將java代碼編譯為class文件。 如何裝載class文件及如何執行class文件。 jvm如何進行內存分配和回收。 jvm多線程
【JS】JavaScript引擎的內部執行機制
under scrip str tro blog rip 回調函數 ron span 近期在復習JavaScript,看到setTimeout函數時。想起曾經剛學時,在一本書上看過setTimeout()裏的回調函數執行的間隔時間
【java】之java代碼的執行機制
() alt 分享 str clas not roc 成員 輸入 要在JVM中執行java代碼必須要編譯為class文件,JDK是如何將Java代碼編譯為class文件,這種機制通常被稱為Java源碼編譯機制。 1、JVM定義了class文件的格式,但是並沒有定義如何將ja
python裝飾器執行機制
abc print 前沿 spl ini self. color ret instance 前沿: 首先是看到了單例模型,想不明白 outer中的參數 為什麽能像 global的參數 一樣屹立不倒。 #單例模型 def single_model(cls): in
徹底弄懂 JavaScript 執行機制
函數 大名 定時 意思 技術 渲染 文字 根據 java 本文的目的就是要保證你徹底弄懂javascript的執行機制,如果讀完本文還不懂,可以揍我。 不論你是javascript新手還是老鳥,不論是面試求職,還是日常開發工作,我們經常會遇到這樣的情況:給定的幾行
js --- 執行機制
循環 gpo 可執行 pad loop 同步任務 16px 觸發 pos 1. JS為什麽是單線程的? JS最初被設計用在瀏覽器中,那麽想象一下,如果瀏覽器中的JS是多線程的。 那麽現在有2個進程,process1 process2,由於是多進程的JS,所以他們對同一個
[轉]JS 引擎的執行機制
wan queue 多線程 .html 單擊事件 語句 eve resolve title ------------------------------------------------------ JS 引擎的執行機制 關於JS引擎的執行機制,首先牢記2點:
js為什麽是單線程的?10分鐘了解js引擎的執行機制
容易 等於 bsp -m 深入理解 block 順序 dom 依次 深入理解JS引擎的執行機制 1.JS為什麽是單線程的? 為什麽需要異步? 單線程又是如何實現異步的呢? 2.JS中的event loop(1) 3.JS中的event loop(2) 4.說說s
js執行機制
分發 sleep 代碼執行 過程 rom spa set 是否 引擎 1. 關於javascript js是一門單線程語言,一切js版的‘多線程’都是用單線程模擬起來的。 2. js事件循環 將任務分為2類:同步任務、異步任務 同步任務進入主線程,異步任務
深入理解Dalvik虛擬機- 解釋器的執行機制
util dlink stat counter before expose 加鎖 enter 機制 Dalvik的指令運行是解釋器+JIT的方式,解釋器就
Spark執行流程(轉)
dep 相關 集群管理 十個 多個 運行原理 啟動 因此 分享圖片 原文地址:http://blog.jobbole.com/102645/ 我們使用spark-submit提交一個Spark作業之後,這個作業就會啟動一個對應的Driver進程。
淺析JS異步執行機制
一個隊列 http請求 調度 等待 __name__ 服務端 nco sta req 前言 JS異步執行機制具有非常重要的地位,尤其體現在回調函數和事件等方面。本文將針對JS異步執行機制進行一個簡單的分析。 從一份代碼講起 下面是兩個經典的JS定時執行函數,這兩個函數的區別