在 Spark 2.1 独立集群的客户端部署模式下,RDD 或 Spark SQL 数据帧在哪里存储或持久化?

Posted

技术标签:

【中文标题】在 Spark 2.1 独立集群的客户端部署模式下,RDD 或 Spark SQL 数据帧在哪里存储或持久化?【英文标题】:Where is RDD or Spark SQL dataframe stored or persisted in client deploy mode on a Spark 2.1 Standalone cluster? 【发布时间】:2017-11-08 06:50:23 【问题描述】:

我正在客户端部署一个 Jupyter 笔记本(使用 python 2.7 kernel),它访问远程数据并在远程 Spark 独立 集群中进行处理(使用 @ 987654322@)。我正在客户端模式下部署 spark 集群。 客户端机器没有任何 Spark 工作节点。

客户端没有足够的内存(RAM)。我想知道,如果我在客户端机器上对 df.count() 这样的数据帧执行 Spark 操作操作,数据帧是存储在客户端的 RAM 中还是存储在 Spark 工作线程的内存中?

【问题讨论】:

【参考方案1】:

如果我理解正确,那么您将在客户端得到一个 int。至少应该是,如果设置正确的话。所以答案是否定的,DF 不会影响您的本地 RAM。 您正在通过 SparkSession(早期版本为 SparkContext)与集群进行交互。即使您正在开发-即编写代码——在客户端机器上,火花操作的实际计算——即运行 pyspark 代码 - 不会在您的本地计算机上执行。

【讨论】:

是否可以知道客户端机器中将存储多少数据?如何确保没有数据存储在客户端机器中? @SangramGaikwad “存储”是什么意思?使用 df.count() 不会“存储”任何东西。 df.count() 只是一个例子。如果还有其他操作,例如映射 RDD 或选择列,该怎么办。数据(在数据帧上)会出现在哪里。

以上是关于在 Spark 2.1 独立集群的客户端部署模式下,RDD 或 Spark SQL 数据帧在哪里存储或持久化?的主要内容,如果未能解决你的问题,请参考以下文章

Spark集群管理器介绍

Spark部署模式

使用 YARN 集群模式的 NAT 后面的 Spark 应用程序

spark的四种部署模式对比

对于运行在 YARN 上的 spark 应用,哪种部署方式更好——客户端还是集群

Spark Dataframe Write to CSV 在独立集群模式下创建 _temporary 目录文件