2023大数据应用开发 -hudi搭建编译

hudi搭建编译

云文档频道 - hudi下载地址

下载正常解压设置环境变量

注意这里使用的版本
hadoop:3.1.3
hudi:0.12.0
spark:3.1.1
scala 忘记了

hudi编译麻烦就是因为各种版本兼容的问题,如果跟我版本一样可以直接使用我编译好的jar包,就不用往下看了,不一样的话请一定要搞清楚你的hudi跟hadoop spark之间的版本是否兼容
云文档频道 - 编译好的jar包下载地址

  1. 编译之前请配置好maven镜像,否则编译很慢,甚至编译不了,maven镜像配置自行百度

  2. 修改hudi的pom文件新增repository加速依赖下载

vim /opt/module/hudi/pom/xml

<repository>
        <id>nexus-aliyun</id>
        <name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
</repository>

3.修改依赖的组件版本,打开在hudi的pom文件的110行

<hadoop.version>3.1.3</hadoop.version>
<hive.version>3.1.2</hive.version>

4.还需要修改两个pom文件,实在有点多,这里直接有成品的pom文件,下载替换到相应目录下即可,就不一一写了。
云文档频道 - pom文件替换下载
将packaging/hudi-spark-bundle/pom.xml替换:hudi_spark_bundle_pom.xml
将packaging/hudi-utilities-bundle/pom.xml替换:hudi_utilities_bundle_pom.xml
注意重命名
具体为什么要替换这些文件以及里面修改了什么请参考这篇博客:
Hudi(2):Hudi的编译和安装_hudi安装部署详细版-CSDN博客
5.最后的最后先不要编译,因为还需要解决一个问题,Hudi默认依赖的hadoop2,要兼容hadoop3,除了修改版本,还需要修改如下路径的代码:
vim /opt/software/hudi-0.12.0/hudi-common/src/main/java/org/apache/hudi/common/table/log/block/HoodieParquetDataBlock.java
修改第110行,原先只有一个参数,添加第二个参数null:
::: center
image
:::
6.使用maven命令进行编译

mvn clean package -DskipTests -Dspark3.1  -Dscala-2.12 -Dhadoop.version=3.1.3 

7.不出意外应该就能编译成功

posted @ 2024-04-02 16:30  Dreams_log  阅读(99)  评论(0)    收藏  举报