数据湖之Hudi(5):Apache Hudi 的编译

目录

0. 相关文章链接

1. Hudi源码包下载

2. 基于CentOS7编译Hudi(默认Spark等组件版本)

3. 基于windows编译Hudi(默认Spark等组件版本)

4. 基于windows编译Hudi(选择Spark等组件版本)

5. 基于CentOS7编译Hudi(选择Spark等组件版本)

6. 基于windows编译Hudi报错解决方案

7. 各Hudi编译后Jar包下载地址


0. 相关文章链接

数据湖 文章汇总

1. Hudi源码包下载

        因为Hudi不像Hive、Hadoop等组件一样,解压安装即可使用;而是需要先下载源码,然后根据需要的Hudi版本以及各集成的组件(包括Spark等)版本进行编译;所以需要先下载Hudi的源码包,可以在github中下载,下载地址:GitHub - apache/hudi: Upserts, Deletes And Incremental Processing on Big Data.

2. 基于CentOS7编译Hudi(默认Spark等组件版本)

需要在centos7中安装mavne,maven下载安装教程:Maven的下载安装和使用_yang_shibiao的博客-CSDN博客

可以修改CentOS7为国内镜像,修改教程:CentOS7 原生 yum 源修改为阿里 yum 源_yang_shibiao的博客-CSDN博客

建议Maven中配置的地址:

    <mirror>
      <id>aliyunCentralMaven</id>
      <name>aliyun central maven</name>
      <url>https://maven.aliyun.com/repository/central/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
      <id>centralMaven</id>
      <name>central maven</name>
      <url>http://mvnrepository.com/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

上传对应的zip包,然后解压,解压后如下所示:

注:博主下载的是0.10.1版本,已对根目录进行重命名,并且因为博主已经进行编译,所以其中有packaging包

执行命令,进行编译,编译命令: mvn package -DskipTests

因为编译时会下载相关maven依赖包,所以可以根据上述maven下载安装博文中所示,配置国内镜像,提高下载速度,具体编译时间根据机器和网络来判断,一共会下载1.5G左右的jar包,博主经过多次编译,在maven仓库中无任何Jar包时一共编译了6小时,当所有Jar都有再次编译时,7分钟可以编译完成,编译完成后如下图所示:

3. 基于windows编译Hudi(默认Spark等组件版本)

需要在windows中安装maven,并配置好相应的环境变量,可以参考maven下载安装教程:Maven的下载安装和使用_yang_shibiao的博客-CSDN博客

建议Maven中配置的地址:
 

    <mirror>
      <id>aliyunCentralMaven</id>
      <name>aliyun central maven</name>
      <url>https://maven.aliyun.com/repository/central/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
      <id>centralMaven</id>
      <name>central maven</name>
      <url>http://mvnrepository.com/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

从github上下载对应的hudi包,然后解压该包,会生成如下图所示内容:

在上述目录下执行maven的编译命令: mvn package -DskipTests

前面30多个包能正常编译,会发现 hudi-integ-test包编译失败,如下图所示:

这是因为这是在windows环境中执行的,hudi-integ-test模块会执行linux环境下的 bash  脚本,从而执行失败,需要把这个模块注释掉,再次执行发现packaging/hudi-integ-test-bundle模块会引用hudi-integ-test这个模块的内容,于是两个test模块都注释掉,如下图所示:

再次执行编译脚本,运行成功,如下图所示: mvn package -DskipTests

4. 基于windows编译Hudi(选择Spark等组件版本)

直接执行如下编译命令即可,可以选择对应的Spark版本和Scala版本等: mvn clean package -DskipTests -Dspark3 -Dscala-2.12  

5. 基于CentOS7编译Hudi(选择Spark等组件版本)

直接执行如下编译命令即可,可以选择对应的Spark版本和Scala版本等: mvn clean package -DskipTests -Dspark3 -Dscala-2.12  

6. 基于windows编译Hudi报错解决方案

如上第3节 基于windows编译Hudi(默认Spark等组件版本) 所示,是因为hudi-integ-test模块会执行linux环境中的bash脚本,需要把hudi-integ-test模块注释,再次执行发现packaging/hudi-integ-test-bundle模块会引用hudi-integ-test这个模块的内容,于是两个test模块都注释掉,这样就可以在windows中进行编译。

7. 各Hudi编译后Jar包下载地址

待更新...


注:Hudi系列博文为通过对Hudi官网学习记录所写,其中有加入个人理解,如有不足,请各位读者谅解☺☺☺

注:其他相关文章链接由此进(包括Hudi在内的各数据湖相关博文) -> 数据湖 文章汇总


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电光闪烁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值