一、配置
1.将HBase相关jar包拷贝到hive的lib目录下
2.修改hive-site.xml配置文件
①将上述jar包添加到hive-site.xml配置的hive.aux.jars.path属性中。
②修改hive.zookeeper.quorum属性。
③添加hbase.zookeeper.quorum属性。
3.修改hive-env.sh配置文件
copy一份模板文件
修改
4.启动hive
123步骤执行完后,通过bin/hive命令启动hive,出现一下信息,说明配置成功。
二、使用
1.准备测试数据
①准备测试文件course.csv,第一列为课程名称,第二列为课程分数。
②数据加载到hdfs
在hdfs文件系统中创建一个专属的目录(/hive-hbase/course),并加载测试文件。
bin/hdfs dfs -put /home/hadoop/data/course.csv /hive-hbase/course/
③创建hive数据库
进入hive shell 客户端创建库course
④创建外部表
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';
⑤查看表数据
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中所创建的表
3.加载数据
通过insert overwrite方式将一个表的数据导入hbase
hive>insert overwrite table course.hbase_testcourse select cname,score from course.testcourse;
4.执行查询
加载完数据后,验证一下结果的总记录数。
hive>select count(*) from course.hbase_testcourse;
5.创建外部表
创建hbase表
①
②插入数据
③查看数据
scan 'hbase_test'
创建hive外部表course.hive_test
①
②执行hive命令查询hbase表中的数据。
访问成功。
以上。