在flink集群中运行jar包出ClusterRetrieveException: Couldn‘t retrieve Yarn cluster问题的解决办法

  • Post author:
  • Post category:其他


如果将idea上的flink代码打包运行在flink集群上,出现如下问题

在这里插入图片描述

有两方面需要考虑:



一、修改yarn-site.xml配置文件,原因是可能内存超过虚拟内存的限制,所以需要对yarn进行虚拟内存限制修正,将如下两个配置改为false
<property>
    //pmem指的是默认检查物理内存,容器使用的物理内存不能超过我们限定的内存大小,因为我们上面设置了所有容器能够使用的最大内存数量,超出这个内存限制,任务就会被kill掉
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    //vmem指的是默认检查虚拟内存,容器使用的虚拟内存不能超过我们设置的虚拟内存大小
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>



二、jar包运行环境

打成的jar包运行在flink集群中要看集群的模式,如果运行在yarn模式下,要运行在内存集中管理模式或者内存job管理模式下,如果没有指定将会出现上述错误

**内存集中管理模式:**在Yarn中初始化一个Flink集群,开辟指定的资源,之后我们提交的Flink Job都在这个Flink yarn-session中,也就是说不管提交多少个job,这些job都会共用开始时在yarn中申请的资源。这个Flink集群会常驻在Yarn集群中,除非手动停止

**内存job管理模式:**在Yarn中,每次提交job都会创建一个新的Flink集群,任务之间相互独立,互不影响并且方便管理。任务执行完成之后创建的集群也会消失



版权声明:本文为onthe_wing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。