《Flink原理、实战与性能优化》 —2.3.4 项目配置
2.3.4 项目配置
对于通过项目模板生成的项目,项目中的主要参数配置已被初始化,所以无须额外进行配置,如果用户通过手工进行项目的创建,则需要创建Flink项目并进行相应的基础配置,包括Maven Dependences、Scala的Version等配置信息。
1. Flink基础依赖库
对于Java版本,需要在项目的pom.xml文件中配置如代码清单2-4所示的依赖库,其中flink-java和flink-streaming-java分别是批量计算DataSet API和流式计算DataStream API的依赖库,{flink.version}是官方的发布的版本号,用户可根据自身需要进行选择,本书中所有的实例代码都是基于Flink 1.7版本开发。
代码清单2-4 Flink Java项目依赖配置库
创建Scala版本Flink项目依赖库配置如下,和Java相比需要指定scala的版本信息,目前官方建议的是使用Scala 2.11,如果需要使用特定版本的Scala,则要将源码下载进行指定Scala版本编译,否则Scala各大版本之间兼容性较弱会导致应用程序在实际环境中无法运行的问题。Flink 基于Scala语言项目依赖配置库如代码清单2-5所示:
代码清单2-5 Flink Scala项目依赖配置库
另外在上述Maven Dependences配置中,核心的依赖库配置的Scope为provided,主要目的是在编译阶段能够将依赖的Flink基础库排除在项目之外,当用户提交应用到Flink集群的时候,就避免因为引入Flink基础库而导致Jar包太大或类冲突等问题。而对于Scope配置成provided的项目可能出现本地IDE中无法运行的问题,可以在Maven中通过配置Profile的方式,动态指定编译部署包的scope为provided,本地运行过程中的scope为compile,从而解决本地和集群环境编译部署的问题。
注意 由于Flink在最新版本中已经不再支持scala 2.10的版本,建议读者使用scala 2.11,同时Flink将在未来的新版本中逐渐支持Scala 2.12。
2. Flink Connector和Lib依赖库
除了上述Flink项目中应用开发必须依赖的基础库之外,如果用户需要添加其他依赖,例如Flink中內建的Connector,或者其他第三方依赖库,需要在项目中添加相应的Maven Dependences,并将这些Dependence的Scope需要配置成compile。
如果项目中需要引入Hadoop相关依赖包,和基础库一样,在打包编译的时候将Scope注明为provided,因为Flink集群中已经将Hadoop依赖包添加在集群的环境中,用户不需要再将相应的Jar包打入应用中,否则容易造成Jar包冲突。
注意 对于有些常用的依赖库,为了不必每次都要上传依赖包到集群上,用户可以将依赖的包可以直接上传到Flink安装部署路径中的lib目录中,这样在集群启动的时候就能够将依赖库加载到集群的ClassPath中,无须每次在提交任务的时候上传依赖的Jar包。
- 点赞
- 收藏
- 关注作者
评论(0)