Flume系列之:记录一次上游数据库产生大量数据导致flume agent数据堆积和服务器IO打满,严重影响下游任务的快速应对处理方法
一、背景
- Debezium采集数据并发送到Kafka,由一个flume agent接收多个数据库的数据,其中一个数据库产生大量数据,导致flume channel数据堆积,服务器io打满,导致数据消费不及时,影响了其他数据库,导致下游任务都产生了延迟
主要产生以下影响:
- 数据堆积
du -sh *
709G flume_agent1
- io打满
iostat -x 1 10
Device %util
vdb %100
二、快速应对解决方法
- 步骤一:首先需要快速定位产生大量数据库的数据
- 步骤二:确定产生大量数据的数据库是否是正常业务需求,如果是可以考虑先创建一个新的flume agent接收这个数据库的数据,再把这个数据库从受影响的flume agent中踢出,这样操作不会丢失数据,并且可以减少flume agent channel中的数据堆积量。
- 步骤三:先起一个flume agent接收受到影响的flume agent上的其他数据库,再把这些数据库从受影响的flume agent中踢出,这样做也是为了减少受影响的flume agent channel中的数据量,加