cdh安装flink_hadoop为什么要编译源码

cdh安装flink_hadoop为什么要编译源码准备工作 因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库 编译flink shaded 因为flink依赖flink shaded工程,基本的依赖项都是在这个工程里面定义的,所以要先

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>  
 

代码100分

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

  1. 下载flink-shaded工程flink-shaded
  2. 在写文章时,最新的release版本是8.0,里面用的hadoop及zookeeper对应版本如下

    代码100分<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工程中依赖的外部变量名称

    代码100分<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

效果图cdh安装flink_hadoop为什么要编译源码

  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. 注释掉不需要编译的工程,因为这个编译太耗时间,可以把测试相关的包去掉
    cdh安装flink_hadoop为什么要编译源码

  8. 执行编译

    mvn clean install -DskipTests -Pvendor-repos -Drat.skip=true -Pinclude-hadoop
  9. 编译结果
    cdh安装flink_hadoop为什么要编译源码
    cdh安装flink_hadoop为什么要编译源码

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10194.html

(0)
上一篇 2023-01-23 18:00
下一篇 2023-01-23

相关推荐

  • 解析分页思想+分页实战「终于解决」

    解析分页思想+分页实战「终于解决」一、排除Top分页法(自命名,非规范) 思想:所谓“排除Top分页”,主要依靠“排除”和Top这个两大核心步骤。首先查询当前页码之前的数据,然后将该数据从总数据中排除掉,在从剩下的数据中获取前N条记录

    2023-03-22
    104
  • Jprofile解析dump文件使用详解「终于解决」

    Jprofile解析dump文件使用详解「终于解决」1 Jprofile简介 "官网" 下载对应的系统版本即可 性能查看工具JProfiler,可用于查看java执行效率,查看线程状态,查看内存占用与内存对象,还可以分析dump日志

    2023-02-01
    114
  • Python字典:构建网站页面所需的完美数据结构

    Python字典:构建网站页面所需的完美数据结构在Web开发中,数据结构的选择非常关键。Python中提供了一种非常有用的数据结构——字典。字典提供了一种映射关系,将键映射到值上。在构建网站页面时,使用字典可以方便地存储和管理页面所需的各种数据。这篇文章将详细介绍Python字典在网站开发中应用的方方面面。

    2024-01-26
    64
  • mysql设计索引的原则_MySQL创建索引

    mysql设计索引的原则_MySQL创建索引索引的优点 1.加快数据的检索速度,这是创建索引的最主要的原因; 2.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性; 3.加速表和表之间的连接; 4.在使用分组和排序子句进行数据检索时,可

    2022-12-24
    105
  • django的数据库ORM进阶操作[亲测有效]

    django的数据库ORM进阶操作[亲测有效] 1、数据库查询的三种方式 正向查询: (1)获取全部数据all v1=models.UserInfo.objects.all().first() #取出Querryset类型数据,里面是对象…

    2023-03-28
    104
  • Python实现高效的索引查找功能

    Python实现高效的索引查找功能在对数据进行处理时,快速的索引查找功能是非常重要的。Python提供了多种数据结构和算法来实现高效的索引查找,包括列表、元组、字典、集合、二分查找、哈希表等,下面我们将逐一介绍。

    2024-04-10
    23
  • 使用Python创建List

    使用Python创建List在Python编程中,List是一种常用的数据类型。List是一种有序的集合,也就是说,List中的每个元素都有对应的下标,可以根据下标来访问和修改List中的元素。List可以包含不同类型的元素,例如整型、浮点型、字符串、甚至是另外一个List。

    2024-05-02
    65
  • Python脚本自动化处理海量文件

    Python脚本自动化处理海量文件在大数据时代,数据量不断增加,人们面对的不仅是数据的获取,还有海量数据处理的难题。这里,我们就需要一些高效的工具来实现快速的批量数据处理。

    2024-02-25
    64

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注