如何找出flinks执行过程的pid?

ghhkc1vu  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(635)

我想用性能计数器(perf)来衡量flinks的性能。我的代码:

var text = env.readTextFile("<filename>")
var counts = text.flatMap { _.toLowerCase.split("\\W+") }.map { (_, 1) }.groupBy(0).sum(1)
counts.writeAsText("<filename_result>", WriteMode.OVERWRITE)
env.execute()

我知道工作经理的pid。我还可以看到线程(chain datasource)的tid,它在执行期间运行execute()—命令。但是对于每个执行,tid都会改变,因此它不会与tid一起工作。有没有一种方法可以计算出运行execute()-命令的jobmanagers子进程的pid?rdd的每个转换(如flatmap)是否都有不同的子进程?如果是这样的话,是否有可能找出它们不同的PID?

ma8fv8wu

ma8fv8wu1#

单个运算符不会在不同的进程中执行。这个 JobManager 以及 TaskManagers 作为java进程启动。这个 TaskManager 然后运行一组并行任务(对应于操作符)。每个并行任务都在自己的线程中执行。启动flink时,系统将创建文件 /tmp/your-name-taskmanager.pid 以及 /tmp/your-name-jobmanager.pid 包含进程的pid。

相关问题