0

パフォーマンス カウンター (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 では機能しません。execute() コマンドを実行する jobmanagers 子プロセスの PID を把握する方法はありますか? また、rdd の変換 (flatMap など) ごとに異なる子プロセスがありますか? もしそうなら、それらの個別の PID を見つけることは可能ですか?

4

1 に答える 1

4

個々のオペレーターは個別のプロセスで実行されません。JobManagerと は、TaskManagersJava プロセスとして開始されます。次にTaskManager、一連の並列タスク (オペレーターに対応) を実行します。各並列タスクは、独自のスレッドで実行されます。Flink を開始すると、システムはプロセスの PID を含むファイル/tmp/your-name-taskmanager.pidを作成します。/tmp/your-name-jobmanager.pid

于 2015-10-30T16:25:20.680 に答える