我建立了一个胖jar,我试图运行它与spark-submit上的EMR或本地.这里是命令:
spark-submit \
--deploy-mode client \
--class com.stash.data.omni.source.Runner myJar.jar \
<arguments>
我不断收到与akka配置相关的错误:
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.version'
看起来jar根本找不到akka的reference.conf
。有人处理过这个问题吗?我可以在我的本地机器上运行它,而不用spark-submit。
2条答案
按热度按时间sg24os4d1#
我认为问题是绑定到一个jar中,并带有它的所有依赖项,这会导致Akka出现问题,如文档中所述:
Akka的配置方法很大程度上依赖于每个模块/jar都有自己的reference.conf文件的概念。所有这些都将被配置发现并加载。不幸的是,这也意味着如果你将多个jar放入/合并到同一个jar中,你需要合并所有的reference.conf文件:否则将丢失所有默认值。
您可以按照此文档打包您的应用程序,并在捆绑时合并
reference.conf
资源。它介绍了如何使用sbt、maven和gradle打包。如果有帮助的话,让我知道!!
rxztt3cl2#
这是我的合并策略。我有一个catch all
case _ => MergeStrategy.first
。我把它改成了case x => MergeStrategy.defaultMergeStrategy(x)
,它起作用了。