【问题标题】:spark.driver.cores setting in spark standalone cluster modespark 独立集群模式下的 spark.driver.cores 设置
【发布时间】:2020-03-28 02:33:30
【问题描述】:

我正在使用 Spark Standalone 集群模式并使用 "spark.driver.cores" 设置驱动程序的核心数。但是每次UI都显示为“0”如图

甚至在代码中设置这个值

.set("spark.driver.cores","14")                                                   

似乎不起作用。在独立集群模式下应该如何设置这个值?

谢谢 ===更新=== 这里是 spark-submit 命令

        spark-submit --jars "file:///<path to jar>" --master spark://$MASTER:7077 --conf "spark.cores.max=330" 
    --conf "spark.executor.core=5" 
    --conf "spark.sql.broadcastTimeout=10000000" 
    --conf "spark.sql.shuffle.partitions=1000" 
    --conf "spark.default.parallelism=1000"  
    --conf "spark.executor.memory=40g"  
    --conf "spark.driver.memory=40g" 
    --conf "spark.driver.extraJavaOptions=-XX:+UseCompressedOops -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps" 
    --conf "spark.driver.maxResultSize=40g" 
--conf "spark.network.timeout=10000000" 
--class "<my class>" "<path to jar>" <other parameters>....

集群中的每个节点都有 24 核和 64GB 内存。 我希望这有帮助。感谢您的帮助。

【问题讨论】:

  • 显示你的 spark-submit 你是否覆盖了某个地方?
  • 在Spark Documentation中使用'--conf "spark.executor.cores=5"`

标签: apache-spark


【解决方案1】:
`--conf "spark.executor.core=5"` is wrong

应该是(缺少s)

--conf "spark.executor.cores=5" 

第二件事是如果你没有设置spark.driver.cores 是spark-submit。

你的.set("spark.driver.cores","14") 应该是这样的


val sparkConf = new SparkConf()
 .set("spark.driver.cores", "2")
   .setAppName(this.getClass.getSimpleName)
   .setMaster("local[*]")

   val spark: SparkSession = SparkSession.builder().config(sparkConf).appName(this.getClass.getName)
   .master("local[*]").getOrCreate()

提示:要验证您正在应用什么配置: spark.sparkContext.getConf.getAll.foreach(println) 将打印用于创建 spark 会话的所有配置。

在上面的例子中:

(spark.app.name,com.examples.DataFrameCSVExample$)
(spark.app.id,local-1558579973832)
(spark.driver.cores,2)
(spark.master,local[*])
(spark.executor.id,driver)
(spark.driver.host,192.168.19.1)
(spark.driver.port,53962)

如果你能看到这里,spark-ui 应该会显示相同的...

希望你能理解!!!

【讨论】:

  • 上述方法你试过了吗?
  • 看起来我在错误的地方按了输入...这是我的原始回复。 “感谢您指出“core(s)”中的错字。但是“local[]”在本地模式下运行 spark 作业,而我想在集群中运行它。从你的建议中得到线索,我什至使用 [] 但 UI 仍将驱动程序核心显示为“0”,如上面的屏幕截图所示。感谢您的帮助。”
  • local[*] 只是一个例子。您可以使用集群或客户端,但您必须调试的方式是相同的。如果你没问题,请采纳答案。
  • 如果我将 master 设置为 "--master spark://$MASTER:7077" ,使用 * 的正确方法是什么。我这样做是因为我使用 SLURM 提交我的工作并且无法控制主节点的选择。谢谢
  • 我不知道 SLURM 但./bin/spark-submit \ --class &lt;main-class&gt; \ --master &lt;master-url&gt; \ --deploy-mode &lt;deploy-mode&gt; \ --conf &lt;key&gt;=&lt;value&gt; \ ... # other options &lt;application-jar&gt; \ [application-arguments] 是标准方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 2018-01-14
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多