我构建了一个胖罐子,并试图在电子病历或本地使用spark-submit来运行它。这是命令:
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
。有人处理过这个吗?我能够在我的本地机器上运行它,而不需要提交火花。
我认为问题是绑定到一个具有所有依赖项的jar中,这会导致Akka出现问题,如文档中所述:
Akka的配置方法在很大程度上依赖于模块/jar有自己的reference.conf文件。所有这些都将由配置发现并加载。不幸的是,这也是意味着如果将多个jar放入/合并到同一个jar中,则需要也合并所有reference.conf文件:否则所有默认值将丢失。
您可以按照本文档对应用程序和进程进行打包,以便在绑定时合并reference.conf
资源。它谈到了使用sbt、maven和gradle的包装。
如果有帮助,请告诉我!!
这是我的合并策略。我有一个包罗万象的case _ => MergeStrategy.first
。我把它改成case x => MergeStrategy.defaultMergeStrategy(x)
,它起作用了。