从零开始构建第一个Apache Flink应用程序需要5分钟

                                                    从零开始构建第一个Apache Flink应用程序需要5分钟


                                                    在本文中,我们将从头开始并教您如何构建第一个Apache Flink(Flink)应用程序。 Flink可以在Linux,Max OS X或Windows上运行。为了开发Flink应用程序,本地计算机上需要Java 8.x和maven环境。 如果您具有Java 8环境,则运行以下命令将输出以下版本信息: 如果您有maven环境,则运行以下命令将输出以下版本信息: 此外,我们建议使用ItelliJ IDEA(社区免费版就足够了)作为Flink应用程序的开发IDE。 Eclipse很好,但Eclipse在Scala和Java混合项目下有一些已知问题,因此不建议使用Eclipse。在下一章中,我们将向您展示如何创建Flink项目并将其导入ItelliJ IDEA。 我们将使用Flink Maven Archetype来创建我们的项目结构和一些初始默认依赖项。在工作目录中,运行以下命令以创建项目: 您可以将上面的groupId,artifactId,package编辑为首选路径。使用上述参数,Maven将自动为您创建项目结构,如下所示: 我们的pom.xml文件已包含所需的Flink依赖项,并且src/main/java下有几个示例程序框架。接下来我们将开始编写第一个Flink程序。 启动IntelliJ IDEA,选择“导入项目”,然后在my-flink-project的根目录中选择pom.xml。根据启动,完成项目导入。 在src/main/java/myflink下创建一个SocketWindowWordCount.java文件: 现在这个程序还是很基础的,我们将逐步填写代码。请注意,我们不会在下面编写import语句,因为IDE会自动添加它们。在本节结束时,我将展示完整的代码。如果要跳过以下步骤,可以直接将最后一个完整代码粘贴到编辑器中。 Flink程序的第一步是创建StreamExecutionEnvironment。这是一个入口类,可用于设置参数和创建数据源以及提交任务。所以我们将它添加到main函数中: 接下来,我们将创建一个数据源,从本地端口号9000的套接字读取数据: 这将创建一个string类型的DataStream。 DataStream是Flink中流处理的核心API。它定义了许多常见操作(如过滤,转换,聚合,窗口,关联等)。在此示例中,我们感兴趣的是每个单词在特定时间窗口中出现的次数,例如5秒窗口。为此,我们首先将字符串数据解析为单词和时间(使用Tuple2),第一个字段是单词,第二个字段是次数,并且数字的初始值设置为1.我们实现了用于解析的flatmap,因为单行数据中可能有多个单词。 然后我们根据字段(即索引字段0)对数据流进行分组。在这里,我们可以简单地使用keyBy(int index)方法来获取以单词为键的Tuple2数据流。然后我们可以在流上指定所需的窗口,并根据窗口中的数据计算结果。在我们的例子中,我们希望每5秒聚合一次单词,每个窗口从零开始计算: 第二次调用.timeWindow()指定我们需要一个5秒翻转窗口(Tumble)。第三个调用指定每个键的每个窗口的总和函数,在我们的例子中,它是由字段的次数(即索引字段1)相加。结果数据流将在5秒内每5秒输出一次,以显示每个单词的出现次数。 最后一件事是将数据流打印到控制台并开始执行: 最后的env.execute调用是启动实际Flink作业所必需的。所有操作员操作(例如创建源,聚合,打印)都只是构建内部操作员操作的图形。只有在调用invoke()时,它才会提交到集群或本地计算机。 下面是完整的代码,其中一些是简化的(代码也可以在GitHub上访问): 要运行示例程序,首先我们在终端上启动netcat以获取输入流: 对于Windows平台,您可以在https://nmap.org/ncat/上安装ncat并运行: 然后直接运行SocketWindowWordCount的main方法。 只需在netcat控制台中键入单词,您就可以在SocketWindowWordCount的输出控制台中看到每个单词的单词频率统计信息。如果要查看大于1的计数,请在5秒内重复键入相同的单词。 作者:吴冲

                                                    上一篇:太阳系的边缘——柯伊伯带,有什么秘密?

                                                    下一篇:美洲杯最令人沮丧的淘汰队伍诞生了。游戏并未丢失。该记录优于巴西。

                                                    相关推荐:你移动得越多,人们就越多。 | 高级时尚,拿出来 | 这道菜是天然的“催眠药”,每隔几天吃一次,舒缓神经,失眠远离你

                                                    评论

                                                    您的邮箱地址不会被公布 *

                                                    您可以使用这些html标签 <a href="#" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>