【发布时间】:2019-05-30 23:51:03
【问题描述】:
我在 scala 中编写了一个程序并使用 sbt 的汇编指令创建了一个可执行的 JAR 现在我必须上传并在我的平台上运行它。
对于构建 jar 我已经经历过
文件->项目结构->项目设置->工件->点击 绿色加号 -> Jar -> 来自具有依赖项的模块..
我使用命令:
spark-submit --class "ReadCSVwithnull" Scala.jar
但我得到一个错误
线程“主”java.lang.SecurityException 中的异常:无效 清单主要属性的签名文件摘要位于 sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVeri fier.java:284) 在 sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier .java:238)
mu 版本为 InteliJ -2018.3.1
火花 2.3.2
斯卡拉 2.11.8
sbt 版本:sbt 1.2.7
【问题讨论】:
-
三件事。首先,我建议您使用 SBT 自己构建 assembly JAR,并使用
sbt-assemblyplugin。 IDE 很棒,但我会将构建工作留给构建工具 - 其次,确保将任何 Spark dependency 标记为Provided和排除 build.sbt 文件中的 assembly JAR 中的 Scala。您永远不应该包含您自己的 Spark 和 Scala,因为您的集群已经拥有它们 - 第三也是最重要的,使用相同版本的 Scala Spark 使用。2.11.8.
标签: scala console executable-jar spark-submit