1)概览
1.开始
要开始使用 Flink 应用程序,请使用以下命令、脚本和模板来创建 Flink 项目。
可以使用如下的 Maven 命令或快速启动脚本,基于原型创建一个项目。
a)Maven 命令
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.19.0
b)快速启动脚本
curl https://flink.apache.org/q/quickstart.sh | bash -s 1.19.0
2.需要哪些依赖
要开始一个 Flink 作业,通常需要如下依赖项:
- Flink API,用来开发你的作业
- 连接器和格式,以将你的作业与外部系统集成
- 测试实用程序,以测试你的作业
除此之外,若要开发自定义功能,还要添加必要的第三方依赖项。
3.Flink API
Flink 提供了两大 API:Datastream API 和 Table API & SQL,它们可以单独使用,也可以混合使用,具体取决于你的使用场景
你要使用的 API | 你需要添加的依赖项 |
---|---|
DataStream | flink-streaming-java |
DataStream Scala 版 | flink-streaming-scala_2.12 |
Table API | flink-table-api-java |
Table API Scala 版 | flink-table-api-scala_2.12 |
Table API + DataStream | flink-table-api-java-bridge |
Table API + DataStream Scala 版 | flink-table-api-scala-bridge_2.12 |
4.运行和打包
如果想通过简单地执行主类来运行作业,需要 classpath 里包含 flink-clients
。对于 Table API 程序,还需要在 classpath 中包含 flink-table-runtime
和 flink-table-planner-loader
。
根据经验,建议 将应用程序代码及其所有必需的依赖项打包进一个 fat/uber JAR [包含所有依赖项和代码的 JAR]中。这包括打包作业用到的连接器、格式和第三方依赖项;此规则不适用于 Java API、DataStream Scala API 以及前面提到的运行时模块,它们已经由 Flink 本身提供,不应包含在作业的 uber JAR 中。
可以把该作业 JAR 提交到已经运行的 Flink 集群,也可以轻松将其添加到 Flink 应用程序容器镜像中,而无需修改发行版。