IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> flink checkpoint timeout问题定位 -> 正文阅读

[大数据]flink checkpoint timeout问题定位

一般来讲,checkpoint配置10s-60s都是合理的,默认的超时时间是600s,在业务逻辑不复杂的情况下,极少会出现超时的情况

如果发生了超时。就需要先定位到具体的机器和进程。
然后再根据业务场景排查具体是什么问题引起的超时。
flink集群和上下游组件正常运行的情况下,由于业务逻辑处理或者数据问题导致超时的概率应该在99%以上,所以在排除系统问题的情况下,直接从业务逻辑定位问题是正确的方向。

排查思路分3步:

1. 先找到超时的subtask序号

如果超时正在发生,可以直接在
在这里插入图片描述
这里看到超时的那一条记录。

如果超时已经结束了,可以查看历史记录:

在这里插入图片描述
点击图中的位置找到超时的那条checkpoint记录

在这里插入图片描述

然后找到超时的subtask

在这里插入图片描述
注意2点:

  • 这里的subtask=48 不是说在第48台机器。这点不要被误导;
  • 这个列表的subtask序号是从1开始的。

2. 找到对应的机器和任务

curl “http://flinkip:8088/proxy/${application_id}/jobs/${job_id}/vertices/${vertice_id}”| python -m json.tool

执行这个命令,这个命令中有三个参数需要替换下:

  • application_id和job_id 需要使用自己任务的,可以直接在ui中的url中拿到;
  • vertice_id需要查一下,具体查找的方式如下:
    在这里插入图片描述
    打开控制台搜索一下vertices关键字,然后找到第一条信息2,点击进去,查到响应结果值3,根据你超时的subtask算子,找到对应序号的vertices_id

也可以直接 curl “http://flinkip:8088/proxy/${application_id}/jobs/${job_id}” | python -m json.tool 找到vertices的json块,拿到对应的vertices_id

最终拼接成一个链接,比如:

curl “http://flinkip:8088/proxy/application_1603111931177_15197/jobs/87431c768c9da649edb8239b7265c7a4/vertices/47d89856a1cf553f16e7063d953b7d42”| python -m json.tool

然后在终端请求一下,就可以找到每一个subtask对应的机器和端口号了。比如:
在这里插入图片描述
这里要注意的是,请求返回的json中subtask的序号是从0开始的,按照上面flink界面截图中subtask=48出现的checkoutpoint timeout的话,应该要找的是json中subtask=47的机器ip和端口。截图中展示的是subtask=95的信息,都是一样的。

3. 自行排查问题

知道出问题的subtask任务的机器和端口了,就可以去对应机器上找到任务,一般直接:

  • netstat -nap| grep 端口号 就找到对应的pid了,
  • 然后ps aux | grep pid 就找到任务目录和日志了。

然后就自行根据业务逻辑排查:

  • error.log
  • 自己的业务日志
  • 进程是否频繁full gc
  • 。。。。。。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 15:57:19  更:2021-08-06 15:57:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 18:28:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码