IDEA上運(yùn)行Flink任務(wù)的實(shí)戰(zhàn)教程
歡迎訪問(wèn)我的GitHub
https://github.com/zq2599/blog_demos
內(nèi)容:所有原創(chuàng)文章分類(lèi)匯總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;
IDEA是常用的IDE,我們編寫(xiě)的flink任務(wù)代碼如果能直接在IDEA運(yùn)行,會(huì)給學(xué)習(xí)和開(kāi)發(fā)帶來(lái)很大便利,例如改完代碼立即運(yùn)行不用部署、斷點(diǎn)、單步調(diào)試等;
環(huán)境信息
- 電腦:2019版13寸MacBook Pro,2.3 GHz 四核Intel Core i5,8 GB 2133 MHz LPDDR3
- 操作系統(tǒng):macOS Catalina 10.15.3
- JDK:1.8.0_211
- Maven:3.6.0
- IDEA:2018.3.5 (Ultimate Edition)
- Flink版本:1.9.2
關(guān)于正版IDEA
如何免費(fèi)使用正版IDEA,可以參考《免費(fèi)申請(qǐng)和使用IntelliJ IDEA商業(yè)版License指南》
開(kāi)發(fā)
- 首先確保您電腦上maven已裝好;
- 創(chuàng)建一個(gè)flink任務(wù)的maven工程,找個(gè)干凈目錄執(zhí)行以下命令:
mvn \ archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.9.2
按提示輸入groupId、artifactId、version、package等內(nèi)容:

4. 現(xiàn)在maven工程已生成,用IDEA導(dǎo)入這個(gè)工程,如下圖:

5. 以maven的類(lèi)型導(dǎo)入:

6. 導(dǎo)入成功后的樣子:

7. 修改StreamingJob.java,加入功能是監(jiān)聽(tīng)本地18081端口,得到的字符串做word count操作,完整代碼在此下載:https://raw.githubusercontent.com/zq2599/blog_demos/master/files/StreamingJob.java

8. 現(xiàn)在的代碼已經(jīng)能運(yùn)行,但flink網(wǎng)頁(yè)卻還不能訪問(wèn),會(huì)顯示以下錯(cuò)誤信息,需要繼續(xù)做些設(shè)置:

9. 下載flink-1.9.2安裝包,這里面有flink網(wǎng)頁(yè)服務(wù)用到的一個(gè)jar,地址是:https://www-eu.apache.org/dist/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
10. flink-1.9.2-bin-scala_2.11.tgz下載后解壓,在lib目錄下有個(gè)flink-dist_2.11-1.9.2.jar文件,記住此文件的位置,稍后會(huì)用到;
11. 回到IDEA,在項(xiàng)目上點(diǎn)擊右鍵,點(diǎn)擊菜單Open Module Settings:

12. 在彈出的窗口做如下操作,目的是給項(xiàng)目中增加jar:

13. 彈出選擇文件的窗口,請(qǐng)選擇剛才準(zhǔn)備好的文件flink-dist_2.11-1.9.2.jar:

14. 設(shè)置工作已經(jīng)完成,由于StreamingJob的工作是讀取本機(jī)18081端口的數(shù)據(jù),所以我們要把18081端口的服務(wù)啟動(dòng)起來(lái),不然StreamingJob運(yùn)行時(shí)是連不上端口的,打開(kāi)一個(gè)控制臺(tái),執(zhí)行命令:nc -l 18081
15. 現(xiàn)在可以將StreamingJob運(yùn)行起來(lái),如下圖,右鍵點(diǎn)擊StreamingJob,選擇Run 'StreamingJob.main()':即可啟動(dòng)flink任務(wù),如果想打斷點(diǎn)調(diào)試,請(qǐng)選擇Debug 'StreamingJob.main()'

16. 回到剛才執(zhí)行nc命令的控制臺(tái),輸入一些字符串,例如"aaa bbb aaa",然后回車(chē);
17. 再回到IDEA,可見(jiàn)StreamingJob已經(jīng)從18081端口讀到了數(shù)據(jù)并且輸出了統(tǒng)計(jì)結(jié)果:

18. 在IDEA的控制臺(tái)搜索關(guān)鍵字localhost,如下圖紅框,可以查到flink網(wǎng)頁(yè)的端口,我這里是62641:

19. 瀏覽器訪問(wèn)http://localhost:62641,如下圖,可見(jiàn)flink網(wǎng)頁(yè)已經(jīng)正常顯示,正在運(yùn)行的任務(wù)也能看到:

至此,最簡(jiǎn)單的IDEA運(yùn)行flink任務(wù)的實(shí)戰(zhàn)就完成了,如果您也在學(xué)習(xí)flink,希望本文能給您一些參考;
https://github.com/zq2599/blog_demos
到此這篇關(guān)于IDEA上運(yùn)行Flink任務(wù)的文章就介紹到這了,更多相關(guān)IDEA上運(yùn)行Flink任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MybatisPlus實(shí)現(xiàn)邏輯刪除功能
這篇文章主要介紹了MybatisPlus實(shí)現(xiàn)邏輯刪除功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Java8生成時(shí)間方式及格式化時(shí)間的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Java8生成時(shí)間方式及格式化時(shí)間的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Netty分布式ByteBuf使用的底層實(shí)現(xiàn)方式源碼解析
這篇文章主要為大家介紹了Netty分布式ByteBuf使用底層實(shí)現(xiàn)方式源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
使用eclipse創(chuàng)建java項(xiàng)目的方法
這篇文章主要為大家詳細(xì)介紹了使用eclipse創(chuàng)建java項(xiàng)目的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
java統(tǒng)計(jì)文件中每個(gè)字符出現(xiàn)的個(gè)數(shù)
這篇文章主要為大家詳細(xì)介紹了java統(tǒng)計(jì)文件中每個(gè)字符出現(xiàn)的個(gè)數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03

