spark 应用程序如何使用 sbt run 启动。
Posted
技术标签:
【中文标题】spark 应用程序如何使用 sbt run 启动。【英文标题】:How a spark application starts using sbt run. 【发布时间】:2017-05-03 12:08:41 【问题描述】:我实际上想知道当我执行sbt run
时,spark 应用程序启动时发生这种情况的底层机制!
这与在独立模式下运行 spark 然后使用 spark-submit 在其上部署应用程序有什么区别。
如果有人可以解释 jar 是如何提交的,以及在这两种情况下谁来完成任务并分配它,那就太好了。 请帮我解决这个问题或指出一些可以让我消除疑虑的阅读!
【问题讨论】:
【参考方案1】:首先,阅读this。
一旦您熟悉了术语、不同的角色及其职责,请阅读以下段落进行总结。
运行 spark 应用程序有多种不同的方式(spark 应用程序不过是一堆带有入口点的类文件)。
您可以将 spark 应用程序作为单个 java 进程运行(通常用于开发目的)。这就是运行sbt run
时发生的情况。
在这种模式下,驱动程序、工作程序等所有服务都在单个 JVM 中运行。
但上述运行方式仅用于开发和测试目的,因为它不会扩展。这意味着您将无法处理大量数据。这就是运行 spark 应用程序的其他方式(独立、mesos、yarn 等)发挥作用的地方。
现在阅读this。
在这些模式中,将有不同角色的专用 JVM。驱动程序将作为一个单独的 JVM 运行,可能有 10 到 1000 个执行程序 JVM 在不同的机器上运行(太疯狂了!)。
有趣的是,在单个 JVM 中运行的同一个应用程序将分布在数千个 JVM 上运行。 Spark 和底层集群框架负责应用程序的分布、这些 JVM 的生命周期、使其具有容错性等。
【讨论】:
以上是关于spark 应用程序如何使用 sbt run 启动。的主要内容,如果未能解决你的问题,请参考以下文章