本文介绍如何通过Hive访问HBase增强版。
前提条件
注意事项
如果您想要通过公网访问,在执行文本操作前,需要将HBase社区版客户端更换为阿里云HBase客户端。具体操作,请参见升级HBase Java SDK。
如果应用部署在ECS实例,通过专有网络访问HBase增强版集群前,需要确保HBase增强版集群和ECS实例满足以下条件,以保证网络的连通性。
所在地域相同,并建议所在可用区相同(以减少网络延时)。
ECS实例与HBase增强版集群属于同一专有网络。
在Hive中配置连接参数
方式一:在
hive-site.xml
配置文件中添加访问配置。<configuration> <!-- 集群的Java API连接地址,在控制台页面的数据库连接界面获取 --> <property> <name>hbase.zookeeper.quorum</name> <value>ld-bp150tns0sjxs****-proxy-hbaseue.hbaseue.rds.aliyuncs.com:30020</value> </property> </configuration>
方式二:在Hive Client中用命令的方式配置。
// 集群的Java API连接地址,在控制台页面的数据库连接界面获得 set hbase.zookeeper.quorum=ld-bp150tns0sjxs****-proxy-hbaseue.hbaseue.rds.aliyuncs.com:30020
操作步骤
重要
目前暂不支持Hive直接读取HBase增强版的底层文件,但支持通过关联或创建外表的方式在HBase增强版中读写数据。
在Hive Client中设置需要访问的HBase增强版集群的连接地址。
hive // 集群的Java API连接地址 set hbase.zookeeper.quorum=ld-bp150tns0sjxs****-proxy-hbaseue.hbaseue.rds.aliyuncs.com:30020
在HBase增强版中创建表hive_hbase_table。
CREATE 'hive_hbase_table','cf1'
在Hive中创建外表。
CREATE EXTERNAL 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");
返回结果显示OK,表示外表创建成功。
插入数据并查看是否插入成功。
在Hive中往外表插入数据,并在HBase增强版中查看数据是否插入成功。
插入数据:
insert into hive_hbase_table values(212,'bab');
在HBase增强版中查看数据是否插入成功:
scan 'hive_hbase_table'
返回结果如下:
ROW COLUMN+CELL 212 column=cf1:val, timestamp=2023-03-13T15:35:10.270, value=bab
在HBase增强版中往表hive_hbase_table中插入数据,并在Hive中查看数据是否插入成功。
插入数据:
put 'hive_hbase_table','213','cf1:val','dadsadasda'
在Hive中查看数据是否插入成功:
SELECT * FROM hive_hbase_table;
返回结果如下:
212 bab 213 dadsadasda
文档内容是否对您有帮助?