2023大数据应用开发 -hudi搭建编译
hudi搭建编译
下载正常解压设置环境变量
注意这里使用的版本:
hadoop:3.1.3
hudi:0.12.0
spark:3.1.1
scala 忘记了
hudi编译麻烦就是因为各种版本兼容的问题,如果跟我版本一样可以直接使用我编译好的jar包,就不用往下看了,不一样的话请一定要搞清楚你的hudi跟hadoop spark之间的版本是否兼容
云文档频道 - 编译好的jar包下载地址
-
编译之前请配置好maven镜像,否则编译很慢,甚至编译不了,maven镜像配置自行百度
-
修改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

:::
6.使用maven命令进行编译
mvn clean package -DskipTests -Dspark3.1 -Dscala-2.12 -Dhadoop.version=3.1.3
7.不出意外应该就能编译成功

浙公网安备 33010602011771号