zoukankan      html  css  js  c++  java
  • Flink源码分析

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

  • 相关阅读:
    程序猿财务自由之路·规划篇
    如何教女友学编程?
    粤港澳大湾区9城最新购房政策一览
    一个漂亮妹子的美团面试经历,4轮2小时,成功拿到Offer
    在北京的互联网公司工作多少年可以买房?
    这六个 MySQL 死锁案例,能让你理解死锁的原因!
    阿里双11:「线上全链路压测」完整经验分享
    千亿级公司低代码平台的测试体系介绍
    Weblogic
    30分钟?不需要,轻松读懂IL
  • 原文地址:https://www.cnblogs.com/cjblogs/p/10785899.html
Copyright © 2011-2022 走看看