Flink源码编译部署Flink

概述

通过编译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.编译分析

Flink源码编译部署Flink