相关疑难解决方法(0)

使用uberjar进行部署时,在Typesafe配置中覆盖多个配置值

我有一个Akka应用程序,它使用了多个配置值(IP地址,端口号)resource/application.conf.我正在使用sbt-assembly插件创建一个超级jar然后部署这个jar.

有没有办法application.conf通过使用uber jar之外的另一个文件来覆盖整个文件?(即,使用新conf文件中的值)

deployment scala sbt akka typesafe-config

15
推荐指数
2
解决办法
1万
查看次数

使用带有Spark on Yarn的typesafe配置

我有一个Spark作业,从配置文件中读取数据.此文件是类型安全的配置文件.

读取配置的代码如下所示:

ConfigFactory.load().getConfig("com.mycompany")
Run Code Online (Sandbox Code Playgroud)

现在我没有将application.conf作为我的超级jar的一部分进行组装,因为我想将该文件作为外部文件传递

我想使用的外部application.conf的内容如下所示:

com.mycompany {
  //configurations my program needs
}
Run Code Online (Sandbox Code Playgroud)

此application.conf文件存在于我的本地计算机文件系统上(而不是HDFS上)

我正在使用Spark 1.6.1和Yarn

这是我的spark-submit命令的样子:

LOG4J_FULL_PATH=/log4j-path
ROOT_DIR=/application.conf-path

    /opt/deploy/spark/bin/spark-submit \
    --class com.mycompany.Main \
    --master yarn \
    --deploy-mode cluster \
    --files $ROOT_DIR/application.conf \
    --files $LOG4J_FULL_PATH/log4j.xml \
    --conf spark.executor.extraClassPath="-Dconfig.file=file:application.conf" \
    --driver-class-path $ROOT_DIR/application.conf \
    --verbose \
    /opt/deploy/lal-ml.jar
Run Code Online (Sandbox Code Playgroud)

我收到的例外是:

2016-11-09 12:32:14 ERROR ApplicationMaster:95 - User class threw exception: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'com'
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'com'
    at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
    at com.typesafe.config.impl.SimpleConfig.getObject(SimpleConfig.java:218) …
Run Code Online (Sandbox Code Playgroud)

scala hadoop-yarn typesafe-config apache-spark

6
推荐指数
1
解决办法
5502
查看次数