Scala 使用sbt运行或spark提交脚本运行spark应用程序的区别

Scala 使用sbt运行或spark提交脚本运行spark应用程序的区别,scala,apache-spark,sbt,spark-submit,Scala,Apache Spark,Sbt,Spark Submit,我是Spark的新手,在学习这个框架的过程中,我发现,据我所知,使用Scala编写Spark应用程序时,有两种运行方式: 将项目打包到JAR文件中,然后使用spark submit脚本运行它。 使用sbt run直接运行项目。 我想知道这两种执行模式之间的区别是什么,特别是当使用sbt运行时,当它使用spark submit完美运行时,run会抛出java.lang.InterruptedException 谢谢 Spark Sbt和Spark submit是两件完全不同的事情 Spark sb

我是Spark的新手,在学习这个框架的过程中,我发现,据我所知,使用Scala编写Spark应用程序时,有两种运行方式:

将项目打包到JAR文件中,然后使用spark submit脚本运行它。 使用sbt run直接运行项目。 我想知道这两种执行模式之间的区别是什么,特别是当使用sbt运行时,当它使用spark submit完美运行时,run会抛出java.lang.InterruptedException


谢谢

Spark Sbt和Spark submit是两件完全不同的事情

Spark sbt是一个构建工具。如果您已经创建了spark应用程序,sbt将帮助您编译该代码,并创建具有所需依赖项的jar文件等。 Spark submit用于将Spark作业提交到群集管理器。您可以使用standalone、Mesos或Thread作为集群管理器。spark submit将您的作业提交到群集管理器,并且您的作业将在群集上启动。 希望这有帮助

干杯

SBT是一个构建工具,我喜欢在Linux上运行,它不一定意味着SPARK的使用。恰巧它像IntelliJ一样用于Spark应用程序

您可以在SBT控制台下的单个JVM中打包和运行应用程序,但不能大规模打包和运行。因此,如果您创建了一个具有指定依赖项的Spark应用程序,SBT将使用包编译代码,并创建一个具有所需依赖项的jar文件等,以便在本地运行


您还可以在SBT中使用assembly选项,该选项创建一个uber jar或fat jar,其中包含您上传到集群并通过调用spark submit运行的jar中包含的所有依赖项。因此,同样,如果您创建了一个带有指定依赖项的Spark应用程序,SBT将通过汇编、编译代码并创建一个uber jar文件,其中包含所有必需的依赖项等,但需要发送给Workers的外部文件除外,以便在您的集群上运行

sbt run将在您的本地计算机上运行您的项目-它有助于在开发期间进行本地测试/调试。spark submit是在生产环境中运行项目的首选方法,特别是因为它将处理程序在群集中的分发。它不回答问题,也不完全正确。谢谢!非常透彻的解释。因此,如果我理解得很好,sbt run将在本地执行spark应用程序,即使我在SparkConf对象中指定我要使用另一个主纱线或MESOS,例如本地以外的?从未尝试过。我是SBT装配工!我从未在程序中设置配置和模式。看见