首页 > 代码库 > hive与hbase整合
hive与hbase整合
配置环境.
hadoop 2.4
hbase 0.98.3
hive 0.13.1(源用的mysql)
配置。
分2种情况(1.hbase与hive在一台机器上,2.hbase与hive不在同一台机器上)
(1)hbase与hive在一台机器上比较简单,只需要在环境变量里把hbase,hive的home配置好即可。当然也可以按照不在一台进行配置。
#config hadoop export HADOOP_HOME=/home/hUser/hadoop-2.4.0 export PATH=$HADOOP_HOME/bin:$PATH #config hbase export HBASE_HOME=/home/hUser/hbase-0.98.3-hadoop2 export PATH=$PATH:$HBASE_HOME/bin export HBASE_MANAGES_ZK=true #config hive export HIVE_HOME=/home/hUser/apache-hive-0.13.1-bin/ export PATH=$PATH:$HIVE_HOME/bin
(2)hbase与hive不在同一台机器上。
首先需要将hbase下的以hbase开头的jar包,放到hive的lib下,同时修改
<property> <name>hive.aux.jars.path</name> <value> file:///home/hUser/apache-hive-0.13.1-bin/lib/hive-hbase-handler-0.13.0.jar, file:///home/hUser/apache-hive-0.13.1-bin/lib/protobuf-java-2.5.0.jar, file:///home/hUser/apache-hive-0.13.1-bin/lib/hbase-***.jar,.....等等hbase的jar包, file:///home/hUser/apache-hive-0.13.1-bin/lib/hbase-common-0.96.0-hadoop2.jar, file:///home/hUser/apache-hive-0.13.1-bin/lib/zookeeper-3.4.5.jar, file:///home/hUser/apache-hive-0.13.1-bin/lib/guava-11.0.2.jar</value> </property>
注意:这块是为了好看,但自己配置的时候一定不要有换行符和空格,还有自己把hbase的jar包补齐。太多了我就不贴出来了。
3. 操作
启动hive
如果在一台机器就正常启动 hive 就ok了
不在一台机器需要指定下hbase的zookeeper的位置,多个用逗号分割
hive -hiveconf hbase.master=127.0.0.1:60000
(1)建表
CREATE TABLE hbase_table_1(key string, value string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘ WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "xyz1");
(2)插入数据
a.在hbase中插入
put ‘xyz‘,‘test001‘,‘cf1:val‘,‘www.test.com‘
b.在hive中插入(注:数据类型一定要匹配,否则回报key can‘t be null这个错)
insert into hbase_table_1 select n.finishtime, n.url from nginx n;
本文出自 “屌丝程序员的逆袭” 博客,请务必保留此出处http://cdelliqi.blog.51cto.com/9028667/1538614