如何使用sbt

时间:2017-01-17 08:46:55

标签: apache-spark sbt sbt-assembly

我是新手来激发节目。我想创建包含所有依赖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的帮助。

1 个答案:

答案 0 :(得分:4)

请记住将sbt程序集插件添加到项目中。它不是默认命令。

使用Spark构建一个胖罐起初有点棘手,但它并不是黑魔法。而且它也是实现你想要做的事情的正确方法。

按照教程,你会很好:

http://blog.prabeeshk.com/blog/2014/04/08/creating-uber-jar-for-spark-project-using-sbt-assembly/