2017-05-27 37 views
1

需要了解何時使用spark.dynamicAllocation.enabled - 使用它有哪些優缺點?我有排隊提交作業。spark.dynamicAllocation.enabled如何影響作業的順序?

  1. 上午9:30 - >作業A獲取提交與dynamicAllocation啓用。
  2. 上午10:30 - >作業B獲得提交與dynamicAllocation啓用。

注意:我的數據很大(處理將在10GB數據上進行轉換)。

哪個Job對執行者分配給Job A或Job B的偏好以及Spark如何協調b/w 2應用程序?

回答

2

動態分配執行者是關於調整您的執行者池。

報價Dynamic Allocation

spark.dynamicAllocation.enabled是否使用動態資源分配,從而擴展這個應用起來工作量註冊下來基於執行人的數量。

,後來在Dynamic Resource Allocation

星火提供了一種機制,動態地調整你的應用程序佔用根據工作負載的資源。這意味着如果您的應用程序不再使用,並且在有需求時再次請求它們,那麼您的應用程序可能會將資源返回給羣集。如果多個應用程序共享Spark羣集中的資源,此功能特別有用。

換句話說,作業A將通常作業B之前結束將被執行。 Spark作業是通常是順序執行,即作業必須先完成才能啓動另一個作業。

通常...

SparkContext是線程安全的,可以從星火處理應用程序的工作。這意味着你可以在同一時間或者一個接一個地提交作業,並且在某些配置中希望這兩個作業可以並行運行。

報價Scheduling Within an Application

內的規定星火應用(例如SparkContext),如果他們從不同的線程提交多個並行作業可以同時運行。通過「作業」,在本節中,我們的意思是Spark操作(例如保存,收集)以及需要運行以評估該操作的任何任務。 Spark的調度程序完全是線程安全的並且支持這個用例來啓用服務於多個請求的應用程序(例如,針對多個用戶的查詢)。

默認情況下,Spark的調度程序以FIFO方式運行作業。每個作業分爲「階段」(例如地圖和縮小階段),第一個作業獲得所有可用資源的優先權,而其各個階段有任務啓動,然後第二個作業獲得優先權等。

它也是可以配置作業之間的公平共享。在公平分享下,Spark以「循環」方式在作業之間分配任務,以便所有作業獲得大致相等的羣集資源份額。這意味着在長時間工作時提交的短工可以立即開始接收資源,並且仍然可以獲得良好的響應時間,而無需等待長時間的工作。該模式最適合多用戶設置。


結束語...

約伯得到的執行人分配到作業A或作業B的偏好和如何做的火花座標的B/W 2個應用程序?

工作A.

除非已啓用Fair Scheduler Pools

的公平調度器還支持分組作業到池,並設置每個池不同的調度選項(如重量)。例如,爲更重要的工作創建「高優先級」池,或者將每個用戶的工作組合在一起,併爲用戶提供相同的份額,而不管他們有多少併發作業,而不是提供作業平等份額。