[实时计算flink]本地运行和调试包含连接器的作业

本文为您介绍如何在开发者本地环境中运行和调试包含阿里云实时计算Flink版连接器的作业,以便快速验证代码的正确性,快速定位和解决问题,并节省云上成本。

背景信息

当您在IntelliJ IDEA中运行和调试Flink作业,如果其包含了阿里云实时计算Flink版的商业版连接器依赖,可能会遇到无法找到连接器相关类的运行错误。例如,运行含有大数据计算服务MaxCompute连接器的作业时出现如下异常:

Caused by: java.lang.ClassNotFoundException: com.alibaba.ververica.connectors.odps.newsource.split.OdpsSourceSplitSerializerat java.net.URLClassLoader.findClass(URLClassLoader.java:387)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

该异常是由于连接器默认JAR包中缺少部分运行类,您可以通过执行下列步骤来添加这些缺失的类,从而能够在IntelliJ IDEA中运行或调试作业。

步骤一:添加作业配置中的依赖

首先从Maven中央仓库下载包含运行类的uber JAR包。例如对于大数据计算服务MaxCompute使用的依赖ververica-connector-odps,以1.17-vvr-8.0.4-1版本为例,可以在Maven仓库对应目录下看到后缀为uber.jar的ververica-connector-odps-1.17-vvr-8.0.4-1-uber.jar,将其下载到本地目录。

其次在代码中创建环境时增加配置pipeline.classpaths为uber jar路径,若有多个连接器依赖,使用分号隔开,例如file:///path/to/a-uber.jar;file:///path/to/b-uber.jar(对于Windows需要加相应磁盘分区,例如file:///D:/path/to/a-uber.jar;file:///E:/path/to/b-uber.jar)。DataStream API作业通过如下代码配置:

Configuration conf = new Configuration();
conf.setString("pipeline.classpaths", "file://" + "uber jar绝对路径");
StreamExecutionEnvironment env =StreamExecutionEnvironment.getExecutionEnvironment(conf);

Table API作业通过如下代码进行配置:

Configuration conf = new Configuration();
conf.setString("pipeline.classpaths", "file://" + "uber jar绝对路径");
EnvironmentSettings envSettings =EnvironmentSettings.newInstance().withConfiguration(conf).build();
TableEnvironment tEnv = TableEnvironment.create(envSettings);

重要

该新增的pipeline.classpaths配置需要在作业打包上传到阿里云实时计算Flink版之前删除。

步骤二:配置运行所需要的ClassLoader JAR包

为了使Flink能够加载连接器的运行类,还需添加ClassLoader JAR包。首先下载ververica-classloader-1.15-vvr-6.0-SNAPSHOT.jar至本地。

以Inteillij IDEA为例,对作业的本地运行配置进行修改。点击入口类左侧的绿色图标展开菜单栏,并选择“修改运行配置”:

商业版连接器本地运行-IDEA运行1

商业化连接器本地运行-IDEA运行2

在打开的运行配置窗口中,点击“Modify options”,勾选“Modify classpath”,在窗口下方会增加“Modify classpath”一栏,点击“+”号选择上文下载的ClassLoader JAR包,并保存该运行配置。

商业版连接器本地运行-IDEA配置1

步骤三:运行或调试

在IntelliJ IDEA界面右上角的运行面板中,切换到刚才保存的运行配置,即可进行本地运行或调试。

如果提示缺少一些常见的Flink类无法执行,例如org.apache.flink.configuration.Configuration,需要在“Modify options”处勾选“Add dependencies with provided scope to classpath”。

商业版连接器本地运行-IDEA运行3

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

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

相关文章

Psychophysiology:脑-心交互如何影响个体的情绪体验?

摘要 情绪的主观体验与对身体(例如心脏)活动变化的情境感知和评估相关。情绪唤醒增加与高频心率变异性(HF-HRV)降低、EEG顶枕区α功率降低以及心跳诱发电位(HEP)振幅较高有关。本研究使用沉浸式虚拟现实(VR)技术来研究与情绪唤醒相关的脑心相互作用,以实现自然而可…

Linux中如何理解一切皆文件

根据之前的学习我们会有一些少许的疑惑,我们的stdin ,stdout,stderr访问的是键盘显示器,然而键盘显示器等他们都有一个共同的特点就是他们都是外设,那么这些外设是怎么被看成是文件的呢? 看图可以知道硬件的…

干货分享篇-那些你必须知道的CE认证

CE认证,为各国产品在欧洲市场进行贸易提供了统一的技术规范,简化了贸易程序。任何国家的产品要进入欧盟、欧洲自由贸易区必须进行CE认证,在产品上加贴CE标志。因此CE认证是产品进入欧盟及欧洲贸易自由区国家市场的通行证。 一、申请CE认证的必…

记一次有趣的发现-绕过堡垒机访问限制

前言 在某一次对设备运维管理的时候,发现的某安全大厂堡垒机设备存在绕过访问限制的问题,可以直接以低权限用户访问多个受控系统,此次发现是纯粹好奇心驱使下做的一个小测试压根没用任何工具。因为涉及到了很多设备和个人信息,所以…

云轴科技ZStack信创云平台助力上海科技大学实现信创业务落地

编者按 上海科技大学基于“兆芯CPU芯片 云轴科技 ZStack信创云平台 麒麟V10操作系统”构建了全栈信创的校级云平台——上科大Ecloud平台,该平台支撑了上海科技大学的办公业务、教学业务、核心生产业务等业务系统,实现了从VMware平台向国产化软硬件平台的…

使用Docker启动的Redis容器使用的配置文件路径等问题以及Python使用clickhouse_driver操作clickhouse数据库

一、使用Docker启动的Redis容器使用的配置文件路径等问题 1.docker启动的redis使用的配置文件路径是什么 使用docker搭建redis服务,本身redis启动的时候可以指定配置文件的, redis-server /指定配置文件路径/redis.conf。 但手上也没有一个redis配置文件…

Docker 安装Postgres和PostGIS,并制作镜像

1. 查找postgres和postgis现有的镜像和版本号 镜像搜索网站:https://docker.aityp.com/ 测试使用的是postgres:15.4 和 postgis:15-3.4 2、镜像拉取 docker pull postgres:15.4docker pull postgis/postgis:15-3.4镜像下载完成,docker images 查看如…

MATLAB和Python电车电池制造性能度量分析

🎯要点 分析全电池制造端开路电压曲线,解析电化学指标或特征,了解电池的热力学和动力学特性。测试相同活性材料(正极和石墨负极)的两批电池,列出模型提取的电化学特征并可视化分析结果。使用类似电压拟合方…

【Next.js 项目实战系列】03-查看 Issue

原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】02-创建 Issue 查看 Issue 展示 Issue​ 本节代码链接 首先使用 prisma 获取所有…

【算法】KMP字符串匹配算法

目录 一、暴力 二、KMP 2.1 思路 2.2 next数组 2.3 实现 2.4 例题 一个人能走的多远不在于他在顺境时能走的多快,而在于他在逆境时多久能找到曾经的自己。 …

张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全? “没有网络安全就没有国家安全。”当前&#xff…

与ai一起作诗(《校园清廉韵》)

与ai对话犹如拷问自己的灵魂,与其说ai助力还不如说在和自己对话。 (笔记模板由python脚本于2024年10月19日 19:18:33创建,本篇笔记适合喜欢python和诗歌的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&…

知识点框架笔记3.0笔记

如果基础太差,搞不清基本交规的(模考做不到60分),建议找肖肖或者小轩老师的课程看一遍,内容差不多(上面有链接),笔记是基于肖肖和小轩老师的科目一课程以及公安部交管局法规&#xf…

w~自动驾驶合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12320882 #自动驾驶数据集全面调研 自动驾驶技术在硬件和深度学习方法的最新进展中迅速发展,并展现出令人期待的性能。高质量的数据集对于开发可靠的自动驾驶算法至关重要。先前的数据集调研试图回顾这些数据集&…

[前端] ✨【如何用课程设计提升工程能力?】✨笔记

✨【如何用课程设计提升工程能力?】✨ 📚 课程设计真的在语言工具类课程中占据了“C位”!👑设计得好的课程简直像一个实战训练营,既能帮助学生巩固理论,又能培养解决复杂问题的能力,还能让他们…

Redis --- 第六讲 --- 关于持久化

前言 持久化:MySQL的事务,有四大比较核心的特性 1、原子性 2、一致性 3、持久性 》 把数据存储到硬盘上 》持久,把数据存储在内存上》持久化。重启进程/重启主机之后,数据是否存在。 4、隔离性 Redis是一个内存数据库&#…

消息队列(仿RabbitMQ)—— 生产消费模型

本篇将实现一个3000多行的一个小项目,基于AMQP(高级消息队列协议)的消息队列,主要仿照 RabbitMQ 实现该代码,其本质也是生产消费模型的一个升级版本。实现的功能为:消息发布端将消息发送到服务器端&#xf…

如何开启华为交换机 http

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

腾讯 C++ 客户端一面,居然遇见了一道简单题。它怎么用go、C++解决

腾讯是目前全国最强的互联网公司之一,它有很好的福利尤其是能给应届生不错的工资待遇。 也正因如此,想进入腾讯工作的难度和竞争的激烈程度非常之大。 虽然感觉腾讯像是更看重个人综合能力的一家公司,算法题的好坏占面评比相对小些 但是竞争…

二、Linux 系统命令

一、系统命令 # 清屏 (Ctrl L) $ clear# 退出登录 $ exit # 历史命令 $ history $ history | grep java -jar 1. 系统信息 # 查看版本,当前操作系统发行版信息 $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # 查看操作系统位数 $ getco…