flink1.16.1提交任务到yarn集群遇到jdk版本较低的解决方案

文章描述了在YARN集群上运行Flink1.16时遇到的由于JDK版本过低导致的错误。尽管尝试在flink-conf.yaml中指定JDK路径,但在容器初始化时仍然使用了集群的JDK版本。解决方案是在conf/flink-conf.yaml中添加额外的配置项,为master和taskmanager指定外部JDK路径。这样确保所有组件都使用正确的JDK版本。
摘要由CSDN通过智能技术生成

前言

最近遇到一个yarn集群jdk版本较低,而flink 1.16版本官方要求是8 or 11,奈何yarn集群jdk虽然也是8,但是是早期较早版本,会遇到问题,具体报错如下:

ERROR org.apache.flink.runtime.util.EnvironmentInformation [] - The file .flink-runtime.version.properties has not been generated correctly. You MUST run ‘mvn generate-sources’ in the flink-runtime module. : java.time.format.DateTimeParseException: Text ‘1970-01-01T00:00:00+0000’ could not be parsed: Unable to obtain Instant from TemporalAccessor: {OffsetSeconds=0},ISO resolved to 1970-01-01T00:00 of type java.time.format.Parsed

原因分析

  1. 很多解决方案,包括官方文档提供的,都是在conf/flink-conf.yaml里指定jdk路径

env.java.home: /data/jdk1.8.0_202

  1. 然而会发现报错依旧,查看yarn任务日志发现,虽然flink的配置文件设置了jdk版本,但是最后任务提交到yarn集群初始化container的时候,container是用的集群本身的jdk版本。简而言之,之前在conf/flink-conf.yaml设置jdk版本相当于白做了。

别问为啥不能升级yarn集群jdk版本,问就是白问。大家都懂的(哭了~~~)

解决方案

1.在conf/flink-conf.yaml需要加三行配置。

env.java.home: /data/jdk1.8.0_202
containerized.master.env.JAVA_HOME: /data/jdk1.8.0_202
containerized.taskmanager.env.JAVA_HOME: /data/jdk1.8.0_202

找了好久才找到这么一个解决方案,特此记录一下。

参考文章:

原文链接:
https://blog.csdn.net/huang_rx/article/details/106788324

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值