Apache Hudi部署和入门

部署准备

需要用到maven3.6.1+

部署

1.github下载源码包

git clone https://github.com/apache/hudi.git && cd hudi

2.执行
mvn clean package -DskipTests -DskipITs
目前hudi使用的是hadoop2.7.3版本,虚拟机是3.1.0所以
执行
mvn clean package -DskipTests -DskipITs -Dhadoop.version=3.1.0

可能遇到的问题

可能会显示maven国内镜像如阿里云等没有一些jar包导致编译失败,需自己手动下载导入到本地maven仓库

1.这几个jar包在编译过程中显示没有的:
common-config-3.0.0.jar,kafka-avro-serializer-3.0.0.jar,common-utils-3.0.0.jar,kafka-schema-registry-client-3.0.0.jar

下载好后执行以下命令
mvn install:install-file -Dfile=/root/common-config-3.0.0.jar -DgroupId=io.confluent -DartifactId=common-config -Dversion=3.0.0 -Dpackaging=jar

mvn install:install-file -Dfile=/root/kafka-avro-serializer-3.0.0.jar -DgroupId=io.confluent -DartifactId=kafka-avro-serializer -Dversion=3.0.0 -Dpackaging=jar


mvn install:install-file -Dfile=/root/common-utils-3.0.0.jar -DgroupId=io.confluent -DartifactId=common-utils -Dversion=3.0.0 -Dpackaging=jar

mvn install:install-file -Dfile=/root/kafka-schema-registry-client-3.0.0.jar -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=3.0.0 -Dpackaging=jar

Hive集成Hudi:

**将hudi jar复制到hive lib下
cp ./packaging/hudi-hadoop-mr-bundle/target/hudi-hadoop-mr-bundle-..*-SNAPSHOT.jar $HIVE_HOME/lib

建外部表关联hudi表位置,由于hudi重写了inputformat 和outpurtformat
所以建表时要

STORED AS INPUTFORMAT
‘org.apache.hudi.hadoop.HoodieParquetInputFormat’
OUTPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat’

Presto集成Hudi

**presto 集成hudi 是基于hive catalog 同样是访问hive 外表进行查询,如果要集成需要把hudi 包copy 到presto hive-hadoop2插件下面

cp ./packaging/hudi-hadoop-mr-bundle/target/hudi-hadoop-mr-bundle-..*-SNAPSHOT.jar $PRESTO_HOME/plugin/hive-hadoop2/

spark-shell的使用

bin/spark-shell --jars ./packaging/hudi-spark-bundle/target/hudi-spark-bundle_2.11-*.*.*-SNAPSHOT.jar --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'

版权声明:本文为weixin_44977470原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。