Flink 快速上手,实操记录

15 篇文章 1 订阅
9 篇文章 0 订阅

Flink 快速上手

Apache Flink 是一个开源的流处理框架,它提供了高效、可扩展、分布式的数据处理能力。本文将介绍如何快速上手 Flink。

安装

Flink 可以在官网上下载二进制包,也可以通过 Maven 或 Gradle 进行依赖引入。这里我们介绍如何下载二进制包并进行安装。

  1. 下载 Flink

    在 Flink 的官网上下载二进制包,下载地址为:https://flink.apache.org/downloads.html

  2. 解压缩

    将下载的二进制包解压缩到本地目录。

    tar -xzf flink-1.13.2-bin-scala_2.12.tgz
    
  3. 启动 Flink

    进入解压缩后的目录,执行以下命令启动 Flink:

    ./bin/start-cluster.sh
    

    启动成功后,可以通过访问 http://localhost:8081 访问 Flink 的 Web 界面。

编写 Flink 程序

Flink 提供了 Java 和 Scala 两种编程语言的 API,这里我们以 Java 为例介绍如何编写 Flink 程序。

  1. 创建 Maven 项目

    在命令行中执行以下命令创建 Maven 项目:

    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.flink \
        -DarchetypeArtifactId=flink-quickstart-java \
        -DarchetypeVersion=1.13.2 \
        -DgroupId=com.example \
        -DartifactId=flink-demo \
        -Dversion=1.0 \
        -Dpackage=com.example.flinkdemo
    

    执行完毕后,会在当前目录下创建一个名为 flink-demo 的 Maven 项目。

  2. 编写 Flink 程序

    在 flink-demo 项目中,打开 src/main/java/com/example/flinkdemo/StreamingJob.java 文件,编写 Flink 程序。

    package com.example.flinkdemo;
    
    import org.apache.flink.streaming.api.datastream.DataStream;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    public class StreamingJob {
        public static void main(String[] args) throws Exception {
            final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
            DataStream<String> text = env.socketTextStream("localhost", 9999);
    
            DataStream<Integer> counts = text.flatMap(new FlatMapFunction<String, String>() {
                @Override
                public void flatMap(String value, Collector<String> out) {
                    for (String word : value.split("\\s")) {
                        out.collect(word);
                    }
                }
            })
            .map(new MapFunction<String, Tuple2<String, Integer>>() {
                @Override
                public Tuple2<String, Integer> map(String value) {
                    return new Tuple2<>(value, 1);
                }
            })
            .keyBy(0)
            .sum(1);
    
            counts.print();
    
            env.execute("Streaming WordCount");
        }
    }
    

    该程序实现了一个简单的流式 WordCount,它从本地的 9999 端口读取数据,对每个单词进行计数,并将结果打印出来。

  3. 运行 Flink 程序

    在命令行中执行以下命令运行 Flink 程序:

    mvn clean package
    ./bin/flink run target/flink-demo-1.0.jar
    

    运行成功后,可以在 Flink 的 Web 界面上查看任务的运行状态和结果。

总结

本文介绍了如何快速上手 Flink,包括安装、编写 Flink 程序和运行 Flink 程序。Flink 是一个功能强大的流处理框架,可以应用于各种数据处理场景。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AcerMr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值