本篇文章首发于头条号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里查看输出,以下图所示。