01.Flink笔记

Wesley13
• 阅读 728

Flink开发环境部署配置

Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。所需工具:Java、maven、Git。

本次操作是在windows环境下。

一、工具安装

Java配置(略)

maven配置

  1. 下载安装
  2. 配置环境变量
  3. 修改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信息:https://maven.aliyun.com/mvn/view

git(安装略)

二、下载Flink代码

完成以上安装配置后,我们就可以从github上下载Flink代码了。github上flink的代码仓库是https://github.com/apache/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原码到本地

打开一个空文件夹,右击

01.Flink笔记

打开git bash,执行

git clone https://github.com/apache/flink.git

(可选)代码下载完后,默认是在master分支,一般选择合适的发布分支使用。

git checkout release-1.7git 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

成功截图

01.Flink笔记

当成功编译完成后,上述几种编译方式最终都能在当前flink的code path下编译出完整的flink binary,可以在flink-dist/target/目录中看到

01.Flink笔记

其中有三个文件可以留意一下(在之后的章节中,继续学习flink binary的用法):

  • flink binary目录,此处是flink-dist\target\flink-1.7-SNAPSHOT-bin\flink-1.7-SNAPSHOT
  • flink binary目录的压缩包,此处没有压缩
  • 包含flink核心功能的jar包,此处是flink-dist/target/flink-dist_2.11-1.7-SNAPSHOT.jar

遇到的问题

问题1、编译失败,不能下载kafka-schema-registry-client-3.3.1.jar

01.Flink笔记

解决:

手动下载kafka-schema-registry-client-3.3.1.jar包,下载地址如下:

http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/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

01.Flink笔记

解决:

删除本地仓库下已经下载的\org\apache\flink 目录,关闭git bash重新打开窗口编译。

问题3:Failed to execute goal org. apache. maven. plugins :maven-surefire-plugin:2.18.1:test

01.Flink笔记

解决:

这个是单元测试的插件,编译不需要它,在pom文件中注释掉这个插件: maven-surefire-plugin

01.Flink笔记

参考

https://blog.csdn.net/hxcaifly/article/details/86307213

https://www.cnblogs.com/dajiangtai/p/10725249.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Maven使用 国内镜像配置
Maven使用国内镜像配置  Maven  setting.xml中配置<repositories<repository<idnexus</id<namelocalprivatenexus</name
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这