Flink定位SubTask在哪台机器哪个进程执行

当Flink的SubTask处理速度慢或CheckPoint时间过长时,需要快速定位问题SubTask所在的机器及进程。通过Flink WebUI获取Task的SubTask11(或实际为0)的问题,利用REST API获取TaskManager的vertex ID和机器端口信息,如dn218:20131。然后在目标服务器上用yarn用户执行命令找到对应TaskManager的pid,以便进行jmap或jstack分析。

痛点:假如我们在FLink的WebUI Metrics页面发现有一个SubTask每秒处理的数据明显比其他低,又或者在CheckPoint页面,发现有一个SubTask的CheckPoint时间明显比较长。有时候定位问题需要到TaskManager所在机器找到相应的Java进程使用jmap分析进程的内存使用或者jstack分析线程信息。现在问题来了,如果你知道某个SubTask已经有问题了,怎么快速找到该SubTask到底在哪台机器,哪个进程呢?

Web UI的Metrics页面处理速率.png

图1中可以看出Task “Flat Map -> Sink: Kafka Topic : pv-event”对应的SubTask11相对其他SubTask处理速率比较慢

CheckPoint SubTask时长.png

图2中可以看出Task “Flat Map -> Sink: Kafka Topic : pv-event”对应的SubTask1相对其他SubTask执行CheckPoint很慢。这里有一点比较坑,Flink内所有的地方SubTask下标都是从0开始,但是这个CheckPoint页面,SubTask从1开始,所以这里显示的是SubTask1有问题,实际上是Task “Flat Map -> Sink: Kafka Topic : pv-event”的SubTask0有问题,这里我看了接口返回的数据也是从0开始,但是WebUI显示的时候进行了加1,我们解决问题的时候,必须要手动减1操作

接下来,教大家如何找到Task “Flat Map -> Sink: Kafka Topic : pv-event”对应的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值