本文将介绍如何使用idea快速创建flink项目。

1.flink官网查看flink版本

https://flink.apache.org/zh/downloads.html
在这里插入图片描述

2.idea创建一个新的项目,选择Maven项目,并选择"Create from archetype",由于没有Flink的archetype,所以需要自己添加。这里version选择从flink官网查看到的flink版本。

groupId:org.apache.flink
artifactId:flink-quickstart-java
version:1.12.4或者1.13.1

在这里插入图片描述

点击OK后在archetype列表中查看Flink的archetype是否添加成功,添加成功的话如下图所示:
在这里插入图片描述

若没找到,可去C:\Users\[你的用户名]\AppData\Local\JetBrains\IntelliJIdea2021.2\Maven\Indices目录下新建UserArchetypes.xml文件,文件内容如下:

<archetypes>
    <archetype groupId="org.apache.flink" artifactId="flink-quickstart-java" version="1.13.1" />
</archetypes>

然后重启idea即可。

3.选择对应的archetype

在这里插入图片描述
在这里插入图片描述

指定项目的Maven配置,也可使用默认的配置。然后点击Finish
在这里插入图片描述

等待片刻,Maven会自动构建项目
在这里插入图片描述

接下来运行一个简单的wordCounts例子。
打开BatchJob类,编辑代码如下:

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 BatchJob {

   public static void main(String[] args) throws Exception {
      // set up the batch execution environment
      final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

      //通过字符串构建数据集
      DataSet<String> text = env.fromElements(
            "风急天高猿啸哀,渚清沙白鸟飞回。" +
                  "无边落木萧萧下,不尽长江滚滚来。" +
                  "万里悲秋常作客,百年多病独登台。" +
                  "艰难苦恨繁霜鬓,潦倒新停浊酒杯。");
      // 分割字符串、按照key进行分组、统计相同的key个数
      DataSet<Tuple2<String, Integer>> wordCounts = text
            .flatMap(new LineSplitter())
            .groupBy(0)
            .sum(1);
      // 打印
      wordCounts.print();
   }

   // 分割字符串的方法
   public static class LineSplitter implements FlatMapFunction<String, Tuple2<String, Integer>> {
      @Override
      public void flatMap(String line, Collector<Tuple2<String, Integer>> out) {
         for (String word : line.split("")) {
            out.collect(new Tuple2<String, Integer>(word, 1));
         }
      }
   }

}

接着注释掉pom文件下图中的<scope>provided</scope,然后Load Maven Changes
<scope>provided</scope>表示被依赖项目参与当前项目的编译和测试阶段,但不会参与运行阶段,如果不注释掉,本地运行会报ClassNotFoundException异常
在这里插入图片描述

运行BatchJob:
在这里插入图片描述
至此,一个flink项目搭建完成。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐