天天看點

Spark 之 standalone 模式多個application(作業)資源排程

目錄

  • 1、預設情況
  • 2、修改配置

1、預設情況

       standalone叢集對于同時送出上來的多個作業,僅僅支援FIFO排程政策,也就是先入先出;預設情況下,叢集對多個作業同時執行的支援是不好的,沒有辦法同時執行多個作業;因為先送出上來的每一個作業都會嘗試使用叢集中所有可用的cpu資源,此時相當于就是隻能支援作業串行起來,一個一個運作了。

2、修改配置

      我們希望能夠支援多作業同時運作,那麼就需要調整一下資源參數,我們可以設定spark.cores.max參數,來限制每個作業能夠使用的最大的cpu core數量,這樣先送出上來的作業不會使用所有的cpu資源,後面送出上來的作業就可以擷取到資源,也可以同時并行運作了。可以通過設定全局的一個參數,讓每個作業最多隻能擷取到一部分cpu core資源,那麼後面送出上來的作業,就也可以擷取到一部分資源,standalone叢集才可以支援同時執行多個作業。

方式一:

使用SparkConf或spark-submit中的--conf辨別,設定參數即可;

SparkConf conf = new SparkConf()

        .set("spark.cores.max", "10")

通常不建議使用SparkConf,寫死,來設定一些屬性,不夠靈活。

方式二:

建議使用spark-submit來設定屬性

--conf spark.cores.max=10

方式三:

通過spark-env.sh配置每個application預設能使用的最大cpu數量來進行限制,預設是無限大,此時就不需要每個application都自己手動設定了,在spark-env.sh中配置spark.deploy.defaultCores即可。

比如說: export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=10"

繼續閱讀