五 standalone執行模式

2022-03-14 06:25:28 字數 1296 閱讀 7697

在上文中我們知道spark的集群主要有三種執行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什麼是standalone執行模式,它的執行流程是怎麼樣的。

standalone模式,是spark自己實現的,它是乙個資源排程框架。這裡我們要關注這個框架的三個節點:

1)client

2)master

3)worker

spark應用程式有乙個driver驅動,driver可以執行在client上也可以執行在master上。如果你使用spark-shell去提交job的話它會是執行在master上的,如果你使用spark-submit或者idea開發工具方式執行,那麼它是執行在client上的。這樣我們知道了,client的主體作用就是執行driver。而master除了資源排程的作用還可以執行driver。

再關注master和worker節點,standalone是乙個主從模式,master節點負責資源管理,worker節點負責任務的執行。

了解standalone主要節點之後,我們看一下它的執行流程,如圖:

1)當spark集群啟動以後,worker節點會有乙個心跳機制和master保持通訊;

2)sparkcontext連線到master以後會向master申請資源,而master會根據worker心跳來分配worker的資源,並啟動worker的executor程序;

3)sparkcontext將程式**解析成dag結構,並提交給dagscheduler;

4)dag會在dagscheduler中分解成很多stage,每個stage包含著多個task;

5)stage會被提交給taskscheduler,而taskscheduler會將task分配到worker,提交給executor程序,executor程序會建立執行緒池去執行task,並且向sparkcontext報告執**況,直到task完成;

6)所有task完成以後,sparkcontext向master登出並釋放資源;

standalone的是spark預設的執行模式,它的執行流程主要就是把程式**解析成dag結構,並再細分到各個task提交給executor執行緒池去平行計算。

在執行流程中我們並沒有提到job這個概念,只是說dag結構會被分解成很多的stage。其實,分解過程中如果遇到action操作(這不暫時不關注action操作是什麼),那麼就會生成乙個job,而每乙個job都包含著乙個或者多個stage,所以job和stage也是乙個總分的邏輯關係。

spark以standalone執行時的日誌清理

spark執行任務的日誌一直沒太大關注,原因是硬碟資源充足,除非任務出錯時才去看一下,但沒有清理這些日誌的習慣。直到最近遇到的乙個問題是,硬碟資源嚴重缺乏,不得不需要定時去清理日誌。第一時間去看下spark本身的配置,是否支援定時清理日誌的選項,畢竟spark那麼成熟,相信很多人都面臨過這樣的問題。...

spark以standalone執行時的日誌清理

spark執行任務的日誌一直沒太大關注,原因是硬碟資源充足,除非任務出錯時才去看一下,但沒有清理這些日誌的習慣。直到最近遇到的乙個問題是,硬碟資源嚴重缺乏,不得不需要定時去清理日誌。第一時間去看下spark本身的配置,是否支援定時清理日誌的選項,畢竟spark那麼成熟,相信很多人都面臨過這樣的問題。...

Standalone模式兩種提交任務方式

提交命令 方式1 spark submit master spark node1 7077 class org.apache.spark.examples.sparkpi lib spark examples 1.6.0 hadoop2.6.0.jar 1000 提交命令 方式2 執行流程 clie...