使用 sbt run 或 Spark-submit 脚本运行 Spark 应用程序的区别

2024-04-05

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

  1. 将项目打包成JAR文件,然后使用spark-submit脚本运行它。
  2. 直接使用 sbt run 运行项目。

我想知道这两种执行模式之间有什么区别,特别是当使用 sbt run 运行时,当它与 Spark-submit 完美运行时可能会抛出 java.lang.InterruptedException 。

Thanks!


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

You can package and runSBT 控制台下单个 JVM 中的应用程序,但不是大规模的。因此,如果您创建了一个指定了依赖项的 Spark 应用程序,SBT 将使用以下命令编译代码:package并创建一个具有所需依赖项等的 jar 文件run本地。

您还可以使用assemblySBT 中的选项创建了一个uber jar or fat jar将所有依赖项包含在您上传到集群并通过调用运行的 jar 中火花提交。因此,再次强调,如果您创建了一个指定了依赖项的 Spark 应用程序,SBT 将通过程序集编译代码并创建一个包含所有必需依赖项等的 uber jar 文件,但您需要发送给 Workers 的外部文件除外,在您的集群上运行(一般情况下)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sbt run 或 Spark-submit 脚本运行 Spark 应用程序的区别 的相关文章

随机推荐