1.概述
转载:Flink 使用IntelliJ IDEA 进行远程调试代码
Flink on Yarn 不好调试, 所以需要用到远程调试.
注意 : 开启远程调试的代码,必须与本地idea的代码必须保持一致.
二 .服务器端配置.
2.1. 设置启动远程debug端口
修改 服务器上的配置文件 ${FLINK_HOME}/flink-config.yaml 增加 环境变量即可.
参考的设置
组件 | 环境变量设置 |
---|---|
Client | env.java.opts.client: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5666 |
JobManager | env.java.opts.jobmanager: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 |
TaskManager | env.java.opts.taskmanager: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006 |
2.2. 具体操作
编辑服务器上的配置文件[ ${FLINK_HOME}/flink-config.yaml 随便加上一行[记住端口!!!]:
# jobmanager debug端口
env.java.opts.jobmanager: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
# taskmanager debug端口
env.java.opts.taskmanager: -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
suspend : 是否阻塞, 如果是调试启动的话, 建议设置成 y .
address : 调试的远程端口 5005
调试JobManager的话,要注意设置一下超时时间.
修改 配置文件[ ${FLINK_HOME}/flink-config.yaml 增加一行代码:
# 设置超时 时间 . 单位 毫秒.
rest.connection-timeout: 360000000
rest.idleness-timeout: 360000000
启动服务即可 [启动完, JVM返现有jdwp的配置,会自动阻塞, 等到idea调试连接.].
因为我要调试的是JobManager .
所以启动命令为:
cd ${FLINK_HOME}/bin
# 启动任务
flink run -t yarn-per-job -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount examples/streaming/SocketWindowWordCount.jar --port 9999
查看日志
为了便于观察报错信息 . 打开JobManager相关的 日志, 使用命令进行查看就可以了.
到这里,服务端配置就完成了.
三 .Idea配置
将与服务器同步的代码导入到idea中, 导入完成, 不编译,不管报错信息…
只要导入到idea , 等idea自己构建完就可以了…
3.1. 配置远程连接
-点击 Edit Configurations…
建立远程debug就可以了
主要是端口一定要跟服务端配置的端口要匹配.
第0步, 选择Remote 的截图.
3.3. 启动调试
-选择刚才的配置,启动debug调试即可. 然后就可以等待连接到服务器,进行DEBUG操作了…