开发环境
- Windows 10 64位专业版
- Java version 1.8.0_281
- Scala version 2.12.13
- Maven version 3.6.3
- Chrome version 88.0.4324.150
- IntelliJ IDEA Ultimate 2020.3
创建maven项目
参考flink官网https://ci.apache.org/projects/flink/flink-docs-release-1.12/try-flink/datastream_api.html
通过下面的命令创建一个flink样例项目
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-walkthrough-datastream-java \
-DarchetypeVersion=1.12.0 \
-DgroupId=frauddetection \
-DartifactId=frauddetection \
-Dversion=0.1 \
-Dpackage=spendreport \
-DinteractiveMode=false
注意:这里一定要通过cmd打开终端执行上面的命令,笔者尝试使用powershell执行上面的命令会失败报错(不知道为什么)。
修改样例程序
通过IntelliJ IDEA打开上一步成功生成的项目,修改2个文件
- pom.xml中删除下面两个依赖的scope属性
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
增加下面的依赖,目的是可以本地打开flink的Dashboard页面
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-runtime-web_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
- log4j2.properties,将
rootLogger.level
修改为INFO,目的是可以通过日志查看到flink dashboard页面的端口。
运行样例程序
运行FraudDetectionJob
,日志中会有这样的内容
Web frontend listening at http://localhost:61269.
,并且sink的结果也会输出到日志中INFO org.apache.flink.walkthrough.common.sink.AlertSink [] - Alert{id=4}
。
通过http://localhost:61269
就可以查看任务的运行状态了。

网友评论