Scala的项目模板
构建工具
Flink项目可以使用不同的构建工具构建。为了快速入门,Flink为以下构建工具提供了项目模板:
SBT
创建项目
您可以通过以下两种方法之一构建新项目:
$ sbt new tillrohrmann/flink-project.g8
这将提示您输入几个参数(项目名称,flink版本…),然后从flink-project模板创建一个Flink项目。您需要sbt> = 0.13.13才能执行此命令。如有必要,您可以按照此安装指南获取。
$ 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
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
文件中:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
在sbt
使用以下命令创建Eclipse项目文件
> eclipse
现在,您可以通过项目将项目导入Eclipse File -> Import… -> Existing Projects into Workspace
,然后选择项目目录。
Maven
要求
唯一的要求是使用Maven 3.0.4(或更高版本)和Java 8.x安装。
创建项目
使用以下命令之一创建项目:
$ mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-scala \
-DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/ \
-DarchetypeVersion=1.7-SNAPSHOT
这允许您命名新创建的项目。它将以交互方式询问您groupId,artifactId和包名称。
$ 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
:
$ tree quickstart/
quickstart/
├── pom.xml
└── src
└── main
├── resources
│ └── log4j.properties
└── scala
└── org
└── myorg
└── quickstart
├── BatchJob.scala
└── StreamingJob.scala
示例项目是一个Maven项目,它包含两个类:StreamingJob和BatchJob是DataStream和DataSet程序的基本框架程序。的主要方法是程序的入口点,无论是对在-IDE测试/执行并作适当的部署。
我们建议您将此项目导入IDE。
IntelliJ IDEA支持Maven开箱即用,并为Scala开发提供插件。根据我们的经验,IntelliJ为开发Flink应用程序提供了最佳体验。
对于Eclipse,您需要以下插件,您可以从提供的Eclipse Update Sites安装这些插件:
- Eclipse 4.x
- Eclipse 3.8
构建项目
如果要构建/打包项目,请转到项目目录并运行' mvn clean package
'命令。您将找到一个包含您的应用程序的JAR文件,以及您可能已作为依赖项添加到应用程序的连接器和库:target/<artifact-id>-<version>.jar
。
注意:如果您使用与StreamingJob不同的类作为应用程序的主类/入口点,我们建议您相应地更改文件中的mainClass
设置pom.xml
。这样,Flink可以从JAR文件运行时间应用程序,而无需另外指定主类。
下一步
写你的申请!
如果您正在编写流处理应用程序并且正在寻找灵感来写什么,请查看流处理应用程序教程
如果您正在编写批处理应用程序,并且正在寻找要编写的内容,请查看批处理应用程序示例
有关API的完整概述,请查看DataStream API和DataSet API部分。
在这里,您可以了解如何在本地群集上的IDE外部运行应用程序。
如果您有任何问题,请在我们的邮件列表中查询。我们很乐意提供帮助。