赞
踩
本文将介绍如何使用idea快速创建flink项目。
https://flink.apache.org/zh/downloads.html
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即可。
指定项目的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项目搭建完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。