HBASE+HADOOP --2

本文详细介绍了如何在Hadoop环境下通过Hive连接HBase进行数据统计,并且提供了安装、配置、启动Hive以及在HBase上建表、在Hive中建表等步骤的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,均可在另一边看到数据。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值