hive作爲hbase的客戶端,需要將hbase的相關jar包和一些配置拷貝到自己的配置中,具體如下:
hive-site.xml
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1,hadoop2,hadoop3</value> </property>
jar包可以拷貝或者用軟鏈引入
ln -s ${HBASE_HOME}/lib/hbase-hadoop-compat-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-hadoop-compat-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/high-scale-lib-1.1.1.jar ${HIVE_HOME}/lib/high-scale-lib-1.1.1.jar
ln -s ${HBASE_HOME}/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-hadoop2-compat-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/hbase-server-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-server-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/hbase-common-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-common-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/hbase-client-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-client-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/hbase-protocol-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-protocol-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/hbase-it-0.98.6-cdh5.3.6.jar ${HIVE_HOME}/lib/hbase-it-0.98.6-cdh5.3.6.jar
ln -s ${HBASE_HOME}/lib/htrace-core-2.04.jar ${HIVE_HOME}/lib/htrace-core-2.04.jar
創建一個數據存儲在hbase上的表的方法如下:
drop table if exists test.nginx_log;
create table if not exists test.nginx_log(
id int,
ip string,
area string,
day string,
time string,
method string,
url string,
result int,
size int,
refer string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:ip,info:area,info:day,info:time,info:method,info:url,info:result,info:size,info:refer")
TBLPROPERTIES ("hbase.table.name" = "test:nginx_log");