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 apachespark中的数据分发_Apache Spark - Fatal编程技术网

Apache spark apachespark中的数据分发

Apache spark apachespark中的数据分发,apache-spark,Apache Spark,我是spark新手,有一个一般性问题。据我所知,整个文件必须在所有要处理的工作节点上可用。如果是这样,他们如何知道应该读取哪个分区?驱动程序控制分区,但驱动程序如何告诉他们读取哪个分区?每个RDD被划分为多个分区。为了计算每个分区,Spark将生成一个任务并将其分配给工作节点。当驱动程序向工作者发送任务时,它还指定该任务的分区ID 然后,工作者通过将RDD的迭代器链接回InputRDD并传递分区ID来执行任务。inpurdd确定输入的哪个部分对应于指定的分区id并返回数据 rddIter.nex

我是spark新手,有一个一般性问题。据我所知,整个文件必须在所有要处理的工作节点上可用。如果是这样,他们如何知道应该读取哪个分区?驱动程序控制分区,但驱动程序如何告诉他们读取哪个分区?

每个RDD被划分为多个分区。为了计算每个分区,Spark将生成一个任务并将其分配给工作节点。当驱动程序向工作者发送任务时,它还指定该任务的分区ID

然后,工作者通过将RDD的迭代器链接回InputRDD并传递分区ID来执行任务。inpurdd确定输入的哪个部分对应于指定的分区id并返回数据

rddIter.next -> parentRDDIter.next -> grandParentRDDIter.next -> ... -> InputRDDIter.next

Spark尝试从靠近RDD的节点将数据读入RDD。由于Spark通常访问分布式分区数据,为了优化转换操作,它会创建分区来保存数据块


您的意思是工作人员首先获取所有分区,然后处理它们吗?