Bootstrap

The Yarn application application_xxx_xxx doesn‘t exist in RM

本文主要解决flink在standalone模式下,flink run却一直使用yarn-session模式的问题。

问题

有个客户找到笔者,问题是报错如下:

分析

笔者先从环境入手,首先要确定的是flink是使用了什么模式。确认过后是使用standalone模式。

那就很奇怪,怎么会去使用yarn呢。

解决

说实话,笔者本人也没有遇到类似的问题,但是笔者一般会把不懂的东西转换到懂的东西上,所以先跑一下flink的hello world即wordcount(./bin/flink run ./examples/batch/WordCount.jar -input /etc/hosts -output ./wordcountoutput)。发现报错如下:

可以注意到Info里面提示读到了yarn的配置在/tmp/.yarn-properties-root。查看此文件发现里面包含yarn的appID。

清除此文件以后,重新运行wordcount,成功。在运行客户的sql,也成功了。问题解决。

原因分析

笔者在自己的环境上也复现此问题。复现过程是先使用./bin/yarn-session.sh -n 4 -tm 2048 -s 1 -d启动后,会生成/tmp/.yarn-properties-root。然后使用yarn app -list,yarn app -kill appID。再启动standalone模式。最后使用flink run都会报此错误。所以当yarn app不存在以后,要及时的删除/tmp/.yarn-properties-root。希望读者可以注意这个关键点。

有大数据问题,就找windpig~

;