【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

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…

【flink】Flink 使用IntelliJ IDEA 进行远程调试代码
建立远程debug就可以了
主要是端口一定要跟服务端配置的端口要匹配.

【flink】Flink 使用IntelliJ IDEA 进行远程调试代码
第0步, 选择Remote 的截图.
【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

3.3. 启动调试

-选择刚才的配置,启动debug调试即可. 然后就可以等待连接到服务器,进行DEBUG操作了…

【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

上一篇:vmware fusion关闭自动挂起(suspend)的方法


下一篇:php-redis扩展安装