原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483692&idx=1&sn=18cddc1ee0decfe24323dafdb05a048d 本篇介紹一下如何從源碼構建Flink,構建Flink源碼是學習和研究Flin ...
本篇介紹一下如何從源碼構建Flink,構建Flink源碼是學習和研究Flink源碼的基礎,有助於更好的瞭解Flink。
環境準備
環境/軟體 | 版本 | 備註 |
---|---|---|
OS | Ubuntu 14.04 LTS | |
Maven | 3.0.5 | |
Java | 1.8.0_161 | |
Flink | 1.8 |
構建前先確認下Maven和JDK版本,至少需要Maven 3.x和Java 8才能構建。
構建源碼
具體步驟如下:
#先查看下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
看到下麵輸出表示構建成功了。
[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就構建成功了。
測試
Flink已經構建好了,這裡用 SocketWindowWordCount 的例子來測試一下,看看是否可以正常執行。首先按照下麵的步驟啟動Flink。
#在源碼目錄下執行
./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
命令監聽指定埠。
nc -l 9002
#然後隨便輸入點東西,比如像下麵這樣
#這些東西在提交 SocketWindowWordCount Job之前或之後輸入都是可以的
hello world
word count
hi
flink
ha ha
運行Flink測試example,這裡用Flink WordCount Job來測試一下。
#在源碼目錄下執行,指定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里查看輸出,如下圖所示。