编译 Flink代码

news2024/11/19 3:41:41

构建环境

JDK1.8以上和Maven 3.3.x可以构建Flink,但是不能正确地遮盖某些依赖项。Maven 3.2.5会正确创建库。所以这里使用为了减少问题选择 Maven3.2.5版本进行构建。要构建单元测试,请使用Java 8以上,以防止使用PowerMock运行器的单元测试失败。

克隆 Git 仓库

我们可以从github上下载Flink代码了。githubflink的代码仓库链接。国内镜像地址链接。

git clone https://gitee.com/mirrors/apache-flink.git

注意下载的时候可能会出现如下问题:

fatal: bad config value for 'http.postbuffer' in /root/.gitconfig

解决方案是修改git默认的缓存大小(500M)

git config --global http.postBuffer 524288000

Maven 配置

mirrors标签中添加如下mirror依赖简要说明一下,第一个mirror使用的是aliyun提供的maven镜像仓库,能够为国内用户加速maven repository的访问,你也可以配置成国内其他的maven镜像仓库或者自己搭建的仓库。最重要的是第二个片段的内容。由于flink中的flink-filesystems/flink-mapr-fs模块依赖mapr-releases repository提供的jar包,然而由于国内访问mapr-releases repository比较慢,而 且所依赖的 maprfs-5.2.1-mapr.jar这个jar包有48MBflink依赖中最大的一个jar包,故初次编译flink时,往往会由于下载mapr相关依赖超时导致编译失败。因此,aliyun专门有一个镜像仓库代理mapr-releases repository,以期望能让用户更容易地下载mapr相关的jar包。

 <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>
    <id>confluent</id>
    <mirrorOf>confluent</mirrorOf>
    <name>confluent</name>
    <url>http://packages.confluent.io/maven</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>

可以通过这个链接查看aliyun提供的镜像仓库的meta信息:https://maven.aliyun.com/mvn/view

获取 Git分支

查看 Git远程分支,我们选择当前次新的1.8​ 在这里插入图片描述

git branch -r

源码切换到1.8分支

git checkout release-1.8

Maven 编译

常用命令,建议使用此命令,不编译tests的,否则你会遇到bink编译问题。

mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true

删除已有的build,编译flink binary #接着把flink binary安装在mavenlocal repository(默认是~/.m2/repository)中,如有问题百度解决,百度没有,多试几次,可能是网络的问题。

mvn clean install -DskipTests

另一种编译命令,相对于上面这个命令,主要的确保是:不编译tests、QA pluginsJavaDocs,因此编译要更快一些

mvn clean install -DskipTests -Dfast

另外,在一些情况下,我们可能并不想把编译后的flink binary安装在mavenlocal 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

问题及解决

问题如下,Could not resolve dependencies for project flink-runtime_2.11:jar:1.8-SNAPSHOT,类似这种依赖问题。

[ERROR] Failed to execute goal on project flink-s3-fs-hadoop: Could not resolve dependencies for project org.apache.flink:flink-s3-fs-hadoop:jar:1.8-SNAPSHOT: Could not find artifact org.apache.flink:flink-fs-hadoop-shaded:jar:tests:1.8-SNAPSHOT in nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) -> [Help 1]

解决方案,在下载对应的Jar包链接,并执行如下命令进行安装

[root@hadoop1 apache-flink]# mvn install:install-file -DgroupId=org.apache.flink -DartifactId=flink-s3-fs-hadoop -Dversion=1.8-SNAPSHOT -Dpackaging=jar -Dfile=/usr/local/myjar/flink-s3-fs-hadoop-1.8.0.jar

当成功编译完成后,上述几种编译方式最终都能在当前flinkcode path下编译出完整的flink binary,可以在flink-dist/target/目录中看到:
【1】flink binary目录,本例中是flink-dist/target/flink-1.5.1-bin/flink-1.5.1
【2】flink binary目录的压缩包,本例中是flink-dist/target/flink-1.5.1.tar.gz
【3】包含flink核心功能的jar包,本例中是flink-dist/target/flink-dist_2.11-1.5.1.jar
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1302624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot集成系列--RabbitMQ

文章目录 一、代码1、添加依赖2、配置RabbitMQ连接3、RabbitMQ配置4、创建生产者5、创建消费者6、测试 二、遇到的问题1、Channel shutdown2、收不到信息3、安装RabbitMQ&#xff0c;无法访问控制台访问 一、代码 1、添加依赖 在pom.xml文件中添加RabbitMQ的相关依赖 <de…

10天玩转Python第2天:python判断语句基础示例全面详解与代码练习

目录 1.课程之前1.1 复习和反馈1.2 作业1.3 今日内容1.4 字符串格式化的补充1.5 运算符1.5.1 逻辑运算符1.5.2 赋值运算符1.5.3 运算符优先 2.判断2.1 if 的基本结构2.1.1 基本语法2.1.2 代码案例2.1.3 练习 2.2 if else 结构2.2.1 基本语法2.2.2 代码案例2.2.3 练习 2.3 if 和…

基于JavaWeb+SpringBoot+Vue在线拍卖系统的设计和实现

基于JavaWebSpringBootVue在线拍卖系统系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 摘 要 1 Abstract 1 1 系统概述 4 1.1 概述 4 1.2课题意义 4 1.3 主要内容 4 2 …

「实用教程」win32spl.dll文件的作用及修复方法分享

本文将为您详细介绍Win32spl.dll文件的作用、丢失原因以及提供5个修复教程&#xff0c;帮助您解决这一问题。 一、Win32spl.dll文件的作用 Win32spl.dll是一个动态链接库文件&#xff0c;它是Windows操作系统中的一个重要组件。该文件主要负责处理系统启动时的一些操作&#…

[笔记] 使用 qemu/grub 模拟系统启动(单分区)

背景 最近在学习操作系统&#xff0c;需要从零开始搭建系统&#xff0c;由于教程中给的虚拟机搭建的方式感觉还是过于重量级&#xff0c;因此研究了一下通过 qemu 模拟器&#xff0c;配合 grub 完成启动系统的搭建。 qemu 介绍 qemu 是一款十分优秀的系统模拟器&#xff0c;…

[MySQL]SQL优化之索引的使用规则

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、索引失效 &#x1f4d5;最左前缀法则 &#x1f4d5;范围查询> &#x1f4d5;索引列运算&#xff0c;索引失效 &#x1f4d5;前模糊匹配 &#x1f4d5;or连接的条件 &#x1f4d5;字符串类型不加 …

《PySpark大数据分析实战》-03.了解Hive

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

Redis基础系列-主从复制

Redis基础系列-主从复制 文章目录 Redis基础系列-主从复制1. 什么是 Redis 主从复制&#xff1f;2. 主从复制有什么好处&#xff1f;3. 如何配置 Redis 主从复制&#xff1f;4. 主从复制的验证4.1 如何查看主从搭建成功4.2 主从常见疑问4.3 主从常见命令 5. 主从复制的原理和工…

node14升级node16之后,webpack3项目无法启动处理

node从14升级到16之后&#xff0c;项目就无法启动了&#xff0c;研究了webpack3升级5&#xff0c;研究好几个小时都无法启动&#xff0c;最后发现&#xff0c;微微升级几个版本就可以了。webpack还是3 版本改了好多个的&#xff0c;但是不确定具体是哪几个起作用的&#xff0c;…

c++ map

unordered_map #include <iostream> #include <string> #include <unordered_map>int main() {// 创建包含三个字符串的&#xff08;映射到字符串的&#xff09;unordered_mapstd::unordered_map<std::string, std::string> u {{"red", &qu…

计算机丢失msvcp140dll怎么恢复?快速解决dll缺失问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp140dll丢失”。msvcp140.dll是一个动态链接库文件&#xff0c;它包含了许多C标准库函数的实现。这些动态链接库文件是程序运行所必需的&#xff0c;它们包含了许多函数和资源&#xf…

5V高细分双通道步进电机驱动芯片应用于摇头机,X,Y控制,聚焦控制,CAMERA云台控制等产品上的芯片选型分析

双通道5V高细分步进电机驱动芯片GC6106&#xff0c;GC6107&#xff0c;GC6119&#xff0c;GC6151&#xff0c;GC6236&#xff0c;GC6225&#xff0c;GC6129&#xff0c;电压范围3~5.5V&#xff0c;最大持续电流可达0.6A左右。可应用于摇头机&#xff0c;X,Y控制&#xff0c;聚焦…

某行 webpack 加密算法分析

本次的目标是某行购物网站的加密算法分析&#xff0c;网站如下 aHR0cHM6Ly93d3cuemtoLmNvbS8&#xff08;注&#xff1a;该网站从整体上看来&#xff0c;是webpack加密&#xff0c;但是本文的实现方式&#xff0c;不是扣js代码也不补环境&#xff0c;因为最后分析此网站用的都…

静态链接库和动态链接库(隐式载入显式载入)

文章目录 动态链接库和静态链接库什么是链接库&#xff1f;静态链接库动态链接库动态链接库的俩种链接方式加载时动态链接运行时动态链接 动态链接库和静态链接库 动态链接库和静态链接库都是共享代码的方法&#xff0c;只是二者略有区别。 以C/C为例&#xff0c;一个可执行文…

JDK多版本集成 Jacoco 配置指南

JDK多版本集成 Jacoco 配置指南 本篇相关 JDK 版本配置如下&#xff1a; JDK8 JDK11 JDK17 Jacoco 是什么 Jacoco 是一个用于Java程序的代码覆盖率报告工具。它通过动态分析&#xff08;在代码执行时收集数据&#xff09;来生成代码覆盖率报告文件。Jacoco 支持多种覆盖率标…

CSS新手入门笔记整理:元素类型相互转换

元素类型 块元素&#xff08;block&#xff09; 独占一行&#xff0c;排斥其他元素跟其位于同一行&#xff0c;包括块元素和行内元素。块元素内部可以容纳其他块元素和行内元素。可以定义 width&#xff0c;也可以定义 height。可以定义 4 个方向的 margin。 行内元素&#xf…

正运动ZDevelop软件使用流程

ZDevelop是正运动技术ZMoiton系列运动控制器的PC端程序开发调试与诊断软件&#xff0c;通过它用户能够很容易的对控制器进行程序编辑与配置&#xff0c;快速开发应用程序、实时诊断系统运行参数以及对运动控制器正在运行的程序进行实时调试&#xff0c;支持中英双语环境。 BAS…

川崎ZX-6R确定引进,636它真的来了,3C认证已过。

最新消息&#xff0c;兄弟们&#xff0c;你们期待已久的川崎ZX6R&#xff08;636&#xff09;基本已经确定引进了&#xff0c;官方的3C认证已经通过&#xff0c;那么从3C里面我们可以看到哪几个信息&#xff1f;产品代号ZX636J就是心心念念的ZX-6R了。 有些小伙伴不太清楚3C认…

MYsql第二次作业

目录 问题 解答 1. 2. 3. 4. 5. 6. 7.查看所有人的年龄 8. 9. 10 11 12.查询部门号为103或102的职工号&#xff0c;姓名&#xff0c;政治面貌 13. 14 15 16 17. 问题 解答 1. 2. 3. 4. 5. 6. 7.查看所有人的年龄 8. 9. 10 11 12.查询部门号为103或102的职…

基于PaddleOCR银行卡识别实现(四)之uni-app离线插件

目的 在前三篇文章中完成了银行卡识别整个模型训练等工作&#xff0c;通过了解PaddleOCR的端侧部署&#xff0c;我们也可以将银行卡号检测模型和识别模型移植到手机中&#xff0c;做成一款uni-app手机端离线银行卡号识别的应用。 准备工作 为了不占用过多篇幅&#xff0c;这…