我是新手来激发节目。我想创建包含所有依赖jar的胖jar。目前我正在使用以下命令运行spark应用程序
./spark-submit -class XYZ --jars dependency_1,dependency_2 main.jar
但我不希望每次都传递这些依赖jar。我用谷歌搜索但找不到合适的解决方案。
我试过的一种方法是使用程序集插件。但它给出了以下错误。
[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: assembly
[error] assembly
[error]
所以请任何人知道哪个是制作胖罐的最好方法。
提前致谢。
EDIT1 -
我的 build.sbt -
import AssemblyKeys._
assemblySettings
name := "Update Sim Count"
version := "1.0"
scalaVersion := "2.10.0"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.0"
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "1.5.0-RC1"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.12"
assembly.sbt:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")
EDIT2 -
@Chobeat给出的答案有效。跟着那个博客。不需要来自该博客的build.scala。您只能将assembly.sbt和几行添加到build.sbt。这对你有用。感谢@Chobeat的帮助。
答案 0 :(得分:4)
请记住将sbt程序集插件添加到项目中。它不是默认命令。
使用Spark构建一个胖罐起初有点棘手,但它并不是黑魔法。而且它也是实现你想要做的事情的正确方法。
按照教程,你会很好:
http://blog.prabeeshk.com/blog/2014/04/08/creating-uber-jar-for-spark-project-using-sbt-assembly/