全文概覽
今天的實戰由以下內容組成:
-
開發一個最簡單的flink任務,在IDEA上以local模式運行;
-
下載flink1.9.2原始碼;
-
修改flink1.9.2原始碼,并且編譯構建;
-
設定,讓步驟1中的flink任務用上剛剛編譯的flink1.9.2框架;
-
再次運行flin
《一線大廠Java面試題決議+后端開發學習筆記+最新架構講解視頻+實戰專案原始碼講義》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整內容開源分享
k任務,驗證修改后的flink框架是否生效;
IDEA上運行flink job工程
-
在IDEA上創建flink job的maven工程并運行,請參考《IDEA上運行Flink任務》
-
假設您已按上面的步驟在IDEA建好了flink job工程;
-
運行起來,在瀏覽器打開flink頁面,如下圖,綠框中顯示一共有8個Task Slot:

- 之所以會有8個Task Slot,和下圖紅框中的代碼有關,這是段flink框架原始碼(StreamExecutionEnvironment.java),入參parallelism是CPU核數,我這里是開了超執行緒的四核i5處理器,所以parallelism等于8:

- 今天的目標就是修改上圖紅框中的原始碼,然后在網頁上看是不是生效了(Task Slot數量從8改成5);
準備作業
-
maven中央倉庫地址建議用阿里云的,否則會經常遇到jar下載超時錯誤,地址:http://192.168.50.43:8081/repository/aliyun-proxy/
-
flink1.9.2原始碼的maven工程依賴了一個中央倉庫沒有的jar,GAV是io.confluent:kafka-schema-registry-client:3.3.1,您需要下載下來在本地倉庫做mvn install操作,下載地址:http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar
-
上述準備作業都需要您在本地maven上操作,但是如果您的條件允許,還是強烈推薦在內網搭建maven私服nexus3,參考:《群暉DS218+做maven私服(nexus3)》、《Ubuntu部署和體驗Nexus3》、《Nexus3常用功能備忘》
下載flink1.9.2原始碼
flink1.9.2原始碼的下載地址:http://ftp.jaist.ac.jp/pub/apache/flink/flink-1.9.2/flink-1.9.2-src.tgz
修改和編譯構建
-
將下載好的flink-1.9.2-src.tgz解壓,得到檔案夾flink-1.9.2
-
打開這個檔案:flink-1.9.2/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/environment/StreamExecutionEnvironment.java
-
如下圖紅框,找到createLocalEnvironment方法,把setParallelism的入參改成一個固定的數字(每個Task Slot都要分配記憶體,所以這個數字請不要改得太大,否則啟動flink就會報錯了,我這里改成了5):

-
在檔案夾flink-1.9.2下,執行編譯構建的命令:mvn clean install -DskipTests -Dfast
-
經歷漫長等待后提示構建成功:

- 確認這個檔案已生成,稍后就要用到:flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar
設定
- 為了用上剛剛構建出來的flink框架jar,要做些設定,打開之前運行的flink job應用,在專案上點擊右鍵,點擊選單Open Module Settings,如下圖:

-
接下來要做三個和jar有關的操作,注意每一步都很重要:
-
下圖紅框1中的flink-dist_2.11-1.9.2.jar檔案,是《IDEA上運行Flink任務》一文中添加的,目的是提供網頁服務,現在將其洗掉,操作如下圖紅框所示:

- 下圖紅框1中的maven依賴:org.apache.flink:flink-streaming-java_2.11:1.9.2,也請洗掉,操作如下圖紅框所示:

- 點擊下圖紅框中的加號:

- 在彈出的視窗選中剛才構建好的檔案flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar:

- 記得點擊右下角的OK按鈕保存,修改完畢,接下來驗證咱們修改的flink框架原始碼是否生效了
驗證
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389099.html
標籤:其他
上一篇:Hadoop入門篇
