返回
Flink WordCount 快速入门指南:告别数据处理难点,轻松迈入大数据处理世界
后端
2023-12-31 00:35:26
今天,我们将踏上 Flink 入门之旅的第一步——WordCount。WordCount 是一个经典的入门程序,它可以帮助我们快速熟悉 Flink 的基本输入输出和编程代码。后续章节中,我们将深入探讨 Flink 的各种概念和架构。
1. 创建项目
首先,我们先创建一个项目。打开你喜欢的 IDE,新建一个项目,取名为 "FlinkWordCount"。
2. 添加依赖
接下来,我们需要添加 Flink 的依赖。我们使用 Maven 来管理依赖,因此我们需要在项目中添加以下依赖:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.15.4</version>
</dependency>
3. 编写代码
现在,让我们编写 WordCount 的代码。创建一个名为 "WordCount.java" 的类,并输入以下代码:
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.AggregateOperator;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.util.Collector;
public class WordCount {
public static void main(String[] args) throws Exception {
// 创建执行环境
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
// 创建数据源
DataSource<String> text = env.fromElements("Hello world", "Hello Flink", "Hello Java");
// 使用 flatMap 算子将句子拆分为单词
DataSet<String> words = text.flatMap(new FlatMapFunction<String, String>() {
@Override
public void flatMap(String value, Collector<String> out) {
for (String word : value.split(" ")) {
out.collect(word);
}
}
});
// 使用 groupBy 算子将单词分组
DataSet<String> groupedWords = words.groupBy(0);
// 使用 reduce 算子对每个单词进行计数
AggregateOperator<String, Integer> wordCounts = groupedWords.reduce((a, b) -> a + " " + b);
// 打印结果
wordCounts.print();
}
}
4. 运行程序
现在,我们可以运行我们的程序了。在命令行中,切换到项目目录并输入以下命令:
mvn clean package
java -jar target/FlinkWordCount-1.0-SNAPSHOT.jar
5. 查看结果
运行程序后,你应该会看到以下输出:
Hello 1
Flink 1
Java 1
world 1
恭喜你,你已经成功运行了 Flink 的第一个程序!
总结
Flink 是一个强大的流处理框架,它可以帮助我们轻松地处理实时数据。在本文中,我们介绍了 Flink 的基本概念和使用方法。如果你想了解更多关于 Flink 的内容,可以查阅官方文档或参加相关培训课程。
希望这篇文章对您有所帮助!