scala - Spark 应用程序如何开始使用 sbt run。

标签 scala apache-spark deployment sbt apache-spark-standalone

我实际上想知道当我执行 sbt run 时发生这种情况的底层机制 Spark 应用程序启动!

这与在独立模式下运行 spark 然后使用 spark-submit 在其上部署应用程序之间有什么区别。

如果有人可以解释 jar 是如何提交的,以及谁在这两种情况下执行任务并分配它,那就太好了。
请帮我解决这个问题,或者指出一些可以让我消除疑虑的读物!

最佳答案

首先阅读this .

熟悉术语、不同角色及其职责后,请阅读以下段落进行总结。

有多种运行 Spark 应用程序的方法(一个 Spark 应用程序只不过是一堆带有入口点的类文件)。

您可以将 spark 应用程序作为单个 java 进程运行(通常用于开发目的)。当您运行 sbt run 时会发生这种情况.
在这种模式下,驱动程序、工作线程等所有服务都在单个 JVM 中运行。

但上述运行方式仅用于开发和测试目的,因为它不会扩展。这意味着您将无法处理大量数据。这是运行 Spark 应用程序的其他方式(独立、mesos、yarn 等)的地方。

现在阅读 this .

在这些模式中,将有不同角色的专用 JVM。驱动程序将作为单独的 JVM 运行,可能有 10 到 1000 个执行器 JVM 运行在不同的机器上(太疯狂了!)。

有趣的是,在单个 JVM 中运行的同一个应用程序将分布在 1000 个 JVM 上运行。 Spark 和底层集群框架负责应用程序的这种分布、这些 JVM 的生命周期、使它们具有容错性等。

关于scala - Spark 应用程序如何开始使用 sbt run。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43759641/

相关文章:

.net - Dotnet 核心应用程序的 Clickonce 部署等效项

java - 在哪里可以找到下载的 sbt 库?

scala - 如何在scala中激活sbt DockerPlugin?

java - 获取 Scala 中声明为 "Any"的输入变量的类型

java - 将 HTML 呈现(流式传输)到 Pane 中

ubuntu - 用另一个目录的构建替换 docker 镜像

python - 通过将逗号分隔的列的值替换为基于另一个数据框的查找来创建新列

java - 使用EMR/Spark将JSON转换为Parquet

apache-spark - 在 DataFrame 联合之后管理 Spark 分区

deployment - 保存经过训练的 Detectron2 模型并对单个图像进行预测