zoukankan      html  css  js  c++  java
  • flink编译支持CDH6.2.0(hadoop3.0.0)

    准备工作

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

    <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

  • 相关阅读:
    .NET题目(收集来自网络)
    c#反射
    c#泛型
    asp.net core 下载文件,上传excel文件
    remote: HTTP Basic: Access denied fatal: Authentication failed for'https'
    获取jwt(json web token)中存储的用户信息
    System.data.sqlclient.sqlexception:将截断字符串或二进制数据终止
    代码热更新
    左手坐标系 vs 右手坐标系
    GPU相关临时笔记
  • 原文地址:https://www.cnblogs.com/gaofeng-henu/p/12213505.html
Copyright © 2011-2022 走看看