我想用性能计数器(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。我还可以在执行期间看到运行execute() - 命令的线程(CHAIN DataSource)的TID。但是对于每次执行,TID都会发生变化,所以它不适用于TID。有没有办法找出jobmanagers子进程的PID,它运行execute() - 命令? rdd的每个转换(例如flatMap)都有不同的子进程吗?如果是这样,是否有可能找到他们不同的PID?
答案 0 :(得分:3)
各个运营商不会在不同的流程中执行。 @RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
// ugly hack how to exclude main configuration
@Configuration("myApp")
@SpringApplicationConfiguration(classes = MyTest.class)
public class MyTest { ... }
和JobManager
作为Java进程启动。然后TaskManagers
运行一组并行任务(对应于运算符)。每个并行任务都在自己的线程中执行。当您启动Flink时,系统将创建包含进程PID的文件TaskManager
和/tmp/your-name-taskmanager.pid
。