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

转载于:https://www.cnblogs.com/cjblogs/p/10785899.html

Flink源码分析 - 源码构建相关推荐

  1. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码

    子曰:"富而可求也,虽执鞭之士,吾亦为之.如不可求,从吾所好." <论语>:述而篇 百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核文件 ...

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

    zxing源码分析--QR码部分 2013-07-10 17:16:03|  分类: 默认分类 |  标签: |字号大中小 订阅     Java代码结构: zxing源码的结构还是比较清晰的,有关Q ...

  3. Google Mock(Gmock)简单使用和源码分析——源码分析

    源码分析 通过<Google Mock(Gmock)简单使用和源码分析--简单使用>中的例子,我们发现被mock的相关方法在mock类中已经被重新实现了,否则它们也不会按照我们的期待的行为 ...

  4. 一、JDK 1.8源码分析-源码结构介绍篇

    1.路漫漫其修远兮 面试中经常被问到有没有看过一些框架的源码,要说看过么,看了不多,要说没看过么,没有系统的看完过,都是用到了去看: 2.如果想走技术这条路,还是好好看看吧,废话不多说,我这个已经开发 ...

  5. Scrapy 源码分析之 DepthMiddleware

    这是「进击的Coder」的第 783 篇技术分享 作者:TheWeiJun 来源:逆向与爬虫的故事 " 阅读本文大概需要 8 分钟. " 大家好,我是TheWeiJun.时隔一个月 ...

  6. Retrofit2源码分析

    Retrofit是一个Android网络框架,准确来说,Retrofit是一个 Restful风格的 HTTP 网络请求框架的封装,因为它的底层网络请求是通过OkHttp实现的,而它实际上是对网络请求 ...

  7. 【Java源码分析】Java8的ArrayList源码分析

    Java8的ArrayList源码分析 源码分析 ArrayList类的定义 字段属性 构造函数 trimToSize()函数 Capacity容量相关的函数,比如扩容 List大小和是否为空 con ...

  8. Retrofit跟OkHttp源码分析

    网上已经有了相等多的分析博客,但终归是别人的知识点,倒不如自己走一遍流程,如果你看到了这篇博客,最好自己跟着思路对照源码过一遍哦! Retrofit源码分析 Retrofit的构建 在我们开发工作中使 ...

  9. caffe源码分析-layer

    本文主要分析caffe layer层,主要内容如下: 从整体上说明下caffe的layer层的类别,以及作用 通过proto定义与类Layer简要说明下Layer的核心成员变量; Layer类的核心成 ...

最新文章

  1. python多进程_Python多进程实践
  2. 生日快乐程序_亲爱的陕师大:75岁生日快乐!一起走过师大时光,在线生成你的师大印迹!...
  3. Run Android on Your Netbook or Desktop
  4. linux哪个命令不可以查看文件内容,linux命令--查看文件内容
  5. 计算机视觉——自动识别车牌简介
  6. vim中使用sed去除网上copy的源代码行号和空格
  7. OpenKruise v1.1:功能增强与上游对齐,大规模场景性能优化
  8. SAP系统里的胖接口Fat interface
  9. 牛客题霸 [ 大数加法]C++题解/答案
  10. 爬虫python能做游戏吗_一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!...
  11. idea 本地远程debug服务器项目
  12. android 钢琴识别音阶对错_钢琴为什么会成为“乐器之王”
  13. mysql中如何查询最近24小时、top n查询
  14. [Win系统][临时方案]系统任务管理器不能使用临时性解决方案
  15. openssl构建CA认证
  16. Json扩展 (转)
  17. 我精通Copula、CoVaR、GARCH、ARIMA、协整、VAR、DCC、BEKK、MES、SRISK、最优组合权重、模拟预测等模型
  18. 射线法判断点在多边形内适用范围_重庆球墨铸铁X射线实时成像实时成像系统真诚合作_丹东华日电气...
  19. 无聊开始玩路由器,入门Tomato固件
  20. 超全山东华为天翼网关电信光猫HS8145c超级密码获取

热门文章

  1. You C.A.N.大赛 解锁7大行业智能硬件创新密码
  2. 投稿 | “轻量应用服务器”征文活动正式启动
  3. 小麦助教:通过阿里云原生中间件产品组合,加速微服务架构落地
  4. 如何制作流畅有力的游戏动画+Skullgirls案例分析
  5. 《风暴英雄》里那些超棒的游戏设计
  6. 《致命躯壳》:不完美,却有着独特之处的轻量级魂like新作
  7. 塔防游戏的路径寻找算法分析
  8. 基于行为树的新手引导设计
  9. SQL基础【十五、join、Inner join、Left join、Right join、Full join】
  10. 3种Java工厂模式深入理解分析