Scala 项目模板#

构建工具#

可以使用不同的构建工具来构建Flink项目。 您可使用以下构建工具的项目模板,快速构建Flink项目:

这些模板能够帮助你建立项目的框架和创建初始化的构建文件。

SBT#

创建项目#

你可以通过以下两种方法之一来构建新项目:

使用 sbt 模板

$ sbt new tillrohrmann/flink-project.g8

这将提示您输入几个参数(项目名称,Flink 版本...),然后从 flink 项目模板 创建一个 Flink 项目。 你需要 sbt >= 0.13.13 版本才能执行这个命令。如有必要,您可以按照这个安装指南获取sbt。

运行 快速开始脚本

$ bash <(curl https://flink.apache.org/q/sbt-quickstart.sh)

这将在指定的项目目录中创建一个 Flink 项目。

构建项目#

为了构建您的项目,您只需要执行 sbt clean assembly 命令。 这将在目录 target/scala_your-major-scala-version/ 中创建 fat-jar your-project-name-assembly-0.1-SNAPSHOT.jar

运行项目#

您可使用sbt run 命令运行项目。

默认情况下,这将在 sbt 相同的 JVM 中运行您的作业。 为了在不同的 JVM 中运行您的作业,请将以下内容添加到 build.sbt

fork in run := true

IntelliJ#

我们建议您使用 IntelliJ 来开发 Flink 作业。 开始时,您必须把新建的项目导入到 IntelliJ 。 您可以通过 File -> New -> Project from Existing Sources... 然后选择项目目录来完成这个操作。 然后 IntelliJ 将自动检测 build.sbt 文件并设置所有内容。

为了运行 Flink 作业,建议选择 mainRunner 模块作为 运行/调试 配置 的类路径。 这将确保在执行时可以使用设置为 provided 的所有依赖项。 您可以通过 Run -> Edit Configurations... 配置 运行/调试 配置 ,然后从 Use classpath of module 的下拉框中选择 mainRunner

Eclipse#

为了将新建的项目导入 Eclipse,首先需要为它创建 Eclipse 项目文件。 这些项目文件可以通过 sbteclipse 创建来创建。 将以下行添加到 PROJECT_DIR/project/plugins.sbt 文件中:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

sbt 中使用以下命令来创建 Eclipse 项目文件

> eclipse

现在你可以通过 File -> Import... -> Existing Projects into Workspace 将项目导入到 Eclipse,然后选择项目目录。

Maven#

要求#

唯一的要求是 Maven 3.0.4 (或更高版本)和 安装 Java 8.x

创建项目#

使用以下命令之一来 创建项目

使用 Maven 脚手架

$ mvn archetype:generate                               \
      -DarchetypeGroupId=org.apache.flink              \
      -DarchetypeArtifactId=flink-quickstart-scala     \{% unless site.is_stable %}
      -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/ \{% endunless %}
      -DarchetypeVersion={{site.version}}

这将允许您为新创建的项目命名。它将以交互式的方式询问您 groupId,artifactId 和 package 名称。

运行 快速启动脚本

{% if site.is_stable %}
    $ curl https://flink.apache.org/q/quickstart-scala.sh | bash -s {{site.version}}
{% else %}
    $ curl https://flink.apache.org/q/quickstart-scala-SNAPSHOT.sh | bash -s {{site.version}}
{% endif %}

注意:对于 Maven 3.0 及更高版本,不再可以通过命令行(-DarchetypeCatalog)来指定仓库。如果你想使用快照仓库,你需要在您的 setting.xml 里添加一个仓库条目。有关此更改的详细信息,请参阅 Maven 官方文档

检查项目#

在您的工作目录中建一个新目录。如果您已经习惯了 curl 方法,该目录称为 quickstart 。除此之外,它还包含你命名的 artifactId

$ tree quickstart/
quickstart/
├── pom.xml
└── src
    └── main
        ├── resources
        │   └── log4j.properties
        └── scala
            └── org
                └── myorg
                    └── quickstart
                        ├── BatchJob.scala
                        └── StreamingJob.scala

示例项目是 Maven 项目,它包含两个类: StreamingJobBatchJobDataStreamDataSet 程序的基本框架程序。 main 方法是程序的入口,既可以用于 IDE 内测试/执行,也可用于部署。

我们建议您 将此项目导入到您的 IDE 中

IntelliJ IDEA 支持 Maven 开箱即用,并为 Scala 提供了开发的插件。 根据我们的经验,IntelliJ 为开发 Flink 应用程序提供了最佳体验。

对于 Eclipse,您需要以下插件,您可以从提供的 Eclipse Update Sites 安装这些插件:

构建项目#

如果您想 构建/打包 您的项目,进入到您的项目目录执行命令 'mvn clean package' 。 您将 找到一个 JAR 文件 包含您的应用程序,以及 connectors 和您可能已将其作为依赖项添加到应用程序:target/<artifact-id>-<version>.jar 的库。

_注意: 如果您使用与 StreamingJob 不同的类作为应用程序的主类/入口,我们建议您相应地更改 pom.xml 文件中的 mainClass 设置。那样,Flink 在运行应用程序时无需另外指定主类。

下一步#

编写你的应用!

如果您正在编写流处理程序,并且在寻找灵感来写什么,可以看看 流式处理指南

如果您正在编写批处理程序,并且在寻找灵感来写什么,可以看看 批处理应用示例

有关 API 的完整概述,请查看 DataStream APIDataSet API 章节。

在这里 你可以找到怎么在 IDE 之外的本地集群来运行应用程序。

如果您有任何问题,请发信至我们的 邮箱列表。 我们很乐意提供帮助。