问题:如何定位 Flink 作业卡在哪里?
首先,配置文件 flink-conf.yaml 添加 Java RMI 远程调度,打开容器的本地 IP 和端口。
env.java.opts: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099 -Djava.rmi.server.hostname=127.0.0.1"
然后,将节点 Node 的端口 1099 转发到 TaskManager 的 Pod 的 1099
kubectl port-forward flink-taskmanager-5fdb5f69f-whpwg 1099
最后,打开 JConsole,选择远程进程,填写节点 Node 对外开放的 IP
通过可视化工具 JConsole,可以实时监控 TaskManager 的 JVM 信息。