HIVE搭建 & 访问HBASE中数据

hive-0.7.1

hbase-0.90.3         

hadoop-0.20.203.0   三个NODE


在有了HBASE+HADOOP之后,数据的统计成了问题,MAP REDUCE是我们想用的功能,借助HIVE来连接HBASE


一、准备
为了能使HIVE多用户操作,在NAMENODE上建立MYSQL,

1、建立MYSQL DATABASE

2、建立用户和密码
mysql> create database hive;
Query OK, 1 row affected (0.02 sec)


过程略,对于我们DBA来说非常容易。


二、安装 HIVE

下载最新版hive:http://hive.apache.org/

1.解压缩


2.配置


关键配置文件为:conf/hive-site.xml

由于conf里没有hive-site.xml文件,复制hive-default.xml改名即可

cp hive-default.xml hive-site.xml

修改内容:

<property>
  <name>
hive.zookeeper.quorum </name>
  <value>
dm2,dm3,dm4 </value>

<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/home/hadoop/hive/warehouse</value>

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8;databaseName=hive;create=true</value>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>


添加内容:

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>dm2,dm3,dm4</value>                 
--备注:我这里的3个 HBASE datanode ,使用HBASE自己维护的ZOOKEEPER

<property>

<name>hive.aux.jars.path</name>
  <value>file:///usr/hadoop/hive-0.7.1/lib/hive-hbase-handler-0.7.1.jar,file:///usr/hadoop/hive-0.7.1/lib/zookeeper-3.3.1.jar,file:///usr/hadoop/hive-0.7.1/lib/hbase-0.90.3.jar </value>      
--备注:这里的文件后面有描述
</property>

 

 

---------------------------
需要注意:
一个jar包mysql-connector-java-5.1.15-bin.jar拷贝到hive的lib目录下才行,否则执行语 句的时候会报错,类似下面这样
hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
NestedThrowables:
java.lang.reflect.InvocationTargetException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask


文件:
mysql-connector-java-5.1.15-bin.jar
网址:http://www.mysql.com/products/connector/
下载:
JDBC Driver for MySQL (Connector/J)
复制:
/usr/hadoop/hive-0.7.1/lib/

-------------------------

复制/usr/hadoop/hbase-0.90.3/hbase-0.90.3.jar到hive的lib下
然后删除
hbase-0.89.0-SNAPSHOT.jar
-------------------------

3、设置环境变量
sudo vi /etc/profile添加:

export HIVE_HOME=/usr/hadoop/hive-0.7.1
export PATH=/usr/local/mysql/bin:$HIVE_HOME/bin:$PATH



三、启动与使用HIVE


其实应该说是登录hive

1、进入
$HIVE_HOME

hadoop@dm1:/usr/hadoop/hive-0.7.1$ ./bin/hive
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201111251707_674291674.txt
hive>


2、用HIVE在HBASE上建表


下面建表会在HBASE中创建表


CREATE  TABLE hbase_tb(key int, value string)  
  STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
  WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") 
  TBLPROPERTIES ("hbase.table.name" = "hbase_tb");


3、HIVE中建表关联HBASE中已存在的表


先在HBASE建表 create 'test','data';


然后在HIVE建表,用扩展:

CREATE EXTERNAL TABLE hbase_test(key string, value string)  
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "data:1")  
TBLPROPERTIES("hbase.table.name" = "test");



上面的两张表在HBASE 中put,或者在HIVE中LOAD,均可在另一边看到数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值