4

我实际上想知道当我执行sbt runspark 应用程序启动时这是如何发生的底层机制!

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

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

4

1 回答 1

3

首先,阅读这个

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

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

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

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

现在读这个

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

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

于 2017-05-03T12:50:23.787 回答