2.flink编码第一步(maven工程创建)

概述

万里第一步,要进行flink代码开发,第一步先整个 flink 代码工程

flink相关文章链接
flink官方文档

两种方式

一种命令行 mvn 创建,另一种直接在 idea 中创建一个工程,使用 mvn 的一些配置

mvn命令行创建

mvn 创建flink工程,创建的工程里多了一些兼容性配置,后面自己使用idea创建时,进行精简及调整

# /Users/hyl/Desktop 构建的项目在此目录下
appledeMacBook-Pro:Desktop hyl$ pwd
/Users/hyl/Desktop
mvn archetype:generate \
    -DarchetypeGroupId=org.apache.flink \
    -DarchetypeArtifactId=flink-walkthrough-datastream-java \
    -DarchetypeVersion=1.17.1 \
    -DgroupId=frauddetection \
    -DartifactId=frauddetection \
    -Dversion=0.1 \
    -Dpackage=spendreport \
    -DinteractiveMode=false

2.flink编码第一步(maven工程创建)_第1张图片
效果如下图显示
2.flink编码第一步(maven工程创建)_第2张图片

使用idea直接创建

创建好的工程会放在gitee上,直接点链接下载源码,可以自己建立工程,将相关文件进行拷贝
gitee项目地址

代码

在此给出简要代码

public class Example {

    public static void main(String[] args) throws Exception {
        final StreamExecutionEnvironment env =
                StreamExecutionEnvironment.getExecutionEnvironment();

        DataStream<Person> flintstones = env.fromElements(
                new Person("Fred", 35),
                new Person("Wilma", 35),
                new Person("Pebbles", 2));

        DataStream<Person> adults = flintstones.filter(new FilterFunction<Person>() {
            @Override
            public boolean filter(Person person) throws Exception {
                return person.age >= 18;
            }
        });

        adults.print();

        env.execute();
    }

    public static class Person {
        public String name;
        public Integer age;
        public Person() {}

        public Person(String name, Integer age) {
            this.name = name;
            this.age = age;
        }

        public String toString() {
            return this.name.toString() + ": age " + this.age.toString();
        }
    }
}
bug

执行过程中遇到以下 bug ,解决方案如下
2.flink编码第一步(maven工程创建)_第3张图片
上图这种报错可以检查一下,是否jar包设置了 provider
按下面图示操作,运行环境包括 provider 即可

2.flink编码第一步(maven工程创建)_第4张图片
2.flink编码第一步(maven工程创建)_第5张图片

成功

上面两步修改之后,即可运行成功,如下图

2.flink编码第一步(maven工程创建)_第6张图片

结束

至此,工程代码创建成功

你可能感兴趣的:(flink,flink)