大数据之Hive整合HBase
Posted Mr.zhou_Zxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据之Hive整合HBase相关的知识,希望对你有一定的参考价值。
Hive整合HBase
1 可能会出现的异常(全分布式)
1. java.lang.InCompatibleClassChanceErr:Found Jline.xxxxxx
- 解决:$HIVE_HOME/lib/jline-2.12.jar拷贝到$HADOOP_HOME/share/hadoop/yarn/lib
2 建立hive关联hbase的表
2.1 建表语句
hive (default)> create database hive2hbase;
hive (default)> use hive2hbase;
create table if not exists hive2hbase(
uid int,
uname string,
age int,
sex string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:uname,info:age,info:sex")
TBLPROPERTIES ("hbase.table.name" = "hive2hbase1");
2.2 报错
hive和hbase整合的jar包不匹配。
在这个hive中的以下jar包中,缺少依赖。
-rw-rw-r-- 1 root root 115935 Jun 19 2015 hive-hbase-handler-1.2.1.jar
解决方式:
要解压这个包,然后重新源码打包。
将我打包之后的jar包覆盖到hive服务器的lib目录下即可
然后重新在hive中执行2.1中的建表语句,之后就可以在hbase中查看到此表
2.3 测试
##1. 在hive中导入数据,不能直接用load导入数据
create table if not exists t_user(
uid int,
uname string,
age int,
sex string
)
row format delimited
fields terminated by ',';
load data local inpath '/data/hive2hbase
/user.txt' into table hive2hbase.t_user;
insert into hive2hbase.hive2hbase
select * from hive2hbase.t_user;
##2. 在hbase导入数据
hbase(main):003:0> put 'hive2hbase1', '5', 'info:uname', 'luohao'
0 row(s) in 0.0420 seconds
hbase(main):004:0> put 'hive2hbase1', '5', 'info:age', '18'
0 row(s) in 0.0060 seconds
hbase(main):005:0> put 'hive2hbase1', '5', 'info:sex', 'bt'
0 row(s) in 0.0080 seconds
hive (hive2hbase)> select * from hive2hbase;
OK
1 lixi 34 man
2 wuliji 38 woman
3 xiangweihao 39 superman
4 wangyunfeng 40 superwoman
5 luohao 18 bt
3 建立HBase关联Hive的表
##1. 在hbase中建表
hbase(main):008:0> create 't1', 'f1'
0 row(s) in 2.2450 seconds
=> Hbase::Table - t1
hbase(main):009:0> put 't1', '1', 'f1:name', 'ergouzi'
0 row(s) in 0.0090 seconds
hbase(main):010:0> put 't1', '1', 'f1:age', '11'
0 row(s) in 0.0040 seconds
hbase(main):011:0> put 't1', '2', 'f1:name', 'tiedan'
0 row(s) in 0.0020 seconds
hbase(main):012:0> put 't1', '2', 'f1:age', '22'
0 row(s) in 0.0020 seconds
##2. 在hive中建表
create external table if not exists t1(
uid int,
uname string,
age int
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,f1:name,f1:age")
TBLPROPERTIES ("hbase.table.name" = "t1");
hive (hive2hbase)> select * from t1;
OK
1 ergouzi 11
2 tiedan 22
资源获取:
https://download.csdn.net/download/m0_51197424/18884938
以上是关于大数据之Hive整合HBase的主要内容,如果未能解决你的问题,请参考以下文章
大数据学习系列之九---- Hive整合Spark和HBase以及相关测试
Hadoop基础之《—整合HBase+Phoenix+Hive》