本篇文章首發於頭條號Flink源碼分析 - 源碼構建,歡迎關注個人頭條號和微信公衆號「大數據技術和人工智能」(微信搜索bigdata_ai_tech)獲取更多幹貨,也歡迎關注個人CSDN博客。java
本篇介紹一下如何從源碼構建Flink,構建Flink源碼是學習和研究Flink源碼的基礎,有助於更好的瞭解Flink。git
環境/軟件 | 版本 | 備註 |
---|---|---|
OS | Ubuntu 14.04 LTS | |
Maven | 3.0.5 | |
Java | 1.8.0_161 | |
Flink | 1.8 |
構建前先確認下Maven和JDK版本,至少須要Maven 3.x和Java 8才能構建。github
具體步驟以下:web
#先查看下maven和Java版本 #mvn -v #java -version #下載源碼 git clone https://github.com/apache/flink.git #進入源碼目錄 cd flink #切換到一個穩定分支 git checkout release-1.8 #構建源碼 #-DskipTests跳過執行測試程序 #-Dfast跳過測試、QA插件和JavaDocs,加快構建速度 #建議加上-Dfast參數,避免在構建的過程當中會遇到各類各樣的問題 mvn clean install -DskipTests -Dfast
看到下面輸出表示構建成功了。shell
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12:03.086s [INFO] Finished at: Wed Apr 24 10:38:46 CST 2019 [INFO] Final Memory: 478M/1300M [INFO] ------------------------------------------------------------------------
至此,Flink就構建成功了。apache
Flink已經構建好了,這裏用 SocketWindowWordCount 的例子來測試一下,看看是否能夠正常執行。首先按照下面的步驟啓動Flink。ubuntu
#在源碼目錄下執行 ./build-target/bin/start-cluster.sh #執行後輸出以下,表示啓動成功 Starting cluster. Starting standalonesession daemon on host ubuntu. Starting taskexecutor daemon on host ubuntu.
啓動成功後能夠打開http://127.0.0.1:8081
看到Flink的web UI,以下圖所示。微信
使用nc
命令監聽指定端口。session
nc -l 9002 #而後隨便輸入點東西,好比像下面這樣 #這些東西在提交 SocketWindowWordCount Job以前或以後輸入都是能夠的 hello world word count hi flink ha ha
運行Flink測試example,這裏用Flink WordCount Job來測試一下。maven
#在源碼目錄下執行,指定9002端口,這個端口要和剛剛 nc 命令監聽的端口一致 ./build-target/bin/flink run ./build-target/examples/streaming/SocketWindowWordCount.jar --port 9002
查看SocketWindowWordCount Job的輸出。
#在源碼目錄下執行 tail -100f ./build-target/log/flink-*-taskexecutor-0-*.out #執行後輸出以下 hello : 1 world : 1 word : 1 count : 1 hi : 1 flink : 1 ha : 2
也能夠在Flink web UI裏查看輸出,以下圖所示。