《Flink原理、实战与性能优化》 —2.3.4 项目配置

举报
华章计算机 发表于 2020/02/17 13:59:54 2020/02/17
【摘要】 本节书摘来自华章计算机《Flink原理、实战与性能优化》 一书中第2章,第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项目依赖配置库

image.png

创建Scala版本Flink项目依赖库配置如下,和Java相比需要指定scala的版本信息,目前官方建议的是使用Scala 2.11,如果需要使用特定版本的Scala,则要将源码下载进行指定Scala版本编译,否则Scala各大版本之间兼容性较弱会导致应用程序在实际环境中无法运行的问题。Flink 基于Scala语言项目依赖配置库如代码清单2-5所示:

代码清单2-5 Flink Scala项目依赖配置库

image.png

另外在上述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包。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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