Scala 在没有sbt的情况下运行Spark sbt项目?

Scala 在没有sbt的情况下运行Spark sbt项目?,scala,sbt,apache-spark,Scala,Sbt,Apache Spark,我有一个Spark项目,可以从sbt控制台运行。然而,当我试图从命令行运行它时,我在线程“main”java.lang.NoClassDefFoundError:org/apache/spark/SparkContext中遇到异常。这是意料之中的,因为Spark LIB在build.sbt中列出 如何进行配置,以便在不必使用sbt控制台的情况下从命令行运行JAR?要独立运行Spark,需要构建Spark程序集。 在火花根目录上运行sbt/sbt组件。这将创建:assembly/target/sc

我有一个Spark项目,可以从sbt控制台运行。然而,当我试图从命令行运行它时,我在线程“main”java.lang.NoClassDefFoundError:org/apache/spark/SparkContext中遇到异常。这是意料之中的,因为Spark LIB在build.sbt中列出


如何进行配置,以便在不必使用sbt控制台的情况下从命令行运行JAR?

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

然后使用依赖项(使用sbt assembly或maven shade插件)构建作业jar

您可以使用生成的二进制文件从命令行运行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
ADD_JARS=job-jar-with-dependencies.jar SPARK\u LOCAL_IP=java-cp SPARK-assembly-1.0.0-SNAPSHOT-hadoop1.0.4.jar:job-jar-with-dependencies.jar com.example.jobs.SparkJob

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

使用
sbt汇编插件
我们可以创建一个jar。完成后,您只需使用
java-jar
命令运行它


您可以使用来构建一个包含所有依赖项的jar。@lpeipiora-我确实使用了sbt汇编,但是spark jar被标记为
提供的
,因此不包含在汇编中。您可以发布您的构建示例,我可以帮您回答吗?我猜一些“编译->提供”的神奇说明符会起作用。