构建工具

Flink项目可以使用不同的构建工具来构建。为了快速启动,Flink为以下构建工具提供了项目模板:

这些模板帮助您设置项目结构并创建初始构建文件。

SBT

创建项目

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

  1. $ sbt new tillrohrmann/flink-project.g8

这将提示您输入几个参数(项目名称、flink版本……),然后从 flink-project template创建一个flink项目。您需要sbt >= 0.13.13来执行这个命令。如果有必要,您可以按照installation guide 获取它。

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

这将在specified 项目目录中创建一个Flink项目。

构建项目

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

运行项目

为了运行您的项目,您必须发出“sbt run”命令。

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

  1. fork in run := true

IntelliJ

我们建议使用IntelliJ进行Flink作业开发。为了开始,您必须将新创建的项目导入IntelliJ。你可以通过File -&gt; New -&gt; Project from Existing Sources...然后选择项目的目录。IntelliJ会自动检测build.sbt 文件和设置一切。

为了运行Flink作业,建议选择mainRunner 模块作为 Run/Debug Configuration的类路径。这将确保所有设置为 provided 的依赖项在执行时都是可用的。您可以通过Run/Debug Configurations Run -&gt; Edit Configurations...,然后从 Use classpath of module 类路径中选择mainRunner

Eclipse

为了将新创建的项目导入Eclipse,首先必须为其创建Eclipse项目文件。这些项目文件可以通过sbteclipse 插件创建。在PROJECT_DIR/project/plugins.sbt中添加以下行的文件:

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

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

  1. > eclipse

现在您可以通过File -&gt; Import... -&gt; Existing Projects into Workspace 然后选择项目目录。

Maven

需求

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

创建项目

使用以下命令之一create a project:

  1. $ mvn archetype:generate \
  2. -DarchetypeGroupId=org.apache.flink \
  3. -DarchetypeArtifactId=flink-quickstart-scala \
  4. -DarchetypeVersion=1.7.1

这允许您将新创建的项目命名为。它会交互式地询问groupId、artifactId和包名。

  1. $ curl https://flink.apache.org/q/quickstart-scala.sh | bash -s 1.7.1

检查项目

您的工作目录中将有一个新目录。如果您使用了 curl 方法,则该目录称为 quickstart。否则,它有您的artifactId的名称:

  1. $ tree quickstart/
  2. quickstart/
  3. ├── pom.xml
  4. └── src
  5. └── main
  6. ├── resources
  7. └── log4j.properties
  8. └── scala
  9. └── org
  10. └── myorg
  11. └── quickstart
  12. ├── BatchJob.scala
  13. └── StreamingJob.scala

示例项目是一个Maven project,其中包含两个类:StreamingJobBatchJob DataStreamDataSet 程序的基本框架程序。main 方法是程序的入口点,用于ide内测试/执行和适当的部署。

我们建议您将这个项目导入您的IDE中。

IntelliJ IDEA支持Maven开箱即用,并为Scala开发提供了一个插件。从我们的经验来看,IntelliJ为开发Flink应用程序提供了最好的体验。

对于Eclipse,您需要以下插件,您可以从提供的Eclipse更新站点安装这些插件:

构建项目

如果您想构建/打包您的项目,请转到您的项目目录并运行 ‘mvn clean package’ 命令。您将找到一个JAR文件,其中包含您的应用程序,以及您可能作为依赖项添加到应用程序中的连接器和库:target/&lt;artifact-id&gt;-&lt;version&gt;.jar

注意: 如果您使用与 StreamingJob 不同的类作为应用程序的主类/入口点,我们建议您更改pom.xml 中的mainClass 设置。相应的xml的文件。这样,Flink就可以从JAR文件运行应用程序,而无需额外指定主类。

下一个步骤

写您的应用程序!

如果您正在编写流应用程序,并且正在寻找编写内容的灵感,请参阅Stream Processing application Tutorial

如果您正在编写批处理应用程序,并且正在寻找编写的灵感,那么可以参考Batch Application Examples

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

Here您可以了解如何在本地集群上运行IDE之外的应用程序。

如果您有任何问题,请访问我们的Mailing List。我们很乐意提供帮助。