Flink開發環境準備
學習一門新的編程語言時,往往會從"hello world"程序開始,而接觸一套新的大數據計算框架時,則一般會從WordCount案例入手,下面以大數據中最經典入門案例WordCount為例,來編寫Flink代碼,Flink底層源碼是基于Java代碼進行開發,在Flink編程中我們除了可以使用Java語言來進行編寫Flink程序外,還可以使用Scala、Python語言來進行編寫Flink程序,在后文章中我們將會主要使用Java和Scala來編寫Flink程序。下面來準備下Flink開發環境。
(資料圖)
一、Flink版本
本套課程中我們采用Flink最新版本1.16.0,Flink1.16.0版本官方文檔地址:
https://nightlies.apache.org/flink/flink-docs-release-1.16/
二、JDK環境
Flink核心模塊均采用Java開發,所以運行環境需要依賴JDK,Flink可以基于類UNIX 環境中運行,例如:Linux、Max OS、Windows等,在這些系統上運行Flink時都需要配置JDK環境,Flink 1.16.0版本需要JDK版本為JDK11,目前版本也支持使用JDK8,后續版本對JDK8的支持將會移除。
考慮到Flink后期與一些大數據框架進行整合,這些大數據框架對JDK11的支持并不完善,例如:Hive3.1.3版本還不支持JDK11,所以本課程采用JDK8來開發Flink。對JDK8安裝及配置不再詳述。
附:JDK11 下載地址如下:
https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
三、開發工具
我們可以選擇IntelliJ IDEA或者Eclipse作為Flink應用的開發IDE,Flink開發官方建議使用IntelliJ IDEA,因為它默認集成了Scala和Maven環境,使用更加方便,我們這門課使用IntelliJ IDEA開發工具,具體安裝步驟不再詳述。
四、Maven環境
通過IntelliJ IDEA進行開發Flink Application時,可以使用Maven來作為項目jar包管理工具,需要在本地安裝Maven及配置Maven的環境變量,需要注意的是,Maven版本需要使用3.0.4及以上,否則編譯或開發過程中會有問題。這里使用Maven 3.2.5版本。
五、Scala環境
Flink開發語言可以選擇Java、Scala、Python,如果用戶選擇使用Scala作為Flink應用開發語言,則需要安裝Scala執行環境。
在Flink1.15之前版本,如果只是使用Flink的Java api ,對于一些沒有Scala模塊的包和表相關模塊的包需要在Maven引入對應的包中加入scala后綴,例如:flink-table-planner_2.11,后綴2.11代表的就是Scala版本。在Flink1.15.0版本后,Flink添加對opting-out(排除) Scala的支持,如果你只使用Flink的Java api,導入包也不必包含scala后綴,你可以使用任何Scala版本。如果使用Flink的Scala api,需要選擇匹配的Scala版本。
從Flink1.7版本往后支持Scala 2.11和2.12版本,從Flink1.15.0版本后只支持Scala 2.12,不再支持Scala 2.11。Scala環境可以通過本地安裝Scala執行環境,也可以通過Maven依賴Scala-lib引入,如果本地安裝了Scala某個版本,建議在Maven中添加Scala-lib依賴。Scala2.12.8之后的版本與之前的2.12.x版本不兼容,建議使用Scala2.12.8之后版本。
六、Hadoop環境
Flink可以操作HDFS中的數據及基于Yarn進行資源調度,所以需要對應的Hadoop環境,Flink1.16.0版本支持的Hadoop最低版本為2.8.5,本課程中我們使用Hadoop3.3.4版本。關于Hadoop3.3.4版本搭建,后續文章會手把手進行搭建。

- 業之峰618年中大促倒計時,自營家裝4.0首次加入!自從今年4月22日發布以來,自營家裝4 0還是第一次參加業之峰...
- 尊享8大裝修特權!業之峰618年中大促即將舉行要想享受業之峰裝飾高品質的家裝服務,什么時候最合適?答案...
- 倍效店務:專注實體數字化經營,賦能業績店效雙增長2023年6月15日,高校智庫(hctr net)正式發布《2023全國民辦...
- 泰褲辣!業之峰618年中大促讓你玩出新潮感每年618,業之峰裝飾集團都要給消費者獻上一年一度的年中大促...
- 奢侈品手表品牌復刻一手貨源世界名表一比一高仿手表精仿名表。 支持貨到付款批發市場一...
- 跌停能賣出嗎?漲停跌停還能交易嗎?
2023-06-14 15:46:11
- 按揭轉抵押有什么優缺點?按揭轉抵押有什么風險?
2023-06-09 16:31:22
- 什么是除權價?股票前復權和不復權哪個準確?
2023-06-02 16:50:36
- 股票XD會持續幾天?xd股票分紅到股票賬戶嗎?
2023-06-01 16:50:07
- xd股票是好是壞?股票xd當天買入的好處?
2023-05-29 16:51:29