Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark RDD、分区和节点之间的关系_Apache Spark_Rdd - Fatal编程技术网

Apache spark RDD、分区和节点之间的关系

Apache spark RDD、分区和节点之间的关系,apache-spark,rdd,Apache Spark,Rdd,我一直在阅读有关RDD的书籍,了解分区如何影响各种转换,以及一些转换如何影响分区本身。虽然我理解这一点,但我无法将其与更大的图景联系起来,即这如何适用于我们有多个节点的集群 分区和节点之间是否存在一对一的对应关系?我的意思是,如果理想情况下每个节点都有一个分区?如果不是,Spark如何决定特定RDD的多少个分区必须驻留在同一个节点上 更具体地说,我可以想到以下之一:- 1) 同一节点上给定RDD的所有分区 2) 同一RDD的所有分区可以驻留在不同的节点上(但拆分的基础是什么?) 3) 同一节点的

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

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

更具体地说,我可以想到以下之一:-

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

有人能给我解释一下,或者至少给我指出一些具体的链接,这些链接正好回答了这个问题吗?

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

由于Spark支持可插拔的资源管理,因此发行版的详细信息将取决于您使用的版本(单机版、纱线版、Messos版)

我在一个数据帧上进行了
coalesce(1)
,然后在它上进行了
foreachPartition
,我的日志显示不止一个worker(4个)在同一个分区上迭代。这怎么可能?也许是因为它太大了?@ericbn您很可能看到了对应于
coalesce
之前阶段的任务。