文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Flink/ Flink常见问题/ Flink对接HBase时出现持续背压并出现Full GC
更新时间:2025-07-14 GMT+08:00

Flink对接HBase时出现持续背压并出现Full GC

问题现象

Flink任务的Source端是Kafka,Sink端为HBase等性能弱于Kafka的组件时,可能出现如下现象:

  • 现象一:任务运行一段时间中断,可能出现如下报错,Checkpoint持续失败:
    Caused by:org.apache.hadoop.ipc.RemoteException: File does not exist:/flink/checkpoints/xxxx  does not have anyopen files.
  • 现象二:任务运行一段时间后,taskmanager故障,可能出现如下报错:
    org.apache.flink.util.FlinkException: The TaskExecutor is shutting down 或者 the remote taskmanager has been lost。
  • 现象三:任务首个算子出现大量的背压。

原因分析

  1. 收集查看任务的GC日志是否出现大量的Full GC,如下图:

  2. 业务使用了宽度较大的窗口函数,例如将窗口时间设置了小时级别,导致内存被占满。

  3. Sink端的组件性能很差。

    例如向HBase等组件写入时,这些组件本身的性能较差导致整体任务出现背压。

解决方案

  1. 可以适当增加Taskmanager的启动内存。
  2. 调优窗口函数,防止数据在内存中堆叠。
  3. 调优Sink端的组件,或者增加Sink端的并发,防止出现背压。