gpt4 book ai didi

java - 是否可以对 Apache Spark 中的所有工作人员执行命令?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:08 27 4
gpt4 key购买 nike

我有一种情况,我想在 Spark 中的每个 worker 上执行一个系统进程。我希望这个过程在每台机器上运行一次。具体来说,此过程会启动一个守护进程,该守护进程需要在我的程序的其余部分执行之前运行。理想情况下,这应该在我读取任何数据之前执行。

我在 Spark 2.0.2 上使用动态分配。

最佳答案

您可以结合使用 lazy val 和 Spark broadcast 来实现这一点。它会像下面这样。 (没有编译下面的代码,你可能需要改变一些东西)

object ProcessManager {
lazy val start = // start your process here.
}

在进行任何转换之前,您可以在应用程序开始时广播此对象。

val pm = sc.broadcast(ProcessManager)

现在,您可以像访问任何其他广播变量一样在转换中访问此对象并调用惰性 val。

rdd.mapPartition(itr => {
pm.value.start
// Other stuff here.
}

关于java - 是否可以对 Apache Spark 中的所有工作人员执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40873915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com