flink编译支持CDH6.2.0(hadoop3.0.0)_flink-shaded-hadoop-程序员宅基地

技术标签: 技术  

准备工作

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

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

因为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

效果图

  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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45533800/article/details/110142988

智能推荐

SQLite3 极简教程 & Go 使用 SQLite 内存模式操作数据结构_golang sqlite 内存数据库 附加-程序员宅基地

文章浏览阅读1.1w次。SQLite 简介关键词: RDBMS (embedded), CSQLite is a database engine written in the C language. It is not a standalone app; rather, it is a library that software developers embed in their apps...._golang sqlite 内存数据库 附加

Struts1介绍_struts1引用包-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏7次。struts:[strʌts]支柱; 撑杆; 支杆; 支撑; 趾高气扬的步态; 高视阔步的样子;引入strutsModel1结构如图1所示: Model1是一个以JSP文件为中心的模式,在这种模式中JSP页面不仅负责表现逻辑,也负责控制逻辑。专业书籍上称之为逻辑耦合在页面中,这种处理方式,对一些规模很小的项目如:一个简单的留言簿,也没什么太大的坏处,实际上,人们开始接触一些对自己来说是新的东西的时候,比如,用JSP访问数据库时,往往喜欢别人能提供一个包含这一切的单个JSP页面,因为这样在.._struts1引用包

关于使用okhttp3响应乱码问题-程序员宅基地

文章浏览阅读178次。然后在创建OkHttpClient.Builder()的地方配置拦截器。,不加拦截器也可以达到相同的效果。通过 okhttp3 去请求。配置响应拦截器,解压缩响应体。进行压缩,然后返回数据给。

ESC/POS 指令集和打印机开发-程序员宅基地

文章浏览阅读1.1w次,点赞5次,收藏17次。ESC/POS命令集(转摘)切纸指令:发送:十六进制:1B694.1 基本控制指令4.1.1 ESC @[名称] 初始化打印机[格式] ASCII码 ESC @十六进制码 1B 40十进制码 27 64[描述] 清除打印缓冲区中的数据,复位打印机打印参数到当打印机缺省参数。[注意] * 不是完全恢复到出厂设置,用户参数设置(见三、JPM112打印机工具软件)不会被更改。[例子] char SendStr[3];SendStr[0] = 0x_esc/pos

iOS 多线程--GCD 串行队列、并发队列以及同步执行、异步执行_dispatch_async(serialqueue, ^{ nslog(@"%@", [nsthr-程序员宅基地

文章浏览阅读2.1k次。1 什么是队列(queue)在开始GCD之前先来说一下队列的概念,因为GCD的任务都是在队列中派发的;队列(queue):是先进先出(FIFO, First-In-First-Out)的线性表。但是在队列前面加上串行和并发这两个定语之后,也就是串行队列、并发队列,有时就容易搞不清楚了,特别是再加上同步和异步的概念之后,有时就更不清楚了。2 串行队列和并发队列注意是并发队列(Concurrent Queue),不是并行队列,关于并发和并行的区别见下一节什么是串行队列和并发队列呢?上面已经说._dispatch_async(serialqueue, ^{ nslog(@"%@", [nsthread currentthread]); nslog

MySQL复习——项目基础使用(二)——事务、主从复制分库分表、分布式ID、雪花算法_mysql详解主从复制,事务,冷热备份,-程序员宅基地

文章浏览阅读579次。一、 Flask事务Flask默认开启了事务应用场景: 多次数据库操作的时候,需要两种或者两种以上的操作,一起成功或者一起失败,可以用到事务例如: 以下两张表中的数据 需要同时插入,则用到事务,保证成功或者失败environ = {'wsgi.version':(1,0), 'wsgi.input': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/', 'SERVER_NAME': 'itcast server', 'wsgi.url_scheme': 'h_mysql详解主从复制,事务,冷热备份,

随便推点

成功粉碎北信源监控程序vrvedp_m.exe ,vrvrf_c64.exe,svchost.exe,vrvrf_c.exe-程序员宅基地

文章浏览阅读1.7w次,点赞4次,收藏12次。公司安装了北信源的监控软件,用360粉碎了大部分北信源的程序文件,但是有几个程序进程始终开机启动,进程无法杀死,一度成了我的一块心病!后来不知咋的灵光一闪,彻底将其粉碎的毛都不剩,现将成功经验分享给大家;电脑基本环境:win10 专业版,360安全卫士粉碎操作步骤(因我电脑已经粉碎了北信源,所以图片以其他文件做示范):找到北信源残余卸载不到的程序文件所在的位置(就是这些东西vr..._vrvedp_m.exe

码云托管小项目-本地笔记文件管理系统_学习文档笔记托管码云-程序员宅基地

文章浏览阅读3.2k次。项目描述这是一个很简单的类博客系统,旨在方便管理本地笔记文档,整体采用spring+springmvc+angularjs+bootstrap+markdown实现,主要包括分类、查看、搜索等功能。项目背景由于记忆有限,学的东西难免忘记,因此就需要一定的笔记来帮助记忆。 之前基本都是在CSDN用博客,或者有道云笔记,或者直接本地文件系统的文档来充当笔记。 这些方式都有他们的优势..._学习文档笔记托管码云

.Net 连接 Mysql 8.0.29-30版本异常: Character set utf8mb3 is not supported by .Net Framework_character set 'utf8mb3' is not supported by .net f-程序员宅基地

文章浏览阅读8.9k次,点赞3次,收藏8次。Character set utf8mb3 is not supported by .Net Framework 解决方法_character set 'utf8mb3' is not supported by .net framework.

Python之(18)ctypes使用-程序员宅基地

文章浏览阅读1.1k次,点赞22次,收藏25次。ctypes是一个 Python 标准库,它提供了和 C 语言库交互的能力。利用ctypes,你可以在 Python 中加载动态链接库(DLLs 或在 Unix-like 系统中的 shared objects),并且可以调用这些库中的函数。这使得Python可以使用已经编译好的代码,这通常是为了性能或者重用现有的C代码。要使用ctypes然后,你可以加载一个库,调用其中的函数,传递参数,以及获取返回值。# 对于 Windows DLL# 对于 Unix-like 系统上的 shared object。_ctypes使用

几个查期刊的网站_standard journal abbreviation (iso4)-程序员宅基地

文章浏览阅读4.9k次。(1)Ecological Indicators | Standard Journal Abbreviation (ISO4) - Academic Acceleratorhttps://academic-accelerator.com/Journal-Abbreviation/Ecological-Indicators(2)Remote Sensing in Ecology and Conservation 期刊投稿经验分享,Remote Sensing in Ecology and Conserva_standard journal abbreviation (iso4)

vue 请求参数数组,vue 获取url参数、get参数返回数组的操作-程序员宅基地

文章浏览阅读1.8k次。这是vue过滤器 获取url参数,返回数组Vue.prototype.$url=function(){var url = decodeURIComponent(location.search); //获取url中"?"符后的字串var theRequest = new Object();if (url.indexOf("?") != -1) {var str = url.substr(1);str..._vue.prototype.$url