在EMR上使用胖罐作为火花时覆盖配置设置

时间:2015-05-14 12:57:58

标签: apache-spark amazon-emr typesafe-config

我正在编写一个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时,建议覆盖应用程序配置设置的方法是什么?

2 个答案:

答案 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);