一 背景
项目基于华为 mrs 平台,hadoop3.1.1,想升级 flink client 客户端从 1.11.0 到 1.16.0,1.11.0 已经用了两年了,flink 已经发布到了1.17 增加了很多新特性,速度和稳定性都会更好一些,于是决定升级。
二 遇到的问题
1、Flink run 提交任务到 yarn 之后,作业失败,yarn 日志没有跟异常相关的明确信息,只是报 Container 异常退出,这个是 hadoop-common 包引起的,引用华为的版本就没有问题。
分析了 hadoop-common 开源和华为版本的区别,源代码改了很多,无奈只能老实用华为版本的包了 ![](https://img-blog.csdnimg.cn/f0d45630cb6d403b8a7429796aec79fe.png)
NodeManager 报了一个 Launch Container fail![](https://img-blog.csdnimg.cn/b9f00bea1dab4f369179c6a1654ce1a8.png)
2、Flink 1.16 使用华为版本 hadoop-common 提交到 yarn 之后,flink web ui 不显示 metrics 信息
![](https://img-blog.csdnimg.cn/6a1be9a648634bcebf6dc99274ab7384.png)
查看了页面接口调用,返回为空数组,猜测是 Jobmanager 没有采集到 Metrics 信息,于是查看 Jobmanager 日志,报了一个 hadoop-common 包下 commons-math3 一个类找不到,说明hadoop-common 冲突了 flink 的类,将 hadoop-common 下的 commons-math3 排除掉就可以了。