我实际上想知道当我执行时这是如何发生的底层机制sbt run
Spark 应用程序启动!
这与在独立模式下运行 Spark 然后使用 Spark-Submit 部署应用程序有什么区别。
如果有人可以解释如何提交 jar 以及谁创建任务并在这两种情况下分配它,那就太好了。
请帮我解决这个问题,或者指出一些可以消除我疑虑的读物!
首先,阅读this http://spark.apache.org/docs/latest/cluster-overview.html.
一旦您熟悉了术语、不同的角色及其职责,请阅读下面的段落进行总结。
运行 Spark 应用程序有不同的方法(Spark 应用程序只不过是一堆带有入口点的类文件)。
您可以将 Spark 应用程序作为单个 java 进程运行(通常用于开发目的)。这就是你跑步时发生的情况sbt run
。
在这种模式下,所有服务(如驱动程序、工作人员等)都在单个 JVM 内运行。
但上述运行方式仅用于开发和测试目的,因为它无法扩展。这意味着您将无法处理大量数据。这就是运行 Spark 应用程序的其他方式(独立、mesos、yarn 等)的用武之地。
现在阅读this http://www.agildata.com/apache-spark-cluster-managers-yarn-mesos-or-standalone/.
在这些模式下,将会有专门的 JVM 来扮演不同的角色。驱动程序将作为单独的 JVM 运行,可能有 10 到 1000 个执行器 JVM 在不同的机器上运行(太疯狂了!)。
有趣的是,在单个 JVM 中运行的相同应用程序将分布在 1000 个 JVM 上运行。应用程序的分布、这些 JVM 的生命周期、容错能力等均由 Spark 和底层集群框架负责。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)