作业完成后,如何使每个Spark Worker运行每个工人相同的功能?

时间:2018-12-05 12:52:48

标签: apache-spark yarn

我正在用yarn进行火花作业,我的代码用Java编写,现在我想执行一个函数,以便在工人的工作完成后在每个工人中收集一些资源。

我尝试了mapPartitions()函数,但是在同一个工作进程中运行了许多分区,因此该函数将执行多次。

我可以实现它吗?如何实现?

代码已更新:

 JavaRDD<String> sourceRDD = context.textFile(inputPath);
 sourceRDD.map(doSomething()); // every worker has it's env, I want to execute a function in every worker when map() ends.
 doResourceCollect(); // It runs in the final worker, so I can't get worker's env.

0 个答案:

没有答案