
创建项目的第一步是在准备好的开发环境中开始构建你的第一个 Flink 程序。我们的主要任务是在 IDEA 中搭建一个 Flink 项目的框架,并使用 Java 项目中常见的 Maven 进行依赖管理。
创建工程的具体步骤:
打开 IntelliJ IDEA,创建一个新的 Maven 工程。
添加项目依赖,需要在项目的 pom 文件中加入 Flink 的相关依赖,包括 flink-java、flink-streaming-java 以及 flink-clients。具体依赖的版本号可以在 properties 标签中进行设置。
接下来,我们来进行 WordCount 代码的编写。需求是统计一段文字中每个单词出现的频次。
编程模板无论简单还是复杂,Flink 程序都由以下几个部分组成:获取编程、执行环境;通过数据源组件加载、创建 datastream 或 datasource;对 datastream 或 datasource 调用各种处理算子表达计算逻辑;通过 sink 算子指定计算结果的输出方式;在 env 上触发程序提交运行。
数据准备阶段,我们需要在项目根目录下创建一个input文件夹,并在该文件夹下创建文本文件words.txt,并输入一些文字作为示例。
接下来是批处理的实现。以BatchWordCount类为例,首先获取执行环境,然后从文件读取数据,按照行读取存储为每行的文本。接着转换数据格式,将每行的文本转换为元组形式(word, 1)。然后按word进行分组,对分组内的数据进行聚合统计。最后打印结果。
对于流处理,整体思路与批处理非常类似,但代码模式基本一致。以StreamWordCount类为例,创建流式执行环境后,读取文件或socket文本流,然后进行转换、分组、求和操作得到统计结果,最后打印结果并执行。需要注意的是,在转换处理过程中需要显式地提供类型信息,以便系统正确地解析数据。
还可以从socket读取文本流进行测试。在Linux环境下,可以通过nc命令发送数据进行测试。启动SocketStreamWordCount程序时,由于Flink的流处理是事件驱动的,所以程序会一直处于状态,只有接收到数据才会执行任务。在Linux主机上发送数据后,可以在应用程序控制台查看统计结果。
Flink项目的创建和WordCount代码的编制是一个涉及多个步骤的过程,包括创建工程、添加依赖、编写代码、数据准备、批处理和流处理等。通过这个过程,我们可以了解Flink的基本使用方法和流程。
