1、环境配置
在$HBASE_HOME/lib目录下创建hive中jar包的软连接
ln -s $HBASE_HOME/lib/hbase-common-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-common-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-server-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/hbase-client-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-client-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/hbase-protocol-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-protocol-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/hbase-it-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-it-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/htrace-core-3.2.0-incubating.jar $HIVE_HOME/lib/htrace-core-3.2.0-incubating.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-hadoop2-compat-1.2.0-cdh5.14.2.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-1.2.0-cdh5.14.2.jar $HIVE_HOME/lib/hbase-hadoop-compat-1.2.0-cdh5.14.2.jar
同时在hive-site.xml中修改zookeeper的属性,如下
<property>
<name>hive.zookeeper.quorum</name>
<value>hadoop101</value> <!-- 集群环境用 , 添加多个 -->
</property>
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
2、在hive中建表,
情况一:这个表需要和hbase中的数据进行映射; 只能创建external non-native table
create external table hbase_t3(
id int,
age int,
gender string
name string
...
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,列族名:列1名,列族名:列2名,列族名:列3名")
TBLPROPERTIES ("hbase.table.name" = "hbase中的表名");
情况二:数据还尚未插入到hbase,可以在hive中建表,建表后,在hive中执行数据的导入
将数据导入到hbase,再分析。 表必须是managed non-native table!
create table hbase_userinfos(
userid int,
username string
...
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,列族名:列名1")
TBLPROPERTIES ("hbase.table.name" = "hbase中的表名")