hive整合hbase

实验环境准备 

Hive-2.3.3

Hbase-1.3.1

launcher start 

start-dfs.sh

start-yarn.sh

zkServer.sh start

3

./mr-jobhistory-daemon.sh start historyserver

(hadoop/sbin)

bin/start-hbase.sh

实验原理:

Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现

通信原理:

整合的意义:

(一)通过Hive把数据加载到HBase中,数据源可以是文件也可以是Hive中的表。

(二)通过整合,让HBase支持JOIN、GROUP等SQL查询语法。

(三)通过整合,不仅可完成HBase的数据实时查询,也可以使用Hive查询HBase中的数据完成复杂的数据分析。

(四)通过结合,可以设计一个高速写入,后面接入实时分析的海量数据分析系统。

实验步骤:

  1. 修改hive-site.xml文件以及hive-env.sh文件配置(仅当hbase为集群模式时)

hive-site.xml:

<property>

    <name>hive.zookeeper.quorum</name>

    <value>node01,node02,node03</value>

</property>

<property>

    <name>hbase.zookeeper.quorum</name>

    <value>node01,node02,node03</value>

</property>

<property>

    <name>hive.aux.jars.path</name>

    <value>file:///opt/software/hive/lib/hive-hbase-handler-2.3.3.jar,file:///opt/software/hive/lib/zoo

keeper-3.4.10.jar,file:///opt/software/hive/lib/hbase-client-1.3.1.jar,file:///opt/software/hive/lib/hbase-common-1.3.1-tests.jar,file:///opt/software/hive/lib/hbase-server-1.3.1.jar,file:///opt/software/hive/lib/hbase-common-1.3.1.jar,file:///opt/software/hive/lib/hbase-protocol-1.3.1.jar,file:///opt/software/hive/lib/htrace-core-3.1.0-incubating.jar

    </value>

</property>

hive-env.sh:

 export HBASE_HOME=/opt/software/hbase-1.3.1

2. 将hbase lib目录下的所有文件复制到hive lib目录中

注意:先删除hive/lib目录下hbase开头的jar包

/opt/software/hive/lib目录下:

rm -rf hbase-*

/opt/software/hbase/lib目录下:

cp /opt/software/hbase-1.3.1/lib/* /opt/software/hive-2.3.3/lib/

3. 在hive中创建映射表,创建完成后在hbase中查看是否同时在hbase中也创建成功(创建之前要先启动hbase

hive

create table hbase_score(id int,name string,score int) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = "cf:name,cf:score") tblproperties("hbase.table.name" = "hbase_score");

create table hive_hbase_test(id int,name string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping"=":key,cf1:name") tblproperties("hbase.table.name"="hive_hbase_test");

hbae shell

list

4. 导入数据测试:

Hive 导入数据,Hbase查看数据:

1vi hive_hbase.txt

 

2)在hive中创表,导入数据:

create table test(id int,name string) row format delimited fields terminated by ',';

load data local inpath "/usr/datadir/hive_hbase.txt" into table test;

select * from test;

3)将hive的test表中的数据加载到hive_hbase_test表

insert overwrite table hive_hbase_test select * from test;

通过Hbase put添加数据,Hive查看添加数据

1)在hbase shell中对表hive_hbase_test添加数据

put 'hive_hbase_test','4','cf1:name','mipeng'

2)在hive中查看数据是否添加进来:

select * from hive_hbase_test;

注意事项:

整合完成之后,如果在hive当中创建的为内部表,那么在hive中删除该表时,hbase上对应的表也会删除;如果在hive当中创建的为外部表,那么在hive中删除该表时,不会影响hbase。

补充:

hive中创建外部映射表步骤:

  1. 在hbase中创建对应名称、对应列簇的表:

create 'hbase_score1','cf'

  1. 在hive中创建外部表:

create external table hbase_score1(id int,name string,score int) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = "cf:name,cf:score") tblproperties("hbase.table.name" = "hbase_score1");

  1. 在hive中向外部表内导入数据:(参考导入数据测试)

在hbase中添加数据:(参考导入数据测试)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值