概述
通过编译Flink源码,可以更好的了解Flink的内部情况,并可以对以后Flink调试和bug修复提供基础环境。该思路已通过之前编译spark,ranger,hadoop源码等实践得以验证,现复用以前的思路。
编译
1.编译环境准备
环境 | 版本 | 备注 |
---|---|---|
Mac OS | 10.14.1 | |
java | 1.8.0_171 | |
scala | 2.11.12 | |
maven | 3.5.4 | |
flink | master(commit ea0f283f) |
2.获取源码
git clone https://github.com/apache/flink.git
3.进行编译
cd flink
mvn clean package -DskipTests
备注:公司私有仓库会有某些包下载不下来的问题,可以先不配置私有库,进行编译。
4.测试
(1)启动flink
./build-target/bin/start-cluster.sh
说明:
脚本执行的流程为:
a.通过config.sh获取配置
b.启动JobManager实例(jobmanager.sh start);
c.启动TaskManager实例(TMSlaves start)
(2)使用nc(netcat)命令监听端口
nc -l 9000
测试数据
hahahahahahha
flink
spark hadoop spark flink
说明:可以立刻往9000端口发送需要的数据
(3)运行flink测试jar包
./build-target/bin/flink run flink-examples/flink-examples-streaming/target/SocketWindowWordCount.jar --port 9000
说明:要先开启监听端口的服务,当端口没被监听时,flink的job及被退出
(3)页面查看运行情况
http://localhost:8081/#/running-jobs
说明:
可以通过conf/flink-conf.yaml的
rest.port: 8081
修改端口号
(5)查看flink实时统计的数据
tail -1000f build-target/log/flink-*-taskexecutor-0-*.out
输出结果为
hahahahahahha : 1
flink : 1
spark : 2
flink : 1
hadoop : 1
5.编译分析