火花应用程序如何开始使用sbt运行。

问题描述:

我实际上想知道发生这种情况的底层机制,当我执行sbt run时,Spark应用程序启动!火花应用程序如何开始使用sbt运行。

这个和独立模式下的运行火花之间有什么区别,然后使用spark-submit在它上部署应用程序。

如果有人可以解释罐子是如何提交的以及是谁做出任务并在两种情况下分配它,那就太棒了。 请帮我解决这个问题或指向一些阅读,我可以让我的疑惑清除!

首先,阅读this

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

有不同的方式来运行一个火花应用程序(一个火花应用程序不过是一堆带入口点的类文件)。

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

但上面的运行方式仅用于开发和测试目的,因为它不会缩放。这意味着你将无法处理大量的数据。这是运行Spark应用程序的其他方式进入图片(独立,mesos,纱线等)。

现在阅读this

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

有趣的部分是,在单个JVM内部运行的相同应用程序将分发到1000个JVM上运行。这种应用程序的分布,这些JVM的生命周期,使它们具有容错性等都受Spark和底层集群框架的关注。