HBase与Hive集成使用

34 篇文章 0 订阅
14 篇文章 0 订阅

HBase版本 1.3.1

Hive版本 1.2.1

环境准备

$ exportHBASE_HOME=/home/admin/modules/hbase-1.3.1

$ exportHIVE_HOME=/home/admin/modules/apache-hive-1.2.2-bin

$ ln -s$HBASE_HOME/lib/hbase-common-1.3.1.jar $HIVE_HOME/lib/hbase-common-1.3.1.jar

$ ln -s$HBASE_HOME/lib/hbase-server-1.3.1.jar $HIVE_HOME/lib/hbase-server-1.3.1.jar

$ ln -s$HBASE_HOME/lib/hbase-client-1.3.1.jar $HIVE_HOME/lib/hbase-client-1.3.1.jar

$ ln -s$HBASE_HOME/lib/hbase-protocol-1.3.1.jar$HIVE_HOME/lib/hbase-protocol-1.3.1.jar

$ ln -s$HBASE_HOME/lib/hbase-it-1.3.1.jar $HIVE_HOME/lib/hbase-it-1.3.1.jar

$ ln -s$HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar$HIVE_HOME/lib/htrace-core-3.1.0-incubating.jar

$ ln -s$HBASE_HOME/lib/hbase-hadoop2-compat-1.3.1.jar$HIVE_HOME/lib/hbase-hadoop2-compat-1.3.1.jar

$ ln -s $HBASE_HOME/lib/hbase-hadoop-compat-1.3.1.jar$HIVE_HOME/lib/hbase-hadoop-compat-1.3.1.jar

同时在hive-site.xml中修改zookeeper的属性,如下:

<property>
    <name>hive.zookeeper.quorum</name>
    <value>linux01,linux02,linux03</value>
    <description>The list of ZooKeeperservers to talk to. This is only needed for read/writelocks.</description
</property>
<property>
    <name>hive.zookeeper.client.port</name>
    <value>2181</value>
    <description>The port of ZooKeeperservers to talk to. This is only needed for read/writelocks.</description

</property>

建立Hive表,关联HBase表,插入数据到Hive表的同时能够影响HBase表。

(1) 在Hive中创建表同时关联HBase(这里有可能会出现不兼容的情况,查看编译hive的方式)

CREATETABLE hive_hbase_emp_table(

empnoint,

enamestring,

jobstring,

mgr int,

hiredatestring,

saldouble,

commdouble,

deptnoint)

STOREDBY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITHSERDEPROPERTIES ("hbase.columns.mapping" =":key,info:ename,info:job,info:mgr,info:hiredate,info:sal,info:comm,info:deptno")

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

(2) 在Hive中创建临时中间表,用于load文件中的数据

CREATETABLE emp(

empnoint,

enamestring,

jobstring,

mgr int,

hiredatestring,

saldouble,

commdouble,

deptnoint)

row format delimited fields terminated by '\t';

(3) 向Hive中间表中load数据

hive> load data local inpath '/home/admin/softwares/data/emp.txt'into table emp;

(4) 通过insert命令将中间表中的数据导入到Hive关联HBase的那张表中

hive> insert into table hive_hbase_emp_table select* from emp;

(5) 查看Hive以及关联的HBase表中是否已经成功的同步插入了数据

hive> select * from hive_hbase_emp_table;

hbase> scan ‘hbase_emp_table’

在Hive中创建外部表

CREATEEXTERNAL TABLE relevance_hbase_emp(

empnoint,

enamestring,

jobstring,

mgr int,

hiredatestring,

saldouble,

commdouble,

deptnoint)

STOREDBY

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

WITHSERDEPROPERTIES ("hbase.columns.mapping" =

":key,info:ename,info:job,info:mgr,info:hiredate,info:sal,info:comm,info:deptno")

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

关联后就可以使用Hive函数进行一些分析操作了

hive (default)> select * from relevance_hbase_emp;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值