目录

Flink 快速应用

通过一个单词统计的案例,快速上手应用Flink,进行流处理(Streaming)和批处理(Batch)

示例代码: https://gitee.com/ixinglan/flink-demo.git

第 1 节 单词统计案例(批数据)

1.1 需求

​ 统计一个文件中各个单词出现的次数,把统计结果输出到文件

1.2 代码实现

  • 引入依赖

    <!--flink核心包-->
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-java</artifactId>
        <version>1.7.2</version>
    </dependency>
    <!--flink流处理包-->
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-java_2.12</artifactId>
        <version>1.7.2</version>
        <scope>provided</scope>
    </dependency>

    示例代码:batch/WordCount

第 2 节 单词统计案例(流数据)

2.1 需求

​ Socket模拟实时发送单词,使用Flink实时接收数据,对指定时间窗口内(如5s)的数据进行聚合统计,每隔1s汇总计算一次,并且把时间窗口内计算结果打印出来。

使用 netcat 工具模拟socket不断发送数据

2.2 代码实现

示例代码:stream/WordCount

Flink程序开发的流程总结如下:

1)获得一个执行环境

2)加载/创建初始化数据

3)指定数据操作的算子

4)指定结果数据存放位置

5)调用execute()触发执行程序

注意:Flink程序是延迟计算的,只有最后调用execute()方法的时候才会真正触发执行程序