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.pswp.cn/bicheng/77978.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77978.shtml
英文地址,請注明出處:http://en.pswp.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;其等同于動態圖…