没有sbt运行Spark sbt项目?

时间:2014-05-15 19:40:29

标签: scala sbt apache-spark

我有一个Spark项目,我可以从sbt控制台运行。但是,当我尝试从命令行运行它时,我在线程“main”java.lang.NoClassDefFoundError:org / apache / spark / SparkContext 中得到异常。这是预期的,因为Spark库在 build.sbt 中列为提供

如何配置东西,以便我可以从命令行运行JAR,而不必使用sbt控制台?

2 个答案:

答案 0 :(得分:3)

要独立运行Spark,您需要构建Spark程序集。 在火花根目录上运行sbt/sbt assembly。这将创建:assembly/target/scala-2.10/spark-assembly-1.0.0-SNAPSHOT-hadoop1.0.4.jar

然后使用依赖项构建工作jar(使用sbt assembly或maven-shade-plugin)

您可以使用生成的二进制文件从命令行运行spark作业:

ADD_JARS=job-jar-with-dependencies.jar SPARK_LOCAL_IP=<IP> java -cp spark-assembly-1.0.0-SNAPSHOT-hadoop1.0.4.jar:job-jar-with-dependencies.jar com.example.jobs.SparkJob

注意:如果您需要其他HDFS版本,则需要在构建程序集之前执行其他步骤。见About Hadoop Versions

答案 1 :(得分:1)

使用sbt assembly plugin我们可以创建一个jar。完成后,您只需使用java -jar命令

运行它

For more details refer