Spark 组件在 SnappyData 统一集群模式下位于何处?
Posted
技术标签:
【中文标题】Spark 组件在 SnappyData 统一集群模式下位于何处?【英文标题】:Where do Spark components live in SnappyData Unified Cluster mode? 【发布时间】:2016-08-09 18:36:48 【问题描述】:我试图了解所有“Spark”部分在哪里适合 SnappyData 的“统一集群模式”部署拓扑。
在阅读本文时,文档不清楚以下几点:
http://snappydatainc.github.io/snappydata/deployment/#unified-cluster-mode-aka-embedded-store-mode
-
谁是主人 - 领导者或定位者?
Slave/Worker 在...上执行 - Lead 还是 Server?
执行程序在...上执行 - 服务器(这在文档中看起来很简单)
应用在...上执行 - 潜在客户还是服务器?
作业在...上执行 - 主管还是服务器?
流在...上执行 - 领导还是服务器?
【问题讨论】:
【参考方案1】:SnappyData 是一个点对点的集群,并进行自己的集群管理。因此,它不需要像 Spark 独立集群管理器和 Yarn 这样的集群管理器来启动/停止 Spark 驱动程序和执行程序。当 SnappyData 引导节点启动时,它会在其中启动一个 Spark 驱动程序,并在所有 SnappyData 服务器内启动 Spark 执行程序。现在回答您的问题:
谁是主人 - 领导者或定位者?
SnappyData 没有 Master。
Slave/Worker 在...上执行 - Lead 还是 Server?
SnappyData 没有奴隶/工人。
Executor 在...上执行 - 服务器(这在文档中看起来很简单)
正确。
应用程序在...上执行 - 领导或服务器?作业在...上执行 - Lead 或 Server?
Spark 中的应用程序是一组自包含的计算。对于每个 Spark 应用程序,都会启动一个启动 Spark 上下文的驱动程序。 Spark 上下文协调应用程序。应用程序结束后上下文和驱动程序消失。从某种意义上说,SnappyData 可以被称为长时间运行的 Spark 应用程序,因为它启动了一个 Spark 上下文并保持它在引导节点内运行。 SnappyData 作业可以提交到由已经运行的 Spark 上下文执行的引导节点。因此,领导节点(Spark 驱动程序)在实际执行任务的服务器(Spark 执行程序)上安排作业。
流在...上执行 - 领导或服务器?
Spark 执行没有改变。当一个流作业提交到领导节点时,它会在其中一个可用服务器上创建一个接收器,然后为接收到的数据安排作业。
【讨论】:
以上是关于Spark 组件在 SnappyData 统一集群模式下位于何处?的主要内容,如果未能解决你的问题,请参考以下文章
关于使用 snappydata/bin> ./spark-shell.sh 脚本启动定位器的问题
SnappyData Spark Scall java.sql.BatchUpdateException
SnappyData snappy-sql PUT INTO 导致错误:spark.sql.execution.id 已设置