idea快速创建flink项目
本文将介绍如何使用idea快速创建flink项目。
·
本文将介绍如何使用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项目搭建完成。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)