2

使用Spark(1.6.1)獨立主站,我需要在同一個火花主站上運行多個應用程序。 所有申請提交後第一個,繼續保持'等待'狀態總是。我還觀察到,一次運行持有所有核心工人總數。 我已經嘗試通過使用SPARK_EXECUTOR_CORES限制它,但它的紗線配置,而我正在運行是「獨立大師」。我嘗試在同一臺主設備上運行許多工作人員,但每次首次提交應用程序都會消耗所有工人。如何在獨立主站中並行運行多個火花應用程序

回答

2

我在火花獨立羣集上遇到了同樣的問題。

我得到的是,它以某種方式將所有資源用於一項工作。我們需要定義資源,以便他們的空間也可以運行其他工作。

以下是我用來提交spark工作的命令。

bin/spark-submit --class classname --master spark://hjvm1:6066 --deploy-mode cluster --driver-memory 500M --conf spark.executor.memory=1g --conf spark.cores.max=1 /data/test.jar 
1

我假設你在一臺服務器上運行所有的工人並嘗試模擬一個集羣。這種假設的原因是,否則可以使用一名工人和主人運行獨立Spark羣集。
執行程序內核與普通內核相比完全不同。要設置執行程序的數量,您需要像先前所說的那樣打開YARN。執行程序核心是執行程序可以運行的併發任務的數量(使用hdfs時,建議將其保持在5以下)[1]。

要限制使工作人員運行的核心數是「CPU核心」。這些在Spark 1.6.1 [2]的配置中指定。在Spark中,可以選擇設置啓動從站時的CPU內核數量[3]。這發生在-c CORES, - core CORES。其中定義了允許Spark應用程序在機器上使用的總CPU內核(默認:全部可用);只有工人。

的命令來啓動星火會是這樣的:

./sbin/start-all.sh --cores 2

希望這有助於

0

在配置設置中添加此行到「./conf/spark-env.sh」這個文件。

出口SPARK_MASTER_OPTS = 「 - Dspark.deploy.defaultCores = 1」

最大內核現在將限制爲1主人。如果多個Spark應用程序正在運行,那麼它將只使用一個主內核。屆時定義工人的數量,並給工人設置:

出口SPARK_WORKER_OPTS =「 - Dspark.deploy.defaultCores = 1」

每個工人都有然後一個核心爲好。 請記住,這必須在配置設置中爲每個工作人員設置。

+1

這個答案是錯的。問題的目標是與「工作人員」羣集運行,這個答案只適用於本地工作。這個答案僅適用於主控跑步。主人現在只會消耗一個核心。 SPARK_MASTER_OPTS僅應用於主形式\t配置屬性「-Dx = Y」(默認值:無)。應該使用SPARK_WORKER_OPTS \t以「-Dx = y」格式(默認值:無)僅適用於工作人員的配置屬性對工作人員進行調整。如果在工作人員內核被設置,這個答案會起作用。 –

1

用於火花獨立集羣上運行多個並行作業的一個關鍵參數是spark.cores.max。需要注意的是spark.executor.instancesnum-executorsspark.executor.cores本身不會讓你除了一個主動一個將堅持與WAITING狀態,實現這一在星火獨立,所有作業。

Spark-standalone resource scheduling

的獨立簇模式目前僅支持跨應用程序的簡單FIFO 調度器。然而,允許多個併發用戶 ,你可以控制資源的每個 應用程序將使用的最大數量。默認情況下,將收購 集羣,這纔有意義,如果你只是運行在 一次一個應用程序中的所有核心。您可以通過設置spark.cores.max帽核心數量......

相關問題