欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flink源码分析 - 源码构建

程序员文章站 2022-05-25 21:04:33
原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483692&idx=1&sn=18cddc1ee0decfe24323dafdb05a048d 本篇介绍一下如何从源码构建Flink,构建Flink源码是学习和研究Flin ......

原文地址:https://mp.weixin.qq.com/s?__biz=mzu2njg5nzk0nq==&mid=2247483692&idx=1&sn=18cddc1ee0decfe24323dafdb05a048d

本篇介绍一下如何从源码构建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,如下图所示。

Flink源码分析 - 源码构建

使用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里查看输出,如下图所示。

Flink源码分析 - 源码构建