bg:op 菜鸟
1.某一天上线了一个 flink-doris 任务,be 开始突然频繁宕机影响数据。
2.op 对这方面不是很了解,刚开始误以为是新上传的代码有问题,发现即使把任务下线 be 也会经常宕机。后面发了帖子猜测是内存不够或者 oom ,但是机器内存是很够的;当时 v2 老哥回复说去看看 be 节点的日志,去看了没找到原因(后面才发现 be 的日志路径我找错了,没有找到正确的 be 日志。。。)
3.于是 op 猜测是版本太老的原因,使用的是 2.0-beta 版本,准备升级到稳定一点的版本。看了网上的文档和教程,先在测试环境试了很久又找了之前搞数据的同学帮忙,终于在前天升级到了 2.1.4 版本。
4.结果还是一直挂,此刻我真的要疯狂了。这回能找到正确的 be 日志,查看 be.out 宕机的原因,拿到 queryid 去 fe 的日志里定位到是这样一条 sql
SELECT CONCAT(14256261, '-', -1, '-', 'dev_id') AS `id`,
0 AS `catalog_id`,
8106728 AS `db_id`,
14256261 AS `tbl_id`,
-1 AS `idx_id`,
'dev_id' AS `col_id`,
NULL AS `part_id`,
644 AS `row_count`,
644 as `ndv`,
ROUND(SUM(CASE WHEN `dev_id` IS NULL THEN 1 ELSE 0 END) * 1.0) AS `null_count`,
SUBSTRING(CAST('----------------' AS STRING), 1, 1024) AS `min`,
SUBSTRING(CAST('02G0209270008' AS STRING), 1, 1024) AS `max`,
SUM(LENGTH(`dev_id`)) * 1.0 AS `data_size`,
NOW()
貌似是 doris 内部的 sql 统计字段长度?但是直觉让我猜测那个'----------------'肯定有问题 我就把表里这条数据给删了,然后莫名其妙就好了。
总结:真是莫名其妙的 bug ,莫名其妙的解决方式...