Когда я запускаю приложение Spark на EMR, в чем разница между добавлением конфигов в файл 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
--master yarn-cluster --conf spark.driver.memory = 12 ГБ --conf spark.executor.memory = 29 ГБ --conf spark.executor.cores = 3 --conf
spark.executor.instances = 4 --conf
spark.yarn.executor.memoryOverhead = 4096 --conf
spark.yarn.driver.memoryOverhead = 2048 --conf spark.driver.cores = 1
--conf spark.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");