1

我有这个问题,我无法在任何地方找到答案。

我正在使用以下行在 PySpark 应用程序中加载数据:

loadFile = self.tableName+".csv"
dfInput= self.sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(loadFile) 

我的集群配置如下:

  • 我正在使用具有 3 个节点的 Spark 集群:1 个节点用于启动主节点,其他 2 个节点各运行 1 个工作节点。
  • 我使用脚本在登录节点上从集群外部提交应用程序。
  • 该脚本以我认为的集群部署模式提交 Spark 应用程序,然后在这种情况下,使驱动程序在我正在使用的 3 个节点中的任何一个上运行。
  • 输入的 CSV 文件存储在全局可见的临时文件系统 (Lustre) 中。

在 Apache Spark Standalone 中,将分区加载到 RAM 的过程如何?

  1. 是不是每个执行程序都访问驱动程序的节点 RAM 并从那里将分区加载到自己的 RAM 中?(存储 --> 驱动程序的内存 --> 执行程序的内存)
  2. 是不是每个执行程序都访问存储并加载到自己的 RAM 中?(存储 --> 执行者的 RAM)

这些都不是,我在这里遗漏了一些东西吗?我怎样才能亲眼目睹这个过程(监控工具、unix 命令、Spark 中的某个地方)?

任何我可以深入了解的评论或资源都会非常有帮助。提前致谢。

4

1 回答 1

0

第二种情况是正确的:

每个执行程序访问存储并加载到自己的 RAM?(存储 --> 执行者的 RAM)

于 2016-07-20T21:30:48.347 回答