介绍
Apache Flink 是知名的流计算引擎,在事件驱动、流批分析等场景都均有广泛的应用。AutoMQ 是一款极速弹性的云原生 Kafka,通过对 Kafka 存储层做了云原生化的改造带来了 10 倍以上的成本降低和弹性优势。得益于 AutoMQ 对 Kafka 100% 兼容的特性,其可以非常轻松利用 Kafka 生态已有的工具读写 Flink。 本文将通过一个 WordCount 的例子来说明 Flink 如何从 AutoMQ 的 Topic 中读取数据进行数据分析然后再重新将结果写回到 AutoMQ 中。环境准备
安装和启动 Flink
本文档采用的 Flink 版本为 v1.19.0。首先参考 Flink First Step 官方文档部署一个 v1.19.0 Flink 服务。安装和启动 AutoMQ
参考 Linux 主机部署多节点集群▸ 文档部署一套 AutoMQ 集群。本例中使用的 AutoMQ 版本为 v1.0.4。准备测试主题和数据
创建一个 topic to-flink 用于保存需要导入到 flink 进行分析计算的数据:从 AutoMQ 中读取数据到 Flink 进行分析
得益于 AutoMQ 对 Kafka 完全的兼容性,此处我们可以直接使用 Flink 提供的 Kafka Connector 来编写 source 和 sink 的代码,从 AutoMQ 的 Topic 中加载数据。POM 依赖
编写 Flink Job 代码
以下 Java 代码分别用 KafkaSource 和 KafkaSink 定义了一个 AutoMQ source 和 sink。首先会从 to-flink 这个主题中读取我们提前准备好的“水果列表”测试数据。然后创建了一个 DataStream 来完成 WordCount 的计算工作并且将结果 sink 到 AutoMQ 的主题 from-flink 中。提交 job 给 Flink
执行如下命令提交任务 jar 给 flink,通过控制台我们可以看到 15 条数据已经被接受处理。
检验分析结果
使用 AutoMQ 解压后的 Kafka bin 工具从 from-flink 中消费数据,查看结果: