云数据库HBase支持通过Hive读写数据,本文介绍如何配置Hive并读写云数据库HBase的数据。
前提条件
- 已将Hive所在的Hadoop集群所有的节点的IP加入到云数据库HBase实例的白名单中,具体操作请参见设置白名单。
- 已获取云数据库HBase的zookeeper访问地址。
操作步骤
- 进入Hive配置目录,例如:
/etc/ecm/hive-conf/
。
- 创建
hbase-site.xml
配置文件。
- 在
hbase-site.xml
配置文件下编写以下语句。<property>
<name>hbase.zookeeper.quorum</name>
<value>hb-xxx-001.hbase.rds.aliyuncs.com,hb-xxx-002.hbase.rds.aliyuncs.com,hb-xxx-003.hbase.rds.aliyuncs.com</value>
</property>
说明 value为云数据库HBase的zookeeper访问地址。如果您使用的是ECS自建的Hive时,不需要配置value可以直接和云数据库HBase连接。
- 在Hive中读写云数据库HBase表。
- 如果云数据库HBase表不存在,可在Hive中直接创建云数据库HBase的关联表。
- 使用以下命令进入Hive cli命令行。
hive
- 执行如下语句,创建云数据库HBase表。
CREATE TABLE hive_hbase_table(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "hive_hbase_table", "hbase.mapred.output.outputtable" = "hive_hbase_table");
- 执行如下语句,通过Hive插入云数据库HBase表的数据。
insert into hive_hbase_table values(212,'bab');
- 执行如下命令,查看云数据库HBase表是否创建成功。
list
- 执行如下命令,查看云数据库HBase表中是否成功插入数据。
scan 'hive_hbase_table'
- 执行如下语句,在云数据库HBase中写入数据。
put 'hive_hbase_table','132','cf1:val','acb'
- 执行如下语句,在Hive中查看云数据库HBase表格的数据。
select * from hive_hbase_table;
- 执行如下语句,在Hive中删除创建的表。
drop table hive_hbase_table;
说明 删除云数据库HBase表格后在HBase中查看表格,返回表格不存在。
- 如果云数据库HBase表已存在,可在Hive中云数据库HBase外表进行关联,外部表在删除时不影响云数据库HBase已创建表。
- 在云数据库HBase中创建HBase表,并执行put命令测试数据。
create 'hbase_table','f'
put 'hbase_table','1122','f:col1','hello'
put 'hbase_table','1122','f:col2','hbase'
- 在Hive中创建云数据库HBase外部关联表,并查看数据。
CREATE external table hbase_table(key int, col1 string, col2 string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "f:col1,f:col2")
TBLPROPERTIES ("hbase.table.name" = "hbase_table", "hbase.mapred.output.outputtable" = "hbase_table");
select * from hbase_table;
- 删除云数据库HBase外部关联表。
drop table hbase_table;
说明 删除云数据库HBase外部关联表后云数据库HBase已存在的表不受影响。
相关资源
通过Hive对云数据库HBase进行更多操作,可参考官方文档。