云HBase支持使用Hive读写数据,本文介绍如何配置Hive读写HBase。

前提条件

  • 将Hive 所在的Hadoop集群所有的节点的IP加入到云HBase白名单。
  • 获取云HBase的zookeeper访问地址,可在云HBase控制台查看。

修改配置

  1. 进入hive配置目录/etc/ecm/hive-conf/
  2. 修改hbase-site.xml,将hbase.zookeeper.quorum修改为云HBase的zookeeper访问连接。
    <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>
    说明 hive配置目录/etc/ecm/hive-conf/下为空,请自行创建hbase-site.xml配置文件。

在Hive中读写HBase表

如果HBase表不存在,可在Hive中直接创建云HBase关联表。

  1. 进入hive cli命令行。
  2. 执行如下语句,创建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配置目录/etc/ecm/hive-conf/下为空,请自行创建hbase-site.xml配置文件。
  3. 执行如下命令,在Hive中向HBase插入数据。
    insert into hive_hbase_table values(212,'bab');
    插入数据
  4. 查看云HBase表是否创建成功与写入数据。
    • 表已创建成功。查看表
    • 数据已写入HBase。查看是否写入数据
  5. 在HBase中写入数据,并在Hive中查看。
    11在Hive中查看:查看数据
  6. 在Hive中删除创建的表。
    Hive删除表在HBase中查看报错不存在。在HBase中查看

如果HBase表已存在,可在Hive中HBase外表进行关联,外部表在删除时不影响HBase已创建表。

  1. 在云HBase中创建HBase表,并执行put命令测试数据。
    put命令
  2. Hive中创建HBase外部关联表,并查看数据。创建HBase外部关联表
  3. 删除Hive表。
    删除Hive表HBase已存在的表不受影响查看HBase已存在的表
说明 如果使用ECS自建mr集群的 Hive时,操作步骤跟EMR操作类似,需要注意的是自建Hive的hbase-site.xml部分配置项可能与云HBase不一致,简单来说网络和端口开放后,只保留hbase.zookeeper.quorum即可与云Hbase进行关联。

相关资源

Hive更多操作HBase步骤,可参考官方文档