【配置】Hive整合HBase

一、配置

1.将HBase相关jar包拷贝到hive的lib目录下

【配置】Hive整合HBase_第1张图片

2.修改hive-site.xml配置文件

①将上述jar包添加到hive-site.xml配置的hive.aux.jars.path属性中。

【配置】Hive整合HBase_第2张图片

②修改hive.zookeeper.quorum属性。

【配置】Hive整合HBase_第3张图片

③添加hbase.zookeeper.quorum属性。

这里写图片描述

3.修改hive-env.sh配置文件

copy一份模板文件

【配置】Hive整合HBase_第4张图片

修改

这里写图片描述

4.启动hive
123步骤执行完后,通过bin/hive命令启动hive,出现一下信息,说明配置成功。

【配置】Hive整合HBase_第5张图片

二、使用

1.准备测试数据

①准备测试文件course.csv,第一列为课程名称,第二列为课程分数。

【配置】Hive整合HBase_第6张图片

②数据加载到hdfs

在hdfs文件系统中创建一个专属的目录(/hive-hbase/course),并加载测试文件。

bin/hdfs dfs -put  /home/hadoop/data/course.csv /hive-hbase/course/

③创建hive数据库

进入hive shell 客户端创建库course

【配置】Hive整合HBase_第7张图片

④创建外部表

create external table if not exists course.testcourse(cname string,score int)
row format delimited fields terminated by '\t' 
stored as textfile 
location '/hive-hbase/course';

【配置】Hive整合HBase_第8张图片

⑤查看表数据

select * from course.testcourse;

查询结果和hdfs文件系统中的查询结果一致。

2.创建hive内部表

create table course.hbase_testcourse(cnamae string,score int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping"=":key,cf;score") //指定hbase表与hive表字段映射关系。
TBLPROPERTIES("hbase.table.name"="hbase_testcourse","hbase.mapred.oputput.outputtable"="hbase_testcourse");

【配置】Hive整合HBase_第9张图片

①查看hive中所创建的表

【配置】Hive整合HBase_第10张图片

②查看hbase中所创建的表

【配置】Hive整合HBase_第11张图片
这里写图片描述

3.加载数据
通过insert overwrite方式将一个表的数据导入hbase

hive>insert overwrite table course.hbase_testcourse select cname,score from course.testcourse;

【配置】Hive整合HBase_第12张图片

4.执行查询

加载完数据后,验证一下结果的总记录数。

hive>select count(*) from course.hbase_testcourse;

【配置】Hive整合HBase_第13张图片

【配置】Hive整合HBase_第14张图片

5.创建外部表

创建hbase表


【配置】Hive整合HBase_第15张图片

②插入数据

【配置】Hive整合HBase_第16张图片

③查看数据

scan 'hbase_test'

【配置】Hive整合HBase_第17张图片

创建hive外部表course.hive_test


这里写图片描述

②执行hive命令查询hbase表中的数据。

【配置】Hive整合HBase_第18张图片

访问成功。
以上。

你可能感兴趣的:(hbase,hive)