背景
Flink On Yarn的模式, 每次启动任务会将相应的依赖包和flink依赖的jar包, 提交到HDFS上的/user/hdfs/.flink
目录下; 随着Flink任务的不断启停或者新任务的加入, 该目录会越来越大最终导致磁盘空间不足, 从而使对应机器上的进程出现异常
我的猜想在Yarn上应该有控制历史提交数量的参数, 找到了个参数很相近的yarn.resourcemanager.max-completed-applications
, 实验过后并非如此,找了一圈应该是查找的方向错了;Flink的任务只是托管到Yarn让其执行而已,从目录就可以看出来/user/hdfs/.flink
,于是从flink-conf.yaml
的配置开始查找,依旧没有发现,那就从启动流程来看看,找找源码
查找源码
根据目录结构的关键字去查找源码, 如plugins
, 找到源码之后YarnApplicationFileUploader
就知道怎么改了, 加入一些自定义的参数, 做校验清理等操作, 不过考虑到接口的单一性原则还有项目的维护性, 不建议这么做, 更改源码是不得已的做法; 目前可靠的做法, 机器纳入监控, 手工或定时任务去清理过期的Application
的数据
目录结构
源码位置
YarnApplicationFileUploader