You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 付永华 <18...@163.com> on 2024/08/23 08:19:42 UTC
Taskmanager堆积LeaseRenewer线程问题咨询
您好!
我这边在使用Flink时遇到一个比较奇怪的问题,问题如下:
flink版本1.15.2, 开启了checkpoint,间隔时间为60s,checkpoint storage 为 FileSystemCheckpointStorage,state backend为EmbeddedRocksDBStateBackend;观察Taskmanager的线程堆栈中,堆积了很多LeaseRenewer:user@nameservice1的等待线程,为什么会出现这种情况?有没有人反馈过类似的问题呢?我这边需要怎么处理才能解决这个问题,帮忙看一下谢谢
Re: Taskmanager堆积LeaseRenewer线程问题咨询
Posted by Bruce Bian <xi...@gmail.com>.
你好, 这边猜测, 应该flink在checkpoint到hdfs的过程中, hadoop hdfs client 存在续约线程泄露的问题.
根据checkpoint周期和任务checkpoint大小,比较容易的复现在写入clickhouse/iceberg的flink任务的taskmanager中,
并且泄露的线程以每天10~30的速度增长. 通过arthas发现LeaseRenewer线程不能被正确销毁和不断地创建, 基本判定是
LeaseRenewer的锁和检查机制失败导致线程泄露, 这个问题不止影响hadoop 3.1.0版本, 经过测试hadoop 历史版本(比如
2.8.5也受到了影响)https://issues.apache.org/jira/browse/HDFS-14575,
大家可以把jira中提交的commit变动的两个类DFSClient.java LeaseRenewer.java cherry
pick到生产使用的分支进行对比测试, 这个jira commit中也包含了完整的线程泄露过程的单元测试供测试
付永华 <18...@163.com> 于2024年8月23日周五 16:21写道:
> 您好!
>
> 我这边在使用Flink时遇到一个比较奇怪的问题,问题如下:
>
> flink版本1.15.2, 开启了checkpoint,间隔时间为60s,checkpoint storage 为
> FileSystemCheckpointStorage,state
> backend为EmbeddedRocksDBStateBackend;观察Taskmanager的线程堆栈中,堆积了很多LeaseRenewer:user@nameservice1的等待线程
> ,为什么会出现这种情况?有没有人反馈过类似的问题呢?我这边需要怎么处理才能解决这个问题,帮忙看一下谢谢