相关博客
错误:org.apache.hbase.thirdparty.com.google.common.cache.CacheLoader的解决方案
hbase与hive集成 第一步:创建HBase和Hive环境变量ln -s $HBASE_HOME/lib/hbase-common-2.1.3.jar $HIVE_HOME/lib/hbase-common-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-server-2.1.3.jar $HIVE_HOME/lib/hbase-server-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-client-2.1.3.jar $HIVE_HOME/lib/hbase-client-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-protocol-2.1.3.jar $HIVE_HOME/lib/hbase-protocol-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-it-2.1.3.jar $HIVE_HOME/lib/hbase-it-2.1.3.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-2.1.3.jar $HIVE_HOME/lib/hbase-hadoop2-compat-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-2.1.3.jar $HIVE_HOME/lib/hbase-hadoop-compat-2.1.3.jar
第三步:重新编译hive/lib目录下的hive-hbase-handler-3.1.1.jar文件并覆盖原来的
- 修改HiveHBaseTableSnapshotInputFormat.java类,将Base64.encodeBytes(proto.toByteArray())改为Bytes.toString(proto.toByteArray())
- 将HiveHBaseTableSnapshotInputFormat.class文件替换到hive-hbase-handler-3.1.1.jar中
我编译好的hive-hbase-handler-3.1.1.jar
第四步:在hive-site.xml中修改zookeeper的属性:
hive.zookeeper.quorum
hcmaster,hcslave1,hcslave2
示例一:建立Hive表的同时关联HBase表
创建Hive表的SQL语句
create table hive_hbase_dept (
deptno int,
dname string,
loc string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:dname,info:loc")
TBLPROPERTIES ("hbase.table.name" = "hbase_dept");
- Hive
- HBase
因为是关联表,所以不能load,只能insert。
- hive
- hbase
HBase中已经存在hbase_dept
create external table hive_hbase_dept2 (
deptno int,
dname string,
loc string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:dname,info:loc")
TBLPROPERTIES ("hbase.table.name" = "hbase_dept");