flink提交yarn 集群模式失败

news/2024/7/6 21:19:24/文章来源:https://www.cnblogs.com/datadevelop/p/18283975

flink版本1.14.6
在通过./bin/flink run-application -t yarn-application 模式提交到yarn时失败。
报错信息:

点击查看代码

Caused by: java.lang.ClassCastException: cannot assign instance of org.apache.kafka.clients.consumer.OffsetResetStrategy to field org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer.offsetResetStrategy of type org.apache.kafka.clients.consumer.OffsetResetStrategy in instance of org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializerat java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2287)at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1417)at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2293)at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:617)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:602)at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:589)at org.apache.flink.util.SerializedValue.deserializeValue(SerializedValue.java:67)at org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.create(OperatorCoordinatorHolder.java:431)at org.apache.flink.runtime.executiongraph.ExecutionJobVertex.<init>(ExecutionJobVertex.java:211)

堆栈信息都是底层源码,能力有限,看不出来啥问题
但是根据cause by报错提示可以看出来org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer类中的字段offsetResetStrategy不能强转为org.apache.kafka.clients.consumer.OffsetResetStrategy
所以我直接在本地代码中找到org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer,发现字段offsetResetStrategy的类型确实是org.apache.kafka.clients.consumer.OffsetResetStrategy,而且我的代码在本地能运行,怀疑是代码上传到线上环境后,jar引用关系混乱,没有找到我需要的版本的jar包
在本地代码中,可以发现:org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer属于flink-connector-kafka_2.11-1.14.6.jar
org.apache.kafka.clients.consumer.OffsetResetStrategy属于kafka-clients-3.0.2.jar
于是我将这两个包拷贝到线上flink的lib文件夹下,并将项目的pom的依赖scope改为provided,打包上传,运行成功,没有再次报错。
其实flink的一些依赖的scope也是provided,因为我改为compiled后,会报错,我是借用了flink example里的jar的风格。example里的jar就是只有文件,没有打进去外部依赖jar

问题一:
为什么不将依赖包打入生成的fat jar里呢
答:试过了,不管用,还是会报错,按理说应该是本包的依赖包优先。不知道为什么不生效

梳理下整体思路:
1.首先我是将所有的flink相关依赖和其他日志,json等等依赖打成 fat jar,上传线上运行后,报错:Call From hadoop000001.com/10.210.88.99 to 0.0.0.0:8030 .hadoop000001.com/10.210.88.99是yarn集群 某一个节点,是jobmanager所有的节点ip,8030是yarn的端口,不知道为什么会一直连0.0.0.0,网上找原因说是没有指定正确的yarn resourceManager地址后才会连接0.0.0.0,但是日志中确实显示是我指定的正确的resourceManager地址,不知道问题出在哪,解决啦好几天也没成功,先过,以后有机会再解决
2.然后我想通过fllink/examples/streaming/SocketWindowWordCount.jar 测试下,是我本身代码的问题,还是线上flink环境的问题,结果测试通过,正常运行, 由此怀疑是我自己项目的问题
3.重新建立个干净的项目,pom中加入flink的依赖,scope设置为provided,打包上传运行后报错,缺少link-shaded-guava,然后pom中加入link-shaded-guava依赖,并单独将此依赖的scope设置为compile,再次打包上传运行,就开始报Caused by: java.lang.ClassCastException: cannot assign instance of org.apache.kafka.clients.consumer.OffsetResetStrategy to field org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer.offsetResetStrategy of type org.apache.kafka.clients.consumer.OffsetResetStrategy in instance of org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer
4.然后我将flink-connector-kafka_2.11的依赖scope改为compile,flink-connector-kafka_2.11本身包含kafka-clients-3.0.2.jar打包上传还是不行,还是报java.lang.ClassCastException。
5:本地代码依赖看了后,没发现问题,怀疑是线上环境影响了,将flink-connector-kafka_2.11的scope改为provided,并将flink-connector-kafka_2.11-1.14.6.jar和kafka-clients-3.0.2.jar上传到flink/lib/下,打包上传,运行成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/738103.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot+vue前后端分离项目-项目搭建7-服务器上安装部署

1.下载VMware(个人使用版),官网下载,需要先用邮箱注册,下载地址:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro 2.下载镜像dvd类型的,华为云官网下载,需要先注册,下载地址:https://mirrors.huaweicloud.com/mirro…

linux进程被杀掉日志,Linux进程突然被杀掉(OOM killer),查看系统日志

Linux进程被杀掉(OOM killer),查看系统日志 基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参…

Salesforce开发入门指南:零基础学习宝典!

开发人员将Salesforce组织扩展到声明式配置之外,构建应用程序,进而优化业务运营。Salesforce开发人员通常会使用两种编程语言:Apex和JavaScript。 然而,Salesforce开发不仅仅只包括代码。为了在职业道路上脱颖而出,开发人员还需要了解声明性功能,将组织的设计和性能保持最…

Apache SeaTunnel社区首位学生Committer诞生!

采访对象 | 陈炳烨 采访人&编辑 | Debra Chen Apache SeaTunnel社区第一位学生Committer就此诞生!这位来自西安交通大学软件工程专业的同学从较为简单的文档修改工作,逐步深入到代码层面,到最后独立负责开发模块,为Apache SeaTunnel项目的发展添砖加瓦的同时,他本人也…

VMware vSphere Tanzu部署_13_创建TKC集群

1.登录tanzu集群登录语法为:kubectl vsphere login --server= --vsphere-username --insecure-skip-tls-verify$ kubectl vsphere login --server=192.168.203.194 --vsphere-username administrator@vsphere.local --insecure-skip-tls-verify登录示例jianhua@napp:~$ kubec…

“东数西算”长三角(苏州)算力调度中心正式启用!

近日,“东数西算”长三角(苏州)算力调度中心启用暨智算点亮仪式在苏州吴江区举办,在智算产业园举行了算力调度中心启用、智算点亮和智算合作签约。近日,“东数西算”长三角(苏州)算力调度中心启用暨智算点亮仪式在苏州吴江区举办,在智算产业园举行了算力调度中心启用、…

2024 MWC上海,“翼”彩纷呈!

2024年6月26日,2024世界移动通信大会上海(简称“MWC上海”)盛大开幕。围绕“未来先行”主题,来自全球的产业、技术和社区等各界代表齐聚一堂,共话产业高质量发展。 在“智启云领 向新未来”主题馆内,天翼云展出了“息壤”“云骁”“慧聚”三大智算平台和“天翼AI云电脑”…

Ubuntu20.04中 ORBSLAM3的安装和测试

ORBSLAM3 安装以及测试教程(Ubuntu20.04) 1.前期准备工作 1.1安装相关依赖sudo apt install git cmake gcc g++ mlocate1.2下载ORBSLAM3源码 可以直接通过github下载源码: (https://github.com/UZ-SLAMLab/ORB_SLAM3) 2.安装一些所需的库 2.1 安装Eigen3库 直接通过命令安装 su…

vue3 父组件【属性】传值给子组件【props】接收

父组件文件:parentcomponent.vue 子组件文件:childcomponent.vue传普通值 传动态值 传对象 传数组<!-- 父组件 --> <template><h1>I am ParentComponent</h1><ChildComponent msg="nice"/></template> <script setup>im…

K8S学习教程(二):在 PetaExpress KubeSphere容器平台部署高可用 Redis 集群

前言 Redis 是在开发过程中经常用到的缓存中间件,为了考虑在生产环境中稳定性和高可用,Redis通常采用集群模式的部署方式。 在制定Redis集群的部署策略时,常规部署在虚拟机上的方式配置繁琐并且需要手动重启节点,相较之下,使用 PetaExpress 提供的 Kubernetes(k8s) 服务 进…

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素,正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题,其原因在于业务和数据之间没有形成双向良性驱动。DataLeap可以帮助企业实现数据驱动,通过具体业务中的数据消费数据,实现决策科学、行动敏捷…

IIS发布modules错误和403.14

1、解决IIS启动后报<modules>错误的方案C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules参考:https://blog.csdn.net/sinat_39826352/article/details/784434322、IIS部署问题之403.14 这是因为一般情况下,IIS接受到请求后,如果…

教你5分钟完成OnlyFans注册,轻松绑卡完成订阅

OnlyFans是一个内容服务平台,内容创作者可以通过这个平台发布视频、照片、甚至直播,并设定付费墙,粉丝需支付一定费用才能解锁内容。BinGoCard可以完美解决包括OnlyFans在内的海外平台订阅问题。什么是OnlyFans? OnlyFans是一个内容服务平台,内容创作者可以通过这个平台发…

669分,武汉市第四十九中传来喜讯,璞公英「教师增值评价系统」助力学业提升!

星光熠熠,梦想启航 武汉第四十九中学传来喜讯! 高三(5)班物理类考生潘俊安同学 以总分669分的优异成绩脱颖而出! 潘俊安同学不仅实现了自我超越, 更为学校的高考历史增添了浓墨重彩的一笔。 三年磨一剑,今朝试锋芒 学霸秘诀就是它! 学霸风采:潘俊安 潘俊安:高考总分6…

(面向土木工程研究生)abaqus结构分析(免费)视频教学

土木工程专业的研究生,很多都需要做数值分析,而数值分析的平台很多人都是选择abaqus。然而,很多研究生却是从未使用过abaqus的,即,对于abaqus,他们是真正的新手,常常会“不知从何下手”!就我所知,他们可能还会遇到的另外一个困难就是“他们的导师可能完全不懂数值分析…

CentOS7修复OpenSSH漏洞升级到OpenSSH 9.8 RPM一键更新包

OpenSSH是SSH(Secure Shell)协议的开源实现,它支持在两个主机之间提供安全的加密通信,广泛用于Linux等系统,通常用于安全远程登录、远程文件传输和其它网络服务。 2024年7月1日,OpenSSH Server中存在的一个远程代码执行漏洞(CVE-2024-6387,又被称为regreSSHion)细节被…

stoi字符串转十进制数越界问题

原因 在项目开发过程中需要将字符串转化成十进制数,起初没有问题。但是在之后的开发过程中程序在运行时突然发生崩溃,由于没有做异常处理,报错信息也不明显。最后发现是因为某个字符串转化的字符串转化的十进制数超过了int的范围。 c++中各数据类型取值范围解决方法 改用sto…

C#-听说有人不推荐使用Linq!?

先说结论 linq和直接遍历的性能差异点主要还是迭代方式,数组和字符串这类的foreach都是专门有优化的,而linq都是通用的泛型调用迭代器,如果刚好遇到这类数据又需要高性能就尽量不用linq,其他类型或性能要求不高的还是linq香。(ps:linq写的不好不能怪linq) 背景 起初是看到有…

曙光服务器系统蓝屏数据恢复

一、蓝屏原因分析 首先,需要分析导致曙光服务器系统蓝屏的具体原因。蓝屏通常是由于操作系统或硬件设备驱动程序遇到致命错误所致。可能的原因包括软件冲突、硬件故障(如内存条问题、硬盘故障)、驱动程序过时或不兼容等。 二、安全措施 在进行数据恢复之前,务必确保服务器的…

服务器存储金蝶数据库丢失恢复

一、检查备份情况 确认备份存在: 首先,需要确认是否有金蝶数据库的备份存在。备份是数据恢复的基础,没有备份的情况下恢复数据将非常困难。 检查备份的完整性和时效性: 验证备份文件的完整性和时效性,确保备份文件没有损坏且包含丢失数据之前的数据库状态。二、使用备份恢…