Flink系列——1 Idea的Flink开发环境搭建与Flink Wordcount 测试

1 IDEA的Flink开发环境搭建

1.1 下载Java JDK 1.8

Mac 中默认有安装,我这里不再展示。

1.2 Flink 下载

Flink官网下载地址
随便选个下载,本文以Flink 1.13.1为例,注意链接名称“for scala 2.12”,后面在idea下载scala时必须下载scala 2.12版。
下载完成解压,一会使用。
在这里插入图片描述
在这里插入图片描述

1.3 IDEA 下载

IDEA官网下载地址
个人觉得破解麻烦,干脆用了社区版,可自行选择。
在这里插入图片描述
破解版链接

1.4 scala

打开idea,创建项目。
File——>ProjectStrure——>Libraries
点击“+”,选择Scala SDK,点击download,下载与Flink一致的scala版本。完成。
在这里插入图片描述

2 Flink WordCount

2.1建立项目,并导入相关包

参考文章:干货:Flink在IDEA上配置并且运行
1 新建maven项目,拉到最下边找到scala-archetype-simple

在这里插入图片描述
。。。
archetype参考文献:
Maven 三种archetype(模板原型)说明

archetype也就是原型,准确说是一个项目模板,我们可以根据该模板来生成项目。

GroupId和ArtifactId参考文献:Maven中的GroupID和ArtifactID指的是什么?

GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。   GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。      比如我创建一个项目,我一般会将GroupId设置为cn.mht,cn表示域为中国,mht是我个人姓名缩写,ArtifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,在你创建Maven工程后,新建包的时候,包结构最好是cn.zr.testProj打头的,如果有个StudentDao[Dao层的],它的全路径就是cn.zr.testProj.dao.StudentDao
。。。
此时我们看到我们的工程的环境和依赖包是这样的:

在这里插入图片描述
但是现在还不能进行开发,要进行目录的设置才行:main右键,Make Drectory As–Source Root。

2.2 在main包中创建flink程序

在这里插入图片描述
以WordCount为例,写入如下代码,注意导入的包名:

package scala.org.example

import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
object FlinkTest {
  /** Main program method */
  def main(args: Array[String]) : Unit = {
    // get the execution environment
    val env:StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment

    import org.apache.flink.streaming.api.scala._
    val text:DataStream[String] = env.socketTextStream("127.0.0.1",9000,'\n')

    // parse the data, group it, window it, and aggregate the counts
    val windowCounts = text.flatMap (_.split("\\s") )
      .map((_,1))
      .keyBy(0)
      .sum(1)

    // print the results with a single thread, rather than in parallel
    windowCounts
      .print()
      .setParallelism(1)

    env.execute("Socket Window WordCount")
  }

  /** Data type for words with count */
  case class WordWithCount(word: String, count: Long)
}

2.3 运行Flink程序

使用终端进入Flink 解压缩后的jar包,执行bin文件夹下的start-cluster.sh命令,如下:
在这里插入图片描述
使用 netcat 启动一个本地server,9000是程序中使用的端口:
在这里插入图片描述
执行IDEA中的WordCount程序,边在终端中输入,flink程序会边统计。至此第一个Flink程序搭建完成。
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
好的,下面是 Flink 入门例子的环境搭建、编码和测试步骤: 1. 环境搭建 首先,您需要下载并安装 Flink。您可以在 Flink 官方网站(https://flink.apache.org/)下载 Flink 的最新版本。下载完成后,解压缩文件并将其放在您喜欢的目录下。 然后,您需要设置 Flink 的环境变量。在 Linux 或 macOS 上,您可以将以下代码添加到您的 .bashrc 文件中: ```bash export FLINK_HOME=/path/to/your/flink export PATH=$FLINK_HOME/bin:$PATH ``` 在 Windows 上,您可以在系统属性中设置环境变量。 2. 编码 接下来,您需要创建一个新的 Java 项目。您可以使用 Maven、Gradle 或其他构建工具来创建项目。本例使用 Maven。 首先,创建一个名为 WordCount 的 Maven 项目: ```bash mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.13.0 ``` 在创建项目的过程中,您需要提供一些信息,例如项目的 GroupId、ArtifactId 和版本号。 然后,打开 WordCount/src/main/java/com/example/WordCount.java 文件,并将其替换为以下代码: ```java package com.example; 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.tuple.Tuple2; import org.apache.flink.util.Collector; public class WordCount { public static void main(String[] args) throws Exception { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // 读取文本文件 DataSet<String> text = env.readTextFile("path/to/your/file"); // 对每行文本进行单词拆分并计数 DataSet<Tuple2<String, Integer>> counts = text.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { private static final long serialVersionUID = 1L; @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { for (String word : value.split("\\s")) { out.collect(new Tuple2<>(word, 1)); } } }).groupBy(0).sum(1); // 输出计数结果 counts.print(); } } ``` 请注意,您需要将“path/to/your/file”替换为您要读取的文本文件的路径。 3. 测试 最后,您可以使用以下命令来编译和运行 WordCount 项目: ```bash mvn clean package flink run target/wordcount-1.0-SNAPSHOT.jar ``` 这将编译 WordCount 项目并将其打包成一个名为 wordcount-1.0-SNAPSHOT.jar 的 JAR 文件。然后,您可以使用 Flink 运行此 JAR 文件。 如果一切顺利,您应该能够看到类似以下内容的输出: ```bash (Hello,2) (World,1) ``` 这表明“Hello”出现了2次,“World”出现了1次。 至此,您已经成功地完成了 Flink 入门例子的环境搭建、编码和测试

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张之海

若有帮助,客官打赏一分吧

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

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

打赏作者

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

抵扣说明:

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

余额充值