Spark 群集中的节点是否共享相同的存储?



我是火花的新手。我正在使用Azure Databricks,我正在使用PySpark编写python代码。有一个特别的话题让我感到困惑:

节点是否有单独的存储内存(我不是说 RAM/缓存(?或者它们都共享同一个存储?如果它们共享相同的存储,那么在不同Spark Context中运行的两个不同应用程序是否可以相应地交换数据?

我不明白为什么有时我们用dbfs:/tmp/...来指代存储,而有时我们用/dbfs/tmp/来指代它......示例:如果我使用来自 databricks 的dbutils包,我们使用类似以下内容:dbfs:/tmp/...来引用文件系统中的目录。但是,如果我使用常规的python代码,我会说/dbfs/tmp/

非常感谢您的帮助!!

每个节点都有单独的 RAM 内存和缓存。例如,如果您有一个包含 4GB 和 3 个节点的群集。部署 Spark 应用程序时,它将根据群集配置和查询要求运行工作进程,并将在单独的节点或同一节点上创建虚拟机。在应用程序的生命周期内,这些节点内存不会相互共享。

这是关于Hadoop资源共享问题的更多信息,可以从YARN资源管理中找到更多信息。这是非常简短的概述 https://databricks.com/session/resource-management-and-spark-as-a-first-class-data-processing-framework-on-hadoop