Spark独立集群模式下的spark.driver.cores设置

时间:2019-05-21 23:19:51

标签: apache-spark

我正在使用Spark Standalone集群模式,并使用"spark.driver.cores"来设置驱动程序的核心数量。但是每次用户界面将其显示为“ 0”时,如图enter image description here

所示

即使在代码中设置此值

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

似乎无效。在独立群集模式下应如何设置此值?

谢谢 === UPDATE === 这是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内存。 我希望这有帮助。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

`--conf "spark.executor.core=5"` is wrong

(应该是s)

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

第二件事是您没有将spark.driver.cores设置为火花提交。

您的.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应该显示相同的内容...

希望您能理解!