准备工作

因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库

<mirrors>

  <mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror> </mirrors>

编译flink-shaded

因为flink依赖flink-shaded工程,基本的依赖项都是在这个工程里面定义的,所以要先编译这个工程

  1. 下载flink-shaded工程flink-shaded

  2. 在写文章时,最新的release版本是8.0,里面用的hadoop及zookeeper对应版本如下

    <properties>
    <avro.version>1.8.2</avro.version>
    <slf4j.version>1.7.15</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <hadoop.version>2.4.1</hadoop.version>
    <zookeeper.version>3.4.10</zookeeper.version>
    <findbugs.version>1.3.9</findbugs.version>
    </properties>
  3. 将hadoop和zk改成自己CDH6.2.0对应的版本,修改flink-shaded-hadoop-2工程的pom文件

    <properties>
    <avro.version>1.8.2</avro.version>
    <slf4j.version>1.7.15</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <hadoop.version>3.0.0</hadoop.version>
    <zookeeper.version>3.4.5</zookeeper.version>
    <findbugs.version>1.3.9</findbugs.version>
    </properties>
  4. 修改编译后的版本号

    • 设置/Users/chengaofeng/git/flink-shaded/tools/releasing/update_branch_version.sh 工程中的OLD_VERSION=8.0和NEW_VERSION=9.0
    • 在tools目录下执行 sh releasing/update_branch_version.sh 命令
  5. 修改flink-shaded-hadoop-2和flink-shaded-hadoop-2-uber工程中依赖的外部变量名称

    <artifactId>flink-shaded-hadoop-2-uber</artifactId>
    <name>flink-shaded-hadoop-2-uber</name> <packaging>jar</packaging>
    <version>${hadoop.version}-9.0</version>
    <artifactId>flink-shaded-hadoop-2</artifactId>
    <name>flink-shaded-hadoop-2</name> <packaging>jar</packaging>
    <version>${hadoop.version}-9.0</version>
  6. 进入flink-shaded目录执行编译

mvn  clean install -DskipTests -Drat.skip=true -Pvendor-repos  -Dhadoop.version.cdh=3.0.0

效果图

编译flink

  1. 下载源码flink

  2. 写文章时最新的release版本是1.9,所以下载1.9版本的代码

  3. 修改对应的hadoop和flink.shaded.version值为我们需要的值

    		<hadoop.version>3.0.0</hadoop.version>
    ...
    <flink.shaded.version.old>7.0</flink.shaded.version.old>
    <flink.shaded.version>9.0</flink.shaded.version>
    ...
    <hivemetastore.hadoop.version>3.0.0</hivemetastore.hadoop.version>

    因为只想更新hadoop的版本,所以依赖的其他flink-shaded版本不做变更,以下jackson举例说明,还是用旧的版本(用最新的编译没有编译过)


    <dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-shaded-jackson</artifactId>
    <version>${jackson.version}-${flink.shaded.version.old}</version>
    </dependency> <dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-shaded-jackson-module-jsonSchema</artifactId>
    <version>${jackson.version}-${flink.shaded.version.old}</version>
    </dependency>
  4. 修改flink-connectors/flink-hbase中依赖的hbase版本号

    <properties>
    <hbase.version>2.1.2</hbase.version>
    </properties>

    之后需要修改这个工程中的AbstractTableInputFormat.java,TableInputFormat.java以及junit中的编译错误

  5. 修改版本号

    修改tools/change-version.sh中新旧版本号

    OLD="1.9-SNAPSHOT"
    NEW="1.9-H3"
  6. 执行脚本change-version.sh

  7. 注释掉不需要编译的工程,因为这个编译太耗时间,可以把测试相关的包去掉

  8. 执行编译

    mvn clean install -DskipTests -Pvendor-repos -Drat.skip=true -Pinclude-hadoop
  9. 编译结果



  10. 在工程中使用新编译出的版本

    <properties>
    <flink.version>1.9-H3</flink.version>
    </properties>

    对应修改后的代码地址github 版本:release-1.9

flink编译支持CDH6.2.0(hadoop3.0.0)的更多相关文章

  1. Hadoop3.2.0使用详解

    1.概述 Hadoop3已经发布很久了,迭代集成的一些新特性也是很有用的.截止本篇博客书写为止,Hadoop发布了3.2.0.接下来,笔者就为大家分享一下在使用Hadoop3中遇到到一些问题,以及解决 ...

  2. CentOS7搭建Hadoop-3.3.0集群手记

    前提 这篇文章是基于Linux系统CentOS7搭建Hadoop-3.3.0分布式集群的详细手记. 基本概念 Hadoop中的HDFS和YARN都是主从架构,主从架构会有一主多从和多主多从两种架构,这 ...

  3. Gobblin编译支持CDH5.4.0

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 Gobblin的前身是linkedin的Camus,好多人也用过,准备用Gobblin的方式来抽 ...

  4. nginx编译支持HTTP2.0

    nginx编译支持HTTP2.0 nginx编译支持HTTP2.0 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz #openssl ...

  5. hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)

    目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...

  6. [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题

    1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...

  7. PHP7 学习笔记(一)Ubuntu 16.04 编译安装Nginx-1.10.3、 PHP7.0.9、Redis3.0 扩展、Phalcon3.1 扩展、Swoole1.9.8 扩展、ssh2扩展(全程编译安装)

    ==================== PHP 7.0 编译安装================== wget http://cn2.php.net/get/php-7.0.9.tar.bz2/fr ...

  8. hadoop3.1.0 window win7 基础环境搭建

    https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基础环境搭建 前言:在windo ...

  9. 【hadoop】hadoop3.2.0应用环境搭建与使用指南

    下面列出我搭建hadoop应用环境的文章整理在一起,不定期更新,供大家参考,互相学习!!! 杂谈篇: [英语学习]Re-pick up English for learning big data (n ...

随机推荐

  1. 【t002】jam的计数法

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世 ...

  2. 【t090】吉祥数

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏: ...

  3. 人脸检测MTCNN的训练过程(PRO网络)

    以下学习均由此:https://github.com/AITTSMD/MTCNN-Tensorflow 数据集 WIDER Face for face detection and Celeba for ...

  4. H3C 路由器单跳操作

  5. H3C 链路聚合分类

  6. The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛

    B.super_log (欧拉降幂) •题意 定一个一个运算log*,迭代表达式为 给定一个a,b计算直到迭代结果>=b时,最小的x,输出对m取余后的值 •思路 $log*_{a}(1)=1+l ...

  7. CF1045G AI robots

    CF1045G AI robots 题目大意就不说了 这道题可以用CDQ分治做 但是,如何选择CDQ分治的维度一直是CDQ分治的难点所在 这道题我们有三种选择 1.让智商高的数智商低的 2.让看的近的 ...

  8. css隐藏滚动条、移动端滚动卡顿的解决

    1.如果想保持容器能够滚动,同时不想看到丑陋的滚动条,chrome.firefox和移动端上不考虑兼容性直接 element::-webkit-scrollbar{ display:none } 2. ...

  9. tjoi2019题解

    t1:矩阵快速幂 t2:裸的平衡树 splay比treap代码长太多 常数大一倍 没加输优直接t了 还要特判n=1(我的splay删除的时候会遇到问题) t3: 很显然是容斥 然后对于$A+B+C+D ...

  10. C++中常量成员函数的含义

    C++中常量成员函数的含义 本文内容来源:<C++必知必会> 使用常量成员函数可以改变对象的逻辑状态,虽然对象的物理状态没有发生改变.考虑如下代码,它定义了一个类X: class X{ p ...