vim /opt/software/hudi-0.10.0/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>
<repository>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>maven-ossez</id>
<name>OSSEZ Repository</name>
<url>https://maven.ossez.com/repository/internal</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
mvn clean package -DskipTests -DskipITs -Dscala-2.12 -Dspark3
kafka-schema-registry-client-6.1.1.jar
pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar
common-config-6.1.1.jar
common-utils-6.1.1.jar
kafka-avro-serializer-6.1.1.jar
hudi编译失败,不能通过maven自动下载的jar包,包括: pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar, kafka-schema-registry-client-5.3.4.jar,kafka-avro-serializer-5.3.4.jar,common-utils-5.3.4.jar,common-config-5.3.4.jar,这些需要自己下载安装到maven的本地仓库的包。
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-config -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-config-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-utils -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-utils-5.3.4.jar
1)上传相关jar包至/root/hudi-jars。注意集群每个都需要配编号,分别为1、2、3。/opt/software :软件压缩包。/opt/module :解压后的软件。注意修改其他服务器的broker.id。上传解压至/opt/module。在slave2开启节点均衡计划。启动前格式化namenode。上传并解压hudi安装包。zookeeper目录下。
Hudi是什么?可以说Hudi是一个数据湖或是数据库,但它又不是数据湖或是数据库。笔者理解为Hudi是不带计算功能Hive。
众所周知,Hive是一个计算引擎,但是现在我们更多的是使用Spark基于Hive对HDFS中文件提供的Schema信息和元数据进行计算,而Hive作为计算引擎的功能逐渐被忽略,更多的是将Hive视作一个“数据库”(尽管它并不是),而Hudi则是完善了Hive的这部分功能。
使用Hudi对HDFS或是其他存储系统中的文件进行管理,使用Hudi创建相应的表,一样可以使用H
说起编译hudi,从第一遍过之后,再回过头来看,发现就是第一遍不熟悉,出现的一切问题可以总结为maven仓库没配置好。一开始我只是配置了阿里云仓库,但是后面不断报错,然后百度谷歌找原因,再调整配置,再编译,最后就成功了,所以整体来说编译不复杂,只要配置正确,那我把最后可以通过的配置贴出来,这也是我觉得可以帮助到大部分同学的地方。hudi迭代还是比较快的,因为同时也依赖了hadoop和spark,为了组合使用,我使用的是0.9.0版本,对应地址:[https://hudi.apache.org/release
pom文件位置:vim /opt/software/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml (在382行的位置,修改如下红色部分)位置:vim /opt/software/hudi-0.12.0/packaging/hudi-utilities-bundle/pom.xml(在405行的位置,修改如下(红色部分))修改了Hive版本为3.1.2,其携带的jetty是0.9.3,hudi本身用的0.9.4,存在依赖冲突。
在本地构建可以跑Flink-Hudi、Spark-Hudi等demo的环境,本地环境是arm64架构的M1芯片,所以比较特殊,如果采用Hudi官网的docker搭建,目前不支持,本人也在Hudi的github上提过此类需求,虽得到了响应,但还是在部署的时候会出问题,然后基于其实Hudi就是一种对存储格式的管理模式,此格式可以是HDFS,也可以是各大云厂商的文件存储系统,例如阿里云的OSS,华为云的OBS等,都是可以支持的,所以本地只需要部署一套Hadoop架构就可以跑起来相关的案...