Apache Spark如何收集和协调执行者的结果

问题描述 投票:0回答:1

发布此问题以了解Apache Spark如何收集和协调执行者的结果。

假设我正在与3个执行者一起工作。我的DataFrame已分区并在这3个执行器上运行。所以现在,当我在DataFrame上执行count()或collect()操作时,spark将如何协调这3个执行器的结果?

val prods = spark.read.format("csv").option("header", "true").load("testFile.csv")

prods.count(); // How spark collect data from three executors? Who will coordinate the result from different executors and give it to driver?
apache-spark apache-spark-sql yarn executor
1个回答
0
投票

prods.count(); // spark如何从三个执行者收集数据?谁来协调来自不同执行者的结果并将其提供给驱动程序?

当您提交主提交时,如果指定主线程,则如果指定主线程,则本地程序将启动客户机程序(驱动程序)。 https://spark.apache.org/docs/latest/submitting-applications.html

由于您在问题中添加了标签yarn,所以我假设您的意思是yarn-url,所以yarn在群集的任何节点上启动客户端程序(驱动程序)并注册,并为该驱动程序分配工作者(执行程序),以便将任务在每个节点上执行。每个转换/操作在每个工作程序节点(执行程序)上并行运行。一旦每个节点完成作业,它们就会将结果返回给驱动程序。

© www.soinside.com 2019 - 2024. All rights reserved.