一、Flink源码调试概述
在Flink1.9.0源码研究过程中,调试源码是一个非常重要的手段,通过查看真实的运行数据和变量,来了解源码内部运行逻辑
- 如果是本地Jvm调试Flink,我们可以运行源码各种xxxITCase测试用例,加断点来调试,这个相对容易
- 如果我们想调试线上集群,获取JobMaster、TaskManager运行数据、运行逻辑,来解决一些难以在本地Jvm复现的问题,则情况变得复杂了
本文重点介绍如何远程调试线上JobMaster、TaskManager,并增加调试超时时长,希望可以帮到大家
二、动态增加JobMaster、TaskManager调试参数
1、配置调试参数
- 如果yarn上只有一个全局的Flink应用(即Cluster模式),我们可以在$FLINK_HOME/conf/flink-conf.yaml中增加如下参数,来增加远程调试端口,这种方式很多文章都有介绍:
env.java.opts.taskmanager: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006"
env.java.opts.jobmanager: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=