01.Flink笔记-编译、部署
flink开发环境部署配置
flink是一个以java及scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。所需工具:java、maven、git。
本次操作是在windows环境下。
一、工具安装
java配置(略)
maven配置
- 下载安装
- 配置环境变量
- 修改settings.xml设置
更改本地仓库目录,默认是c:\用户\.m2\respository,为了避免c盘空间不够,更改到其他盘目录
<localrepository>d:\respository</localrepository>
更改镜像仓库
<mirror> <id>nexus-aliyun</id> <mirrorof>*,!jeecg,!jeecg-snapshots,!mapr-releases</mirrorof> <name>nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> <mirror> <id>mapr-public</id> <mirrorof>mapr-releases</mirrorof> <name>mapr-releases</name> <url>https://maven.aliyun.com/repository/mapr-public</url> </mirror>
说明:第一个mirror使用的是aliyun提供的maven镜像仓库,能够为国内用户加速maven repository的访问
第二个最重要。由于flink中的flink-filesystems/flink-mapr-fs模块依赖mapr-releases repository提供的jar包,然而由于国内访问mapr-releases repository比较慢,而且所依赖的maprfs-5.2.1-mapr.jar 这个jar包有48mb,flink依赖中最大的一个jar包,故初次编译flink时,往往会由于下载mapr相关依赖超时导致编译失败。因此,aliyun专门有一个镜像仓库代理mapr-releases repository,以期望能让用户更容易地下载mapr相关的jar包。
aliyun提供的镜像仓库的meta信息:
git(安装略)
二、下载flink代码
完成以上安装配置后,我们就可以从github上下载flink代码了。github上flink的代码仓库是
(可选)国内的用户,下载github 上的代码可能比较慢,可以在hosts 中增加如下配置,可以显著提升github的下载速度:
151.101.72.133 assets-cdn.github.com 151.101.73.194 github.global.ssl.fastly.net 192.30.253.113 github.com 11.238.159.92 git.node5.mirror.et2sqa
windows的hosts目录:c:\windows\system32\drivers\etc\hosts
linux/mac则为:/etc/hosts
下载flink代码到本地
打开一个空文件夹,右击
打开git bash,执行
git clone https://github.com/apache/flink.git
(可选)代码下载完后,默认是在master分支,一般选择合适的发布分支使用。
git checkout release-1.7
git checkout blink
三、编译flink代码
# 删除已有的build,编译flink binary # 接着把flink binary安装在maven的local repository(默认是~/.m2/repository)中 mvn clean install -dskiptests # 另一种编译命令,相对于上面这个命令,主要的确保是: # 不编译tests、qa plugins和javadocs,因此编译要更快一些 mvn clean install -dskiptests -dfast
另外,在一些情况下,我们可能并不想把编译后的flink binary安装在maven的local repository
下,我们可以使用下面的命令:
# 删除已有的build,编译flink binary mvn clean package -dskiptests # 另一种编译命令,相对于上面这个命令,主要的确保是: # 不编译tests、qa plugins和javadocs,因此编译要更快一些
mvn clean package -dskiptests -dfast
如果你需要使用指定hadoop的版本,可以通过指定“-dhadoop.version”来设置,编译命令如下:
mvn clean install -dskiptests -dhadoop.version=2.6.1 # 或者 mvn clean package -dskiptests -dhadoop.version=2.6.1
这次使用的编译命令为
mvn clean package -dskiptests -dfast
成功截图
当成功编译完成后,上述几种编译方式最终都能在当前flink的code path下编译出完整的flink binary,可以在flink-dist/target/目录中看到
其中有三个文件可以留意一下(在之后的章节中,继续学习flink binary的用法):
- flink binary目录,是flink-dist\target\flink-1.7-snapshot-bin\flink-1.7-snapshot
- flink binary目录的压缩包,是flink-dist/target/original-flink-dist_2.11-1.7-snapshot.jar
- 包含flink核心功能的jar包,是flink-dist/target/flink-dist_2.11-1.7-snapshot.jar
问题
问题1、
编译失败,不能下载kafka-schema-registry-client-3.3.1.jar
解决:
手动下载kafka-schema-registry-client-3.3.1.jar包,下载地址如下:
手动安装缺少的kafka-schema-registry-client-3.3.1.jar包
mvn install:install-file -dgroupid=io.confluent -dartifactid=kafka-schema-registry-client -dversion=3.3.1 -dpackaging=jar -dfile=e:\bigdata_flink\packages\kafka-schema-registry-client-3.3.1.jar
问题2:flink-parent依赖包报错
解决:
删除本地仓库下已经下载的\org\apache\flink 目录,关闭git bash重新打开窗口编译。
问题3:failed to execute goal org. apache. maven. plugins :maven-surefire-plugin:2.18.1:test
解决:
这个是单元测试的插件,编译不需要它,在pom文件中注释掉这个插件: maven-surefire-plugin
参考
https://blog.csdn.net/hxcaifly/article/details/86307213
https://www.cnblogs.com/dajiangtai/p/10725249.html
上一篇: 首届中国开源云计算大会举行