《Flink原理、实战与性能优化》 —2.2 Flink项目模板

举报
华章计算机 发表于 2020/02/17 13:12:09 2020/02/17
【摘要】 本节书摘来自华章计算机《Flink原理、实战与性能优化》 一书中第2章,第2.2.1节,作者是张利兵 。

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项目。

 image.png

图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模板项目结构

image.png

从上述项目结构可以看出,该项目已经是一个相对比较完善的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应用的开发,然后通过编译打包,上传并提交到集群上运行。具体应用的开发读者可以参考后续章节。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。