常见问题

最近更新时间: 2026-03-13 09:03:00

切换其他用户提交任务

在 ranger 中赋予用户 hdfs/yarn/hbase 其他要使用的组件权限(和 admin 用户同级),更改 flink-conf.yaml 中配置的 principal 和 keytab 信息为对应用户。

数据倾斜

当数据发生倾斜(某一部分数据量特别大),虽然没有GC(Garbagee Collection,垃圾回收),但是task执行时间严重不一致。

  • 需要重新设计key,以更小粒度的key使得task大小合理化。
  • 修改并行度。
  • 调用rebalance操作,使数据分区均匀。

报错java.lang.OutOfMemoryError: GC overhead limit exceeded,该如何处理?

  • 报错原因该报错代表为作业设定的内存不够,导致GC超时。常见原因为代码(如UDF)发生内存泄露或者内存大小确实不能满足业务需求。
  • 解决方案
  • 您可在重新运行问题作业前通过-D方式指定JVM参数,保存OutOfMemoryError发生时的现场-D env.java.opts="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.hprof"。
  • 在flink-conf.yaml中添加参数env.java.opts: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.hprof来配置OutOfMemoryError发生时进行heap dump。
  • 待作业再次报错之后,您可针对HeapDumpPath指定的heap dump文件进行分析,确定问题根因。

Flink UI上作业只有一个Operator,并且显示Records Received为0,该如何处理?

这是正常现象,Flink的Records Received相关指标用于描述不同Operator之间的数据通信,当作业被优化为一个Operator时,该指标值恒为0。