一、概述
- 目前我正在学习关于Hudi数据湖构建知识,在Hudi集成Hive查询这块遇到点问题。
- 在Hive中创建表,关联至Hudi表,需要将/opt/module/hudi-0.9.0/packaging/hudi-hadoop-mr-bundle/target目录下的hudi-hadoop-mr-bundle-0.9.0.jar包拷贝一份放到 /opt/module/hive-3.1.2/lib目录下,这样当我们执行hive之后,才能正常的读到Hudi的表数据。但是恰恰问题就出现了。单纯的将jar包拷贝到 /opt/module/hive-3.1.2/lib下还是报错。
二、实际操作
- 执行命令
[yili@hadoop102 target]$ cp hudi-hadoop-mr-bundle-0.9.0.jar /opt/module/hive-3.1.2/lib
- 当我们执行完上述操作后,重启hive metastore和hiveserver2连接
nohup $HIVE_HOME/bin/hive --service hiveserver2 2>&1 &
nohup $HIVE_HOME/bin/hive --service metastore 2>&1 &
- hive客户端执行以下命令进行测试验证
with tmp as (select product_id,count(1) as total from db_hudi.tbl_hudi_didi group by product_id)
select case product_id when 1 then '滴滴专车' when 2 then '滴滴企业专车' when 3 then '滴滴快车' when 4 then '滴滴企业快车' end as order_type,total from tmp;
报错如下:
- 解决办法
在/opt/module/hive-3.1.2/lib目录的同级目录下在创建一个auxlib目录,并将hudi-hadoop-mr-bundle-0.9.0.jar包放入此目录后,重启Hive即可。
成功执行后,截图如下: