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原码到本地

打开一个空文件夹,右击

打开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核心功能的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包,下载地址如下:

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

问题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

01.Flink笔记-编译、部署的更多相关文章

  1. suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用

    文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...

  2. CentOS 7 编译部署LAMP环境

    文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...

  3. 随手写的自动批量编译部署NativeAndroid程序Python脚本

    背景 有一堆工程NativeAndroid程序,要一一编译部署编译测试,手头只有AndroidManifest和Makefile,需要一个个Update,Ndk-build,和发包安装测试,很是头疼, ...

  4. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  5. maven 编译部署src/main/java下的资源文件

    maven 编译部署src/main/java下的资源文件 maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到targ ...

  6. jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战

    一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编 ...

  7. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  8. Flink集群部署

    部署方式 一般来讲有三种方式: Local Standalone Flink On Yarn/Mesos/K8s… 单机模式 参考上一篇Flink从入门到放弃(入门篇2)-本地环境搭建&构建第 ...

  9. unigui的编译部署

    unigui的编译部署 unigui既可以EXE形态部署,也可以IIS的ISAPI的形态部署.关键在工程文件.dpr里面的编译开关. {$define UNIGUI_VCL} // 注释此编译开关将使 ...

随机推荐

  1. 音视频入门-10-使用libyuv对YUV数据进行缩放、旋转、镜像、裁剪、混合

    * 音视频入门文章目录 * libyuv libyuv 是 Google 开源的实现各种 YUV 与 RGB 之间相互转换.旋转.缩放等的库.它是跨平台的,可在 Windows.Linux.Mac.A ...

  2. java 任务定时调度(定时器)

    任务定时调度 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线 ...

  3. 一、openfeign的自动配置

    所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 openfeign是一种声明式的webservice客户端调用框架.你只需要声明接口和一 ...

  4. iOS - 数据存储方式(本地化)

    iOS中数据存储方式 一般使用以下4种:(已更新) .NSKeyedAchiever//序列化 存放对象 .NSUserDefaults//本质是plist存储 NSData.NSString.NSN ...

  5. $.ajaxSetup()与$.ajax()区别

    ajaxSetup()其使用方法与ajax()并无区别,只是在其之后的ajax()不用再重复添加相同参数,节省了代码量. 附:API中关于jQuery.ajaxSetup([options])的描述和 ...

  6. 关于http的小知识

    http客户端发起请求,创建端口 http服务器在端口监听客户端请求 http服务器向客户端返回状态和内容 浏览器: 1.Chrome搜索自身的DNS缓存 2.搜索操作系统自身的DNS缓存(浏览器没有 ...

  7. What is Verbose Garbage Collection (verbosegc) and How do I Enable it on WebLogic

    问题描述: What is Verbose Garbage Collection (verbosegc) and How do I Enable it on WebLogic 问题分析: 通过添加gc ...

  8. Oracle数据的导入与导出

    本文针对window操作系统与oracle12C的版本. 1.sqlplus执行单个sql文件 1.执行sqlplus登陆命令:sqlplus username/password@host:port/ ...

  9. 001——搭建OpenCV实验环境

    开发环境 VS 2017 15.7.6 OpenCV 3.4.1 搭建环境 设置环境变量 创建Win32 空项目 配置属性管理器 测试代码 #include<opencv2/opencv.hpp ...

  10. 0015SpringBoot结合thymeleaf实现点击菜单高亮显示

    1.点击菜单,经过Controller层处理,正常定位到视图页面 2.编写抽象出公共片段的html,根据参数判断是否加高亮样式 3.多个目标页面引用步骤2中抽象出的公共片段,传不同的参数 具体实现如下 ...