apache-spark - Spark Cluster 中的节点是否共享相同的存储?
问题描述
我是新手。我正在使用Azure Databricks
并且正在使用PySpark
. 有一个特定的话题让我感到困惑:
节点是否有单独的存储内存(我不是指 RAM/缓存)?或者它们都共享同一个存储空间?如果它们共享相同的存储,那么运行在不同位置的两个不同的应用程序可以Spark Context
相应地交换数据吗?
我不明白为什么有时我们用 来引用存储,而dbfs:/tmp/...
其他时候我们用/dbfs/tmp/
...... . 但是,如果我使用常规的 python 代码,我会说.dbutils
dbfs:/tmp/...
/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
推荐阅读
- python - 如何修复递归倒计时 python 函数的代码,使其仅打印“LIFT OFF!” 一次?
- r - 打印出 R 控制台中的所有输出
- reactjs - 开玩笑测试失败并且没有从模拟点击接收到 toHaveBeenCalled
- javascript - 将字符串中的每个第一个字符转换为大写
- c# - 设置 VS2019 社区以对 dll 进行单元测试时出现问题
- java - 从 Firebase 检索位置并将标记放在谷歌地图上
- c# - C#如何显示垂直直方图?
- angularjs - AngularJS $http.get() 在返回 bool 的本地函数中
- ios - 在函数声明中将函数设置为变量
- javascript - mongo 查询 $near 总是 0 结果