Hive和HBase整合

Hive和HBase整合

博客分类: hadoop
系统信息
CentOS release 5.3 (Final)
Linux version 2.6.18-128.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Jan 21 10:41:14 EST 2009

Hadoop等版本信息
hadoop-0.20.2-cdh3u1
hbase-0.90.3-cdh3u1
hive-0.7.1-cdh3u1

Hive安装见http://running.iteye.com/blog/892312

在$HIVE_HOME/conf目录中增加文件hive-site.xml,内容如下:

Xml代码 
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
    <property> 
        <name>hive.aux.jars.path</name> 
        <value>file:///data/hive/lib/hive-hbase-handler-0.7.1-cdh3u1.jar,file:///data/hive/lib/hbase-0.90.3-cdh3u1.j 
ar,file:///data/hive/lib/zookeeper-3.3.1-cdh3u1.jar</value> 
    </property> 
 
    <property> 
        <name>hbase.zookeeper.quorum</name> 
        <value>hadoop1,hadoop2,hadoop3</value> 
    </property> 
 
</configuration> 

参考http://www.javabloger.com/article/apache-hadoop-hive-hbase-integration.html 进行测试

运行一个在Hive中建表语句,并且将数据导入

建表
Sql代码 
CREATE TABLE pokes (foo INT, bar STRING); 

数据导入
Sql代码 
LOAD DATA LOCAL INPATH '/data/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes; 

在Hive与HBase关联的表中 插入一条数据
Sql代码 
INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=98; 

执行hbase shell进入hbase,执行命令查看刚才的hive数据是否与hbase同步
Sql代码 
scan 'xyz' 

在hbase插入数据
Sql代码 
put 'xyz','10001','cf1:val','test' 

hive中查询hbase插入的记录
Sql代码 
select * from hbase_table_1 WHERE key=10001; 

相互同步没有问题,整合结束

你可能感兴趣的:(hadoop,云计算)