《Flink原理、实战与性能优化》 —2.2 Flink项目模板
2.2 Flink项目模板
Flink为了对用户使用Flink进行应用开发进行简化,提供了相应的项目模板来创建开发项目,用户不需要自己引入相应的依赖库,就能够轻松搭建开发环境,前提是在JDK(1.8及以上)和Maven(3.0.4及以上)的环境已经安装好且能正常执行。在Flink项目模板中,Flink提供了分别基于Java和Scala实现的模板,下面就两套项目模板分别进行介绍和应用。
2.2.1 基于Java实现的项目模板
1. 创建项目
创建模板项目的方式有两种,一种方式是通过Maven archetype命令进行创建,另一种方式是通过Flink提供的Quickstart Shell脚本进行创建,具体实例说明如下。
通过Maven Archetype进行创建:
$ mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeCatalog=https://repository.apache.org/ \
content/repositories/snapshots/ \
-DarchetypeVersion=1.7.0
通过以上Maven命令进行项目创建的过程中,命令会交互式地提示用户对项目的groupId、artifactId、version、package等信息进行定义,且部分选项具有默认值,用户直接回车即可,如图2-1所示。我们创建了实例项目成功之后,客户端会提示用户项目创建成功,且在当前路径中具有相应创建的Maven项目。
图2-1 Maven创建Java项目
通过quickstart脚本创建:
$ curl https://flink.apache.org/q/quickstart-SNAPSHOT.sh | bash -s 1.6.0
通过以上脚本可以比较简单地创建项目,执行后项目会自动生成,但是项目的名称和一些GAV信息都是自动生成的,用户不能进行交互式重新定义,其中的项目名称为quickstart,gourpid为org.myorg.quickstart,version为0.1。这种方式对于Flink入门相对比较适合,其他有一定基础的情况下,则不建议使用这种方式进行项目创建。
注意 在Maven 3.0以上的版本中,DarchetypeCatalog配置已经从命令行中移除,需要用户在Maven Settings中进行配置,或者直接将该选项移除,否则可能造成不能生成Project的错误。
2. 检查项目
对于使用quickstart curl命令创建的项目,我们可以看到的项目结构如代码清单2-1所示,如果用户使用Maven Archetype,则可以自己定义对应的artifactId等信息。
代码清单2-1 Java模板项目结构
从上述项目结构可以看出,该项目已经是一个相对比较完善的Maven项目,其中创建出来对应的Java实例代码,分别是BatchJob.java和Streaming.java两个文件,分别对应Flink批量接口DataSet的实例代码和流式接口DataStream的实例代码。在创建好上述项目后,建议用户将项目导入到IDE进行后续开发,Flink官网推荐使用的是Intellij IDEA或者Eclipse进行项目开发,具体的开发环境配置可以参考下一节中的介绍。
3. 编译项目
项目经过上述步骤创建后,可以使用Maven Command命令mvn clean package对项目进行编译,编译完成后在项目同级目录会生成target/<artifact-id>-<version>.jar,则该可执行Jar包就可以通过Flink命令或者Web客户端提交到集群上执行。
注意 通过Maven创建Java应用,用户可以在Pom中指定Main Class,这样提交执行过程中就具有默认的入口Main Class,否则需要用户在执行的Flink App的Jar应用中指定Main Class。
4. 开发应用
在项目创建和检测完成后,用户可以选择在模板项目中的代码上编写应用,也可以定义Class调用DataSet API或DataStream API进行Flink应用的开发,然后通过编译打包,上传并提交到集群上运行。具体应用的开发读者可以参考后续章节。
- 点赞
- 收藏
- 关注作者
评论(0)