本篇文章首发于头条号Flink源码分析 - 源码构建,欢迎关注我的头条号和微信公众号“大数据技术和人工智能”(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的CSDN博客


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

Flink源码分析 - 源码构建的更多相关文章

  1. Elasticsearch源码分析 - 源码构建

    原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483694&idx=1&sn=bd03afe5a ...

  2. ffplay源码分析3-代码框架

    ffplay是FFmpeg工程自带的简单播放器,使用FFmpeg提供的解码器和SDL库进行视频播放.本文基于FFmpeg工程4.1版本进行分析,其中ffplay源码清单如下: https://gith ...

  3. 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 | 百篇博客分析OpenHarmony源码 | v13.02

    百篇博客系列篇.本篇为: v13.xx 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 | 51.c.h .o 几点说明 kernel_liteos_a_note | 中文注解鸿蒙内核 ...

  4. zxing源码分析——QR码部分

    Android应用横竖屏切换 zxing源码分析——DataMatrix码部分 zxing源码分析——QR码部分 2013-07-10 17:16:03|  分类: 默认分类 |  标签: |字号大中 ...

  5. 鸿蒙内核源码分析(源码结构篇) | 内核每个文件的含义 | 百篇博客分析OpenHarmony源码 | v18.04

    百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核每个文件的含义 | 51.c.h .o 前因后果相关篇为: v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 ...

  6. nginx源码分析-源码结构

    本文主要简单介绍nginx源码目录结构.程序编译流程.如何构建学习nginx的环境等.本文以及后续nginx源码分析文章是基于nginx当前(2009-02-27)的稳定版本0.6.35进行的分析,该 ...

  7. Spark GraphX图计算核心源码分析【图构建器、顶点、边】

    一.图构建器 GraphX提供了几种从RDD或磁盘上的顶点和边的集合构建图形的方法.默认情况下,没有图构建器会重新划分图的边:相反,边保留在默认分区中.Graph.groupEdges要求对图进行重新 ...

  8. Servlet-Cookie源码分析 源码环境:Tomcat8

    最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie ...

  9. Spring源码分析——源码分析环境搭建

    1.在Windows上安装Gradle gradle工具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse. 开发环境 Java:JDK8 ...

随机推荐

  1. 一个基于原生JavaScript开发的、轻量的验证码生成插件

    Vcode.js 一个基于原生JavaScript开发的.轻量的验证码生成插件 V: 1.0.0 DEMO:https://jofunliang.github.io/Vcode.js/example. ...

  2. Windows驱动开发入门指引

       1.  前言 因工作上项目的需要,笔者需要做驱动相关的开发,之前并没有接触过相关的知识,折腾一段时间下来,功能如需实现了,也积累了一些经验和看法,所以在此做番总结. 对于驱动开发的开发指引,微软 ...

  3. Java多线程-概念与原理

    一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在 ...

  4. springboot中logback打印日志

    http://blog.csdn.net/fan510988896/article/details/54409790

  5. C#温故而知新系列 -- 闭包

    闭包的由来 要说闭包的由来就不得不先说下函数式编程了.近几年函数式编程也是比较火热,我们先来看看函数式编程的一些基本的特性这个有助于我们理解闭包的由来. 函数式编程 函数式编程是一种编程模型,他将计算 ...

  6. Bash特殊变量:$0, $#, $*, $@, $?, $$实战

    在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid ...

  7. Golang 通用连接池库 Golang-Pool

    Golang 实现的连接池 功能: * 连接池中连接类型为interface{},使得更加通用 * 链接的最大空闲时间,超时的链接将关闭丢弃,可避免空闲时链接自动失效问题 * 使用channel处理池 ...

  8. java集合框架之LinkedList

    参考http://how2j.cn/k/collection/collection-linkedlist/370.html LinkedList 与 List接口 与ArrayList一样,Linke ...

  9. 【BZOJ 2713】[Violet 2]愚蠢的副官&&【BZOJ1183】[Croatian2008]Umnozak——【数位DP】

    题目链接: 2713传送门 1183传送! 题解: 由于看不懂英文题解(十个单词十一个不认识……),所以只能自己想QAQ. 其实乱搞就好= =. 首先我们发现,各位数字乘积要在1e9以下才可能有用,这 ...

  10. BZOJ_4238_电压_树上差分+dfs树

    BZOJ_4238_电压_树上差分+dfs树 Description 你知道Just Odd Inventions社吗?这个公司的业务是“只不过是奇妙的发明(Just Odd Inventions)” ...