我正在编写一个spark应用程序,并使用sbt程序集创建一个胖jar,我可以发送给spark-submit(通过Amazon EMR)。
我的应用程序使用typesafe-config,在reference.conf
目录中有一个resources
文件。
我的jar在Amazon S3上,我使用命令aws emr add-steps..
创建一个新的spark作业(将jar下载到集群并将其发送到spark-submit)。
我知道,一般情况下,我可以使用application.conf
覆盖设置。但是,由于我正在使用spark(和胖罐),我需要一些方法来部署我的覆盖。
使用spark时,建议覆盖应用程序配置设置的方法是什么?
答案 0 :(得分:4)
你可以使用spark-submit ... --conf my.app.config.value = 50 --conf config.file = other.conf ... fat.jar
使用typesafe.config.ConfigFactory.load()时,命令行中指定的值将覆盖' other.conf'中指定的值。反过来覆盖" reference.conf'中指定的thoses;在你的胖子里。
答案 1 :(得分:0)
在我的spark java代码中,我这样写是为了覆盖应用程序配置
SparkConf sparkConf = new SparkConf();
sparkConf.setMaster(sparkMaster);
sparkConf.set("spark.executor.memory", "1024M");
sparkConf.set("spark.default.parallelism", "48");
sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);