download:Android面试超级攻略,全面攻破技术疑难及面试痛点
0.前言
前阵子在生产上碰到了一个诡异现象:全量作业无法正常进行,日志中充斥着java.util
.concurrent.TimeoutException: Heartbeat of TaskManage
r with id container xxxx(HOSTNAME:PORT) timed out的报错。
场景为Oracle全量抽取至Hive,数据会流过Kafka,数据量为T级别,根据时间字段每天做一个分区。报错的Job负责抽取Kafka
的数据并写至Hive,使用的是TableAPI。
1.排查思路
这个问题报到我这边的时候,有同学已经排查过一轮了。根据网上搜索,会告知你可能是yarn的压力过大、网络短暂不稳定等,可以调大heartbeat.timeout
来缓解这个问题,经调整改问题并未解决。
另外一个说法会告知你是GC频繁的原因。建议调整内存,调整后,的确有一定的效果(使出问题的时间变慢)。那很显然和代码有关系了。
因为之前一个版本同步数据都没有出问题,因此开始寻找最近代码的改动,找了几圈下来并没有找到可疑的代码。顿时觉得有点头皮发麻。于是让现场的同学切换到上个版本继续做全量,现象依旧会发生。
【Android面试超级攻略,全面攻破技术疑难及面试痛点吾爱】这时我就有点怀疑生产环境的特性了——比如数据特性,但现场的同学告知我数据并没有什么特殊之处。于是我要了一份现场的HeapDump,丢到了分析软件上进行查看,发现org.apache.flink.streaming
.api.functions.sink.filesystem.Bucket的对象特别多。
推荐阅读
- 程序员|Android面试反思(开发5年crud背景,惨遭字节阿里双挂,Android已死)
- java|用Compose实现手写春联效果
- opengl|直播换脸后,我们来搞搞微信QQ聊天换脸!| avatarify
- android|android coredump,coredump功能介绍
- android|android eclipse debug coredump,Android P 开启抓取Coredump功能
- 程序员|安卓app开发难不难!你所不知道的Android原生开发的现状,跳槽薪资翻倍
- Python|APP开发用什么框架最好(这5大框架,开发者必备神器)
- ios|哔咔漫画iOS如何下载
- java|你们对移动端架构有怎样的思考()