Flink on Yarn配置问题

tamoadmin 热门赛事 2024-04-25 18 0

Flink

on

Yarn配置问题

在配置Flink

on

Yarn的过程中,可能会遇到一些问题。以下是根据搜索结果整理的一些常见问题及其解决方案。

安装和依赖关系

1.安装JDK、Hadoop和Zookeeper

Flink依靠Yarn来实现高可用,由于Yarn依赖于Hadoop,而Hadoop又依赖于Jdk。因此,在配置Flink

on

Yarn之前,需要先安装JDK、Hadoop和Zookeeper。

2.Hadoop版本要求

Flink

on

Yarn部署模式要求Flink是有Hadoop支持的版本,Hadoop环境需要保证版本在2.2以上,并且集群中安装有HDFS服务。

3.Yarn集群资源管理

Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色,它可以更好地对集群资源进行调度和控制。

任务挂掉问题

1.任务挂掉后的状态显示

当Flink任务挂掉后,YARN的WebUI可能仍然显示任务在运行,但实际上已经挂掉。这是因为Flink提交给YARN之后,YARN后续并没有继续监控Flink任务的状态。为了解决这个问题,可以在提交任务时,命令行加一个参数d。

2.Container释放和丢失节点

如果出现"Containerreleasedona*lost*node"的错误,可能是由于YARN队列压力过大或者磁盘满了之后,可能会导致Flink申请的节点标记为失败,导致taskmanager挂掉。如果有配置重启策略的话,taskmanager会进行重启。如果没有配置重启策略但是配置了checkpoint,

默认的重启策略是无限次重启。但是需要注意一点的是,taskmananger成功重启的前提是jobmanager没有挂掉,如果jobmanager也挂掉了,那么taskmanager重启成功之后也是无效的。

3.Flink

Flink on Yarn配置问题

HA配置

如果想要配置Flink

on

Yarn的高可用性,需要在conf/flinkconf.yaml添加以下配置:高可用性模式(必需)设置为zookeeper;yarn.applicationattempts参数代表FlinkJob在Jobmanager(或者叫ApplicationMaster)恢复时,允许重启的最大次数;还需要配置ZooKeeper服务器的IP和端口。

作业提交问题

1.yarnsession.sh与flink

run的区别

使用yarnsession.sh启动Flink集群时,会先在yarn集群中启动一个Flink集群,然后再提交作业,相当于所有Flink应用共享一个集群。而使用flink

run直接在YARN上提交运行Flink作业,这种方式的好处是一个任务会对应一个job,即没提交一个作业会根据自身的情况,向yarn申请资源,直到作业执行完成,并不会影响下一个作业的正常运行,除非是yarn上面没有任何资源的情况下。

2.Flink

on

Yarn交互过程

要使得Flink运行于yarn上,Flink要能找到hadoop配置,因为要连接到yarn的resourcemanager和hdfs。每当创建一个新flink的yarnsession的时候,客户端会首先检查要请求的资源(containers和memory)是否可用。然后,将包含flink相关的jar包盒配置上传到hdfs。接着就是客户端会向resourcemanager申请一个yarncontainer用以启动ApplicationMaster。

以上是根据搜索结果整理的Flink

on

Yarn配置过程中可能遇到的问题及其解决方案。希望对您有所帮助。