Flink实战:01.创建项目结构

flink 官方提供两种创建项目的方式, mavengradle ,同时也提供快速构建项目模板的脚本和命令脚本,但这种方式需要自行修改项目 groupIdArtifactId ,因此,建议使用 idea IDE 创建项目工程,省时省心。

环境要求

开发 flink 程序,官方有个环境配置最低要求:

# 基于maven
maven 3.0.4+
java 8.x+

# gradle
gradle 3.x+
java 8.x+

基于mvn创建项目

mvn 算是 java 包管理的老牌, idea 中默认内置maven插件,我们只需要选择创建的项目类型是基于 maven 类别即可:

首先,创建一个新项目: Create New Project
Flink实战:01.创建项目结构_第1张图片
下一步,选择 maven 项目,并且勾选: Create from archetype 选项(目的是使用 flink 官方提供的项目模板快速生成项目结构)

如果是第一次创建项目,那么则需要添加一个新的模板文件,请选择: Add Archetype 按钮,并把官方提供的模板内容填写完整:
Flink实战:01.创建项目结构_第2张图片
这里需要注意的是 Version 字段,请确认你开发时的 flink 版本和你运行的环境版本是一致的,以免带来不必要的麻烦。

比如:公司的 flink 集群是是基于 1.7.0 版本,而你是基于 1.10.0 开发的代码,那么最终上线肯定会遇到兼容性问题的,所以请注意。

添加好官方的模板后,我们便可以在以下的列表中选择基于该模板来创建项目基本结构:
Flink实战:01.创建项目结构_第3张图片
下一步,配置项目名称,并且取一个唯一的 groupId 名称:
Flink实战:01.创建项目结构_第4张图片
最后,直接下一步选择默认操作完成即可。整个项目目录结构创建完成,如下:
Flink实战:01.创建项目结构_第5张图片
官方默认的会提供两份模板代码文件: BatchJobStreamingJob 模板文件:

BatchJob: 离线批处理文件
StreamingJob: 实时计算处理代码

项目结构升级

当我们基于官方项目模板创建好基础目录结构后,我们还需要对项目结构做一下升级,需要把项目的配置文件按运行环境做一下区分,比如开发环境和线上环境使用的使用不同的配置文件,这里我们基于项目的 resoures/ 目录来实现:

# resoures 目录
.
├── env
│   ├── config.dev.properties
│   └── config.prod.properties
└── config.properties

我们创建了一个 config.properties 文件来配置项目的常用配置数据,如, kafakaredis 等连接配置等。

然后创建一个 env 子目录,并创建两个环境对应的配置文件,我们希望不同的环境当中使用不同的配置。当然,光是创建这些文件,是无法让文件实现自动按照运行环境自动实现文件匹配的,我们还需要配置 pom.xml 文件:

首先,找到 配置字段,添加文件路径:

<build>
	
	<filters>
	    <filter>src/main/resources/env/config.${env}.propertiesfilter>
	filters>
	
	<resources>
	    <resource>
	        <directory>src/main/resourcesdirectory>
    	    <filtering>truefiltering>
    	    <includes>
    	        <include>*.propertiesinclude>
    	    includes>
	    resource>
	resources>
	
build>

上述代码目的是告诉构建工具,在构建的时候需要加载 resoures 目录的配置文件参与构建,并且使用 ${env} 环境变量来决定具体加载的名称。

因此,我们还需要指定 ${env} 的环境变量配置,在 标签下,移除默认的 配置内容,新建两份环境配置 devprodprofile 文件配置:

<profiles>
    <profile>
    <id>devid>
            <properties>
                <env>devenv>
            properties>            
            
        profile>
        <profile>
            <id>prodid>
            <properties>
                <env>prodenv>
            properties>
            
    profile>
profiles>

如此,当我们运行项目时,可以根据不同的环境选择不同的配置文件,以保证开发和线上环境彻底分开,当然你也可以举一反三的创建测试环境、预上线环境等等。

如何运行?

有了上述环境配置之后,那么如果根据不同环境试运行呢?

一种是基于 idea IDE编辑器:

比较常用的方式,直接在右侧 maven 菜单,选择不同的环境配置 → 然后运行即可:
Flink实战:01.创建项目结构_第6张图片
第二种,命令行工具:

使用命令行方式,在代码编译上线自动化部署时比较常用,直接传参即可:

mvn -Pprod

到此为止,整个项目目录创建内容工作结束。感谢大家的阅读,我是:猿谋人,和大家一起盘代码。

你可能感兴趣的:(flink实战,flink,hdfs,大数据,流处理)