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 已设置

SnappyData - 创建 Kafka 流表时出错

SnappyData 上的 Theta Sketch (Yahoo)

4. Spark 提交应用