在任务实际运行过程中,有时发现某个subtask存在某在问题,如CheckPoint较慢,吞吐较慢等。就需要对问题进行排查,定位出subtask所在的服务器。下面,就教大家如何查看各个subtask运行的服务器。
一、登陆yarn ui,进入flink ui界面。
二、获取jobid。
三、通过 rest api 获取 subtask 的 vertice id。
curl {prefix_url}/jobs/{jobid}
如:
curl http://xxxx:8088/proxy/application_1537321457152_19277/jobs/76ae96ee20046384a5d999214a588a71
说明:
(1)prefix_url:即步骤一的 flink ui 地址。
(2)jobid:即步骤二获取的jobid。
四、获取对应task的subtask所在的服务器地址和端口。
curl {prefix_url}/jobs/{jobid}/vertices/{vertice id}
如:
curl http://xxx:8088/proxy/application_1537321457152_19277/jobs/76ae96ee20046384a5d999214a588a71/vertices/3b5ca4c9ab8da3fb5ee7af5b0273cdc9
说明:
(1)prefix_url:即步骤一的 flink ui 地址。
(2)jobid:即步骤二获取的jobid。
(3)vertice id:即步骤三获取的vertice id。
说明:
(1)接口返回的subtask编号从0开始编号,flink ui的编号做了加1处理。只需将flink task 的 subtask 编号减1即可对应。
【一起学习】