Hive-Hbase整合

整合官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

    准备

1.把${hive_home}/lib/hive-hbase-handler-0.9.0.jar  cp到hbase/lib 下(注意:如果是集群的话每一个hive,Hbase中都要拷贝)

2.在配置文件${${hive_home}/conf/hive-site.xml} 最后一行中添加以下配置信息

 

<property>   
      <name>hive.querylog.location</name>   
      <value>/usr/local/hive/logs</value>   
 </property>   
  
<property>  
      <name>hive.aux.jars.path</name>   
      <value>file:///usr/local/hive/lib/hive-hbase-handler-0.9.0.jar,file:///usr/local/hive/lib/hbase-0.92.0.jar,file:///usr/local/hive/lib/zookeeper-3.4.3.jar</value>  
</property>


测试

在Hive中创建表:

CREATE TABLE hbase_table_1(key int, value string)

  STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

  WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")

TBLPROPERTIES ("hbase.table.name" = "xyz");

并插入数据:

1    name

2    yang

3    zhang

QQ截图20140509151121

进入HBase中查看

Hive-Hbase整合_第1张图片

关于hive-hbase-handler-0.9.0.jar中的一个BUG:

    创建分区表如下:

        CREATE TABLE hbase_table_2(key string, value string) partitioned by (step string)
         STORED BY    'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
          WITH SERDEPROPERTIES    ("hbase.columns.mapping" = ":key,cf1:val")
             TBLPROPERTIES ("hbase.table.name" = "aaa");

    同样插入数据

            1    name

            2    yang

            3    zhang

    使用        select * from hbase_table_2;无法查询出数据,在Hbase中查询是有的

    解决方法 select key,value from hbase_table_2;






        

你可能感兴趣的:(Hive-Hbase整合)