RDD,分区和节点之间的关系

时间:2015-07-11 16:21:43

标签: apache-spark rdd

我一直在阅读有关RDD以及分区如何影响各种转换的方法,以及一些转换如何影响分区本身。虽然我理解这一点,但我无法将其与更大的图片联系起来,了解它如何适应我们拥有多个节点的集群。

分区和节点之间是否存在一对一的对应关系?我的意思是,理想情况下每个节点是否有一个分区?如果没有,Spark如何确定特定RDD必须驻留在同一节点上的分区数?

更具体地说,我可以想到以下其中一项: -

1)同一节点上给定RDD的所有分区 2)同一个RDD的所有分区都可以驻留在不同的节点上(但拆分的基础是什么?) 3)同一节点的分区分散在集群中,其中一些分布在同一节点上,其中一些分布在不同的节点上(同样,这种分布的基础是什么?)

有人可以解释一下或者至少指出一些具体的链接吗?

1 个答案:

答案 0 :(得分:8)

  • 单个RDD具有分散在多个节点上的一个或多个分区,
  • 在单个节点上处理单个分区,
  • 单个节点可以处理多个分区(根据official documentation每个CPU最多2-4个分区)

由于Spark支持可插拔资源管理,因此分发的详细信息取决于您使用的(Standalone,Yarn,Messos)。