在emr集群中运行spark应用程序时指定spark配置的位置

kcrjzv8t  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(378)

当我在emr上运行spark app时,在spark/conf spark-defaults.conf文件中添加配置与在运行spark submit时添加配置有什么区别?
例如,如果我将其添加到conf spark-defaults.conf中:

spark.master         yarn
spark.executor.instances            4
spark.executor.memory               29G
spark.executor.cores                3
spark.yarn.executor.memoryOverhead  4096
spark.yarn.driver.memoryOverhead    2048
spark.driver.memory                 12G
spark.driver.cores                  1
spark.default.parallelism           48

这是否与将其添加到命令行参数相同:
参数:/home/hadoop/spark/bin/spark submit--deploy mode cluster--master yarn cluster--conf spark.driver.memory=12g--conf spark.executor.memory=29g--conf spark.executor.cores=3--conf spark.executor.instances=4--conf spark.yarn.executor.memoryoverhead=4096--conf spark.yarn.driver.memoryoverhead=204spark.default.parallelism=48--类com.emr.spark.myapp s3n://mybucket/application/spark/mesparkapplication.jar
?
如果我在我的java代码中添加这个,会是一样的吗,例如:

SparkConf sparkConf = new SparkConf().setAppName(applicationName);
        sparkConf.set("spark.executor.instances", "4");
tpgth1q7

tpgth1q71#

区别在于优先权。根据spark文件:
直接在sparkconf上设置的属性具有最高的优先级,然后将标志传递给spark submit或spark shell,然后是spark-defaults.conf文件中的选项

相关问题