Scala的项目模板

构建工具

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

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

SBT

创建项目

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

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

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

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

This will create a Flink project in the specified project directory.

构建项目

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

运行项目

要运行项目,您必须发出sbt run命令。

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

  1. fork in run := true

的IntelliJ

我们建议您使用IntelliJ进行Flink作业开发。要开始,您必须将新创建的项目导入IntelliJ。您可以通过File -> New -> Project from Existing Sources…然后选择项目目录来执行此 算子操作然后,IntelliJ将自动检测build.sbt文件并设置所有内容。

为了运行Flink作业,建议选择mainRunner模块作为运行/调试配置的类路径这将确保所有设置为提供的依赖项在执行时可用。您可以配置运行/调试配置通过Run -> Edit Configurations…,然后选择mainRunner模块的使用类路径的Dropbox。

Eclipse

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

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

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

  1. > eclipse

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

Maven

要求

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

创建项目

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

  1. $ mvn archetype:generate \
  2. -DarchetypeGroupId=org.apache.flink \
  3. -DarchetypeArtifactId=flink-quickstart-scala \
  4. -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/ \
  5. -DarchetypeVersion=1.7-SNAPSHOT

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

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

注意:对于Maven 3.0或更高版本,不再可以通过命令行指定存储库(-DarchetypeCatalog)。如果要使用SNAPSHOT存储库,则需要向settings.xml添加存储库条目。有关此更改的详细信息,请参阅Maven官方文档

检查项目

您的工作目录中将有一个新目录。如果您使用了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项目,它包含两个类:StreamingJobBatchJobDataStreamDataSet程序的基本框架程序。主要方法是程序的入口点,无论是对在-IDE测试/执行并作适当的部署。

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

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

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

构建项目

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

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

下一步

写你的申请!

如果您正在编写流处理应用程序并且正在寻找灵感来写什么,请查看流处理应用程序教程

如果您正在编写批处理应用程序,并且正在寻找要编写的内容,请查看批处理应用程序示例

有关API的完整概述,请查看DataStream APIDataSet API部分。

在这里,您可以了解如何在本地群集上的IDE外部运行应用程序。

如果您有任何问题,请在我们的邮件列表中查询我们很乐意提供帮助。