Flink 2.0 编译

文章目录

    • Flink 2.0 编译
      • 第一个问题 java 版本太低
      • maven 版本太低
      • maven 版本太高
      • 开始编译
      • 扩展多版本jdk 配置

Flink 2.0 编译

看到Flink2.0 出来了,想去玩玩,看看怎么样,当然第一件事,就是编译代码,但是没想到这么多问题,首先我们还是看一下Flink 2.0 有什么变化

在 2.0 版本中,Flink 引入了若干创新性功能,以应对实时数据处理的关键挑战,并满足现代应用(包括人工智能驱动的工作流)不断增长的需求。

  • 分离式状态管理 架构使得 Flink 在云原生环境中更高效地利用资源,在确保高性能实时处理的同时将资源开销降至最低。

  • 物化表 的引入和改进使用户能够专注于业务逻辑,无需深入了解流处理的复杂性以及流与批处理模式之间的差异,从而简化开发流程并提高生产力。批处理模式的优化为近实时或非实时处理场景提供了具有成本效益的替代方案,扩展了 Flink 对多样化应用场景的适应性。

  • 此外,与 Apache Paimon 的深度集成强化了 流式湖仓 架构,使 Flink 成为实时数据湖应用场景的领先解决方案。

  • 随着人工智能和大语言模型的不断崛起,对可扩展的实时数据处理解决方案的需求也在增长。Flink 2.0 在性能、资源效率和易用性方面的进步使其成为 人工智能工作流 的强大基础,确保 Flink 处在实时数据处理创新的前沿地位。

这些改进共同展示了 Flink 致力于满足现代数据应用不断变化的需求,这其中就包括将实时处理能力与人工智能驱动的系统相结合。

除了新功能外,Flink 2.0 还对已弃用的 API 和配置进行了全面清理,这可能导致某些接口和行为出现向后不兼容的变化。升级到此版本的用户应特别注意这些变化,以确保顺利迁移。

第一个问题 java 版本太低

image-20250410182827312

java.lang.UnsupportedClassVersionError: com/puppycrawl/tools/checkstyle/api/AuditListener has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

这个问题很好解决,升级java 就可以了

主版本(Major Version)对应JDK版本
52JDK 8
53JDK 9
54JDK 10
55JDK 11

maven 版本太低

Flink2.0 不支持maven3.6 了,所以必须升级,然后我就直接安装了最新的版本3.9.9

image-20250410182618713

当然你也可以使用Flink2.0 项目中的maven wrapper

image-20250410183052783

或者直接在idea 离配置如上所示,但是悄悄告诉你也不行

./mvnw clean package -DskipTests -Djdk11 -Pjava11-targetError: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.
Investigate or delete /Users/cz/workspace/git/flink/.mvn/wrapper/maven-wrapper.jar to attempt a clean download.
If you updated your Maven version, you need to update the specified wrapperSha256Sum property.

我也不知道flink 团队是怎么搞的,都不自己测试一下吗,不同版本的java 的命令如下

./mvnw clean package -DskipTests -Djdk21 -Pjava21-target
./mvnw clean package -DskipTests -Djdk17 -Pjava17-target
./mvnw clean package -DskipTests -Djdk11 -Pjava11-target

但是都报错,我们还是直接使用自己安装的maven 吧

maven 版本太高

我直接安装了3.9.9 ,打包的时候报错如下

image-20250417211239106

Detected Maven Version: 3.9.9 is not in the allowed range [3.8.6,3.8.6].
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.1.0:enforce (enforce-maven) on project flink-parent: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]

image-20250417211529456

这个我们直接去pom 文件里改吧,这里我在3.8.6 后面配置了3.9.9

image-20250417211748154

开始编译

当然这个过程中,还是各种问题,当然我们还是一一解决了

 mvn clean package -Dmaven.test.skip=true -Djdk17 -Pjava17-target
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (build-test-jars) on project flink-python: An Ant BuildException has occured: /Users/cz/workspace/git/flink/flink-python/target/test-classes does not exist.
[ERROR] around Ant part ...<jar basedir="/Users/cz/workspace/git/flink/flink-python/target/test-classes" destfile="/Users/cz/workspace/git/flink/flink-python/target/artifacts/testUdf1.jar" includes="**/TestScalarFunction1.class"/>... @ 4:206 in /Users/cz/workspace/git/flink/flink-python/target/antrun/build-main.xml

看这个报错我竟然有点茫然,我直接进入flink-python 模块去编译,成功了,但是在根项目下就失败

image-20250417221227761

看这个报错,还是跟test 有关,看起来-Dmaven.test.skip=true 在python 这个项目中没有生效,导致代码没有编译,但是在尝试运行

这个模块我们可以去掉这个跳过测试的参数,就编译成功了

 mvn clean package  -Djdk17 -Pjava17-target  -rf :flink-python

image-20250417221857812

后面的模块,我们又把这个参数加上

mvn clean package -Dmaven.test.skip=true -Djdk17 -Pjava17-target  -rf :flink-s3-fs-base

image-20250417222248240

好坑呀,这里又说这个test jar 不存在,看起来test 的代码还得编译,不然后面的flink-s3-fs-hadoop 找不到依赖

mvn clean install -DskipTests -Djdk17 -Pjava17-target  -rf :flink-s3-fs-base

image-20250417223631093

扩展多版本jdk 配置

这里教大家一个如何本地部署多版本的java,并且随时切换,首先我们吧把下面的配置,配置到/etc/profile 或者是 ~/.bash_profile 文件中

这里由于我jdk8 是手动下载安装的,23和17 都是通过brew 安装的,所以并不在同一个目录下

JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
JAVA_23_HOME=/opt/homebrew/Cellar/openjdk/23.0.2
JAVA_17_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.15alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
alias jdk23='export JAVA_HOME=$JAVA_23_HOME'

image-20250417214414859

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

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

相关文章

获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据

为了对接印度股票市场&#xff0c;获取市场列表、查询IPO信息、查看涨跌排行榜以及通过WebSocket实时接收数据等步骤。 1. 获取市场列表 首先&#xff0c;您需要获取支持的市场列表&#xff0c;这有助于了解哪些市场可以交易或监控。 请求方法&#xff1a;GETURL&#xff1a…

云原生--CNCF-1-云原生计算基金会介绍(云原生生态的发展目标和未来)

1、CNCF定义与背景 云原生计算基金会&#xff08;Cloud Native Computing Foundation&#xff0c;CNCF&#xff09;是由Linux基金会于2015年12月发起成立的非营利组织&#xff0c;旨在推动云原生技术的标准化、开源生态建设和行业协作。其核心目标是通过开源项目和社区协作&am…

【Rust 精进之路之第5篇-数据基石·下】复合类型:元组 (Tuple) 与数组 (Array) 的定长世界

系列&#xff1a; Rust 精进之路&#xff1a;构建可靠、高效软件的底层逻辑 作者&#xff1a; 码觉客 发布日期&#xff1a; 2025-04-20 引言&#xff1a;从原子到分子——组合的力量 在上一篇【数据基石上】中&#xff0c;我们仔细研究了 Rust 的四种基本标量类型&#xff1…

MongoDB 集合名称映射问题

项目场景 在使用 Spring Data MongoDB 进行开发时&#xff0c;定义了一个名为 CompetitionSignUpLog 的实体类&#xff0c;并创建了对应的 Repository 接口。需要明确该实体类在 MongoDB 中实际对应的集合名称是 CompetitionSignUpLog 还是 competitionSignUpLog。 问题描述 …

物联网 (IoT) 安全简介

什么是物联网安全&#xff1f; 物联网安全是网络安全的一个分支领域&#xff0c;专注于保护、监控和修复与物联网&#xff08;IoT&#xff09;相关的威胁。物联网是指由配备传感器、软件或其他技术的互联设备组成的网络&#xff0c;这些设备能够通过互联网收集、存储和共享数据…

PCB原理图解析(炸鸡派为例)

晶振 这是外部晶振的原理图。 32.768kHz 的晶振&#xff0c;常用于实时时钟&#xff08;RTC&#xff09;电路&#xff0c;因为它的频率恰好是一天的分数&#xff08;32768 秒&#xff09;&#xff0c;便于实现秒计数。 C25 和 C24&#xff1a;两个 12pF 的电容&#xff0c;用于…

Jupyter Notebook 中切换/使用 conda 虚拟环境的方式(解决jupyter notebook 环境默认在base下面的问题)

使用 nb_conda_kernels 添加所有环境 一键添加所有 conda 环境 conda activate my-conda-env # this is the environment for your project and code conda install ipykernel conda deactivateconda activate base # could be also some other environment conda in…

【JAVA】十三、基础知识“接口”精细讲解!(二)(新手友好版~)

哈喽大家好呀qvq&#xff0c;这里是乎里陈&#xff0c;接口这一知识点博主分为三篇博客为大家进行讲解&#xff0c;今天为大家讲解第二篇java中实现多个接口&#xff0c;接口间的继承&#xff0c;抽象类和接口的区别知识点&#xff0c;更适合新手宝宝们阅读~更多内容持续更新中…

基于MuJoCo物理引擎的机器人学习仿真框架robosuite

Robosuite 基于 MuJoCo 物理引擎&#xff0c;能支持多种机器人模型&#xff0c;提供丰富多样的任务场景&#xff0c;像基础的抓取、推物&#xff0c;精细的开门、拧瓶盖等操作。它可灵活配置多种传感器&#xff0c;提供本体、视觉、力 / 触觉等感知数据。因其对强化学习友好&am…

企业微信自建应用开发回调事件实现方案

目录 1. 前言 2. 正文 2.1 技术方案 2.2 策略上下文 2.2 添加客户策略实现类 2.3 修改客户信息策略实现类 2.4 默认策略实现类 2.5 接收事件的实体类&#xff08;可以根据事件格式的参数做修改&#xff09; 2.6 实际接收回调结果的接口 近日在开发企业微信的自建应用时…

Linux将多个块设备挂载到一个挂载点

在 Linux 系统中&#xff0c;直接将多个块设备挂载到同一个挂载点是不可能的。这是因为 Linux 的文件系统挂载机制设计为一个挂载点一次只能关联一个文件系统。如果尝试将多个块设备挂载到同一个挂载点&#xff0c;后一次挂载会覆盖前一次的挂载&#xff0c;导致只有最后挂载的…

Spark-SQL(四)

本节课学习了spark连接hive数据&#xff0c;在 spark-shell 中&#xff0c;可以看到连接成功 将依赖放进pom.xml中 运行代码 创建文件夹 spark-warehouse 为了使在 node01:50070 中查看到数据库&#xff0c;需要添加如下代码&#xff0c;就可以看到新创建的数据库 spark-sql_1…

野外价值观:在真实世界的语言模型互动中发现并分析价值观

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

el-select+vue-virtual-scroller解决数据量大卡顿问题

解决el-select中数据量过大时&#xff0c;显示及搜索卡顿问题&#xff0c;及正确的回显默认选中数据 粗略的封装了组件&#xff0c;有需要各种属性自定义的&#xff0c;自己添加设置下 环境 node 16.20.1 npm 8.19.4 vue2、element-ui "vue-virtual-scroller"…

Sqlite3交叉编译全过程

Sqlite3交叉编译全过程 一、概述二、下载三、解压四、配置五、编译六、安装七、验证文件类型八、移植8.1、头文件sqlite3.h8.2、动态链接库移植8.3、静态态链接库移植 九、验证使用9.1. 关键函数说明 十、触发器使用十一、sqlite表清空且恢复id值十二、全文总结 一、概述 SQLi…

软考软件设计师考试情况与大纲概述

文章目录 **一、考试科目与形式****二、考试大纲与核心知识点****科目1&#xff1a;计算机与软件工程知识****科目2&#xff1a;软件设计** **三、备考建议****四、参考资料** 这是一个系列文章的开篇 本文对2025年软考软件设计师考试的大纲及核心内容进行了整理&#xff0c;并…

【数学建模】孤立森林算法:异常检测的高效利器

孤立森林算法&#xff1a;异常检测的高效利器 文章目录 孤立森林算法&#xff1a;异常检测的高效利器1 引言2 孤立森林算法原理2.1 核心思想2.2 算法流程步骤一&#xff1a;构建孤立树(iTree)步骤二&#xff1a;构建孤立森林(iForest)步骤三&#xff1a;计算异常分数 3 代码实现…

【Android面试八股文】Android系统架构【一】

Android系统架构图 1.1 安卓系统启动 1.设备加电后执行第一段代码&#xff1a;Bootloader 系统引导分三种模式&#xff1a;fastboot&#xff0c;recovery&#xff0c;normal&#xff1a; fastboot模式&#xff1a;用于工厂模式的刷机。在关机状态下&#xff0c;按返回开机 键进…

jvm-获取方法签名的方法

在Java中&#xff0c;获取方法签名的方法可以通过以下几种方式实现&#xff0c;具体取决于你的需求和使用场景。以下是详细的介绍&#xff1a; 1. 使用反射 API Java 提供了 java.lang.reflect.Method 类来获取方法的相关信息&#xff0c;包括方法签名。 示例代码&#xff1a…

DeepSeek和Excel结合生成动态图表

文章目录 一、前言二、3D柱状图案例2.1、pyecharts可视化官网2.2、Bar3d-Bar3d_puch_card2.3、Deepseek2.4、WPS2.5、动态调整数据 一、前言 最近在找一些比较炫酷的动态图表&#xff0c;用于日常汇报&#xff0c;于是找到了 DeepseekExcel王牌组合&#xff0c;其等同于动态图…