(Hive与HBase集成)hive读取分析hbase表的数据

本文详细介绍了如何在HBase上已有数据的基础上,通过创建Hive外部表来实现数据的分析处理。从启动环境、新建HBase表、创建Hive外部表到解决配置错误,再到查询数据,提供了完整的步骤和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:在hbase上已经有数据了,我们需要将数据放到hive中进行分析处理
1、启动环境

a.启动hadoop集群

sbin/start-all.sh

b.启动zookeeper集群

zkServer.sh start

c.启动hbase

cd hbase
bin/start-hbase.sh

./hbase shell
list -- 查看表

d.启动hive

cd /opt/hive/bin
./hive
2、新建hbase表 classes:
create 'classes','user'


加入数据:

put 'classes','001','user:name','jack'
put 'classes','001','user:age','20'
put 'classes','002','user:name','liza'
put 'classes','001','user:age','18'

在这里插入图片描述
在这里插入图片描述

3、创建hive 外部表
create external table classes(id int,name string,age int)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties("hbase.columns.mapping"=":key,user:name,user:age")
tblproperties("hbase.table.name"="classes");

这里会报错:
在这里插入图片描述

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hbase/HBaseConfiguration

原因是调遣hbase包错误,配置文件不能加载(hive加载不到hbase包)
解决办法:将hbase目录下jar包拷贝到hadoop/lib下

export HBASE_HOME=/opt/hbase
export HIVE_HOME=/opt/hive
ln -s $HBASE_HOME/lib/hbase-server-1.2.6.jar $HIVE_HOME/lib/hbase-server-1.2.6.jar
ln -s $HBASE_HOME/lib/hbase-client-1.2.6.jar $HIVE_HOME/lib/hbase-client-1.2.6.jar
ln -s $HBASE_HOME/lib/hbase-protocol-1.2.6.jar $HIVE_HOME/lib/hbase-protocol-1.2.6.jar
ln -s $HBASE_HOME/lib/hbase-it-1.2.6.jar $HIVE_HOME/lib/hbase-it-1.2.6.jar
ln -s $HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar $HIVE_HOME/lib/htrace-core-3.1.0-incubating.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-1.2.6.jar $HIVE_HOME/lib/hbase-hadoop2-compat-1.2.6.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-1.2.6.jar $HIVE_HOME/lib/hbase-hadoop-compat-1.2.6.jar
ln -s $HBASE_HOME/lib/hbase-common-1.2.6.jar $HIVE_HOME/lib/hbase-common-1.2.6.jar

在这里插入图片描述
再次执行创建hive 外部表

在这里插入图片描述
set hive.cli.print.header=true; 显示抬头

再添加数据到hbase:

put 'classes','002','user:age','15'

在这里插入图片描述
hive查询数据:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值