scala – 使用SBT制作Spark Fat Jar的正确方法
发布时间:2020-12-16 18:02:11 所属栏目:安全 来源:网络整理
导读:我需要一个带有Spark的Fat Jar,因为我正在为Knime创建一个自定义节点.基本上它是在Knime内部执行的自包含jar,我假设Fat Jar是产生本地Spark Job的唯一方法.最终我们将继续向远程集群提交作业,但现在我需要它以这种方式生成. 也就是说,我用这个做了一个Fat Ja
我需要一个带有Spark的Fat Jar,因为我正在为Knime创建一个自定义节点.基本上它是在Knime内部执行的自包含jar,我假设Fat Jar是产生本地Spark Job的唯一方法.最终我们将继续向远程集群提交作业,但现在我需要它以这种方式生成.
也就是说,我用这个做了一个Fat Jar:https://github.com/sbt/sbt-assembly 我做了一个空的sbt项目,在依赖项中包含了Spark-core并组装了Jar.我将它添加到我的自定义Knime节点的清单中,并尝试生成一个简单的作业(pararellize一个集合,收集并打印它).它开始但我得到这个错误:
我不知道如何解决它. 编辑:这是我的build.sbt name := "SparkFatJar" version := "1.0" scalaVersion := "2.11.6" libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "1.3.0" ) libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.8" assemblyJarName in assembly := "SparkFatJar.jar" assemblyMergeStrategy in assembly := { case PathList("META-INF",xs @ _*) => MergeStrategy.discard case x => MergeStrategy.first } 我在互联网上的某个地方找到了Spark的合并策略,但我现在找不到源代码. 解决方法
我认为问题在于你如何设置assemblyMergeStrategy.试试这个:
assemblyMergeStrategy in assembly := { case PathList("META-INF",xs @ _*) => MergeStrategy.discard case "application.conf" => MergeStrategy.concat case "reference.conf" => MergeStrategy.concat case x => val baseStrategy = (assemblyMergeStrategy in assembly).value baseStrategy(x) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angular – 在ng2-table中创建可扩展行
- twitter-bootstrap – Font Awesome version 4 – 带旋转图
- Bash错误:对于base来说,值太大(错误标记为“09”)
- angular – Ionic无法找到模块’../providers/auth-service
- angularjs-routing – 使用angular-routing = undefined的n
- WebService学习笔记-Hello world
- 在脚本中添加颜色
- bash – 从csv文件中删除^ M.
- bash – cURL – 通知上传进度
- 数组 – 如何将标量传递给向量(1D数组)到Fortran子例程?