hive与hbase如何集成

这篇文章主要介绍了hive与hbase如何集成,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有天宁免费网站建设让你可以放心的选择与我们合作。

一 、简介

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类。

二、安装步骤:

1 .Hadoop和Hbase都已经成功安装了

Hadoop集群配置:http://www.linuxidc.com/Linux/2012-02/53632.htm
Hbase安装配置:http://www.linuxidc.com/Linux/2012-02/54225.htm

2 . 拷贝hbase-0.90.3-cdh4u1.jar和zookeeper-3.3.3-cdh4u1.jar到hive/lib下。

注意:如何hive/lib下已经存在这两个文件的其他版本(例如zookeeper-3.3.2.jar),建议删除后使用hbase下的相关版本。

2. 修改hive/conf下hive-site.xml文件,在底部添加如下内容:


<!-- 
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp</value>
<description>Scratch space for Hive jobs</description>
</property>

<property>
<name>hive.querylog.location</name>
<value>/usr/local/hive/logs</value>
</property>

<property>
<name>hive.aux.jars.path</name>
<value>file:///usr/local/hive/lib/hive-hbase-handler-0.7.1-cdh4u1.jar,file:///usr/local/hive/lib/hbase-0.90.3-cdh4u1.jar,fi
le:///usr/local/hive/lib/zookeeper-3.3.1.jar</value>
</property>
注意:如果hive-site.xml不存在则自行创建,或者把hive-default.xml.template文件改名后使用。

3. 拷贝hbase-0.90.3-cdh4u1.jar到所有hadoop节点(包括master)的hadoop/lib下。

4. 拷贝hbase/conf下的hbase-site.xml文件到所有hadoop节点(包括master)的hadoop/conf下。

注意,如果3,4两步跳过的话,运行hive时很可能出现如下错误:


view plaincopy 
org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connectto ZooKeeper but the connection closes immediately. 
This could be a sign that the server has too many connections (30 is thedefault). Consider inspecting your ZK server logs for that error and 
then make sure you are reusing HBaseConfiguration as often as you can. SeeHTable's javadoc for more information. at org.apache.hadoop. 
hbase.zookeeper.ZooKeeperWatcher. 

三、启动Hive

1.单节点启动

#bin/hive -hiveconf hbase.dwn01=master:490001


2 集群启动:

#bin/hive -hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03

如何hive-site.xml文件中没有配置hive.aux.jars.path,则可以按照如下方式启动。

bin/hive --auxpath /usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,/usr/local/hive/lib/hbase-0.90.5.jar, /usr/local/hive/lib/zookeeper-3.3.2.jar-hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03

四、测试:

1.创建hbase识别的数据库:


CREATE TABLE hbase_table_1(key int, value string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,cf1:val") 
TBLPROPERTIES ("hbase.table.name" = "xyz"); 
hbase.table.name 定义在hbase的table名称

hbase.columns.mapping 定义在hbase的列族 
2.使用sql导入数据

1) 新建hive的数据表:

CREATE TABLE hb_test (id INT, url STRING);
2)批量插入数据:

hive> LOAD DATA LOCAL INPATH '/tmp/id.txt' OVERWRITE INTO TABLE hb_test

3)使用sql导入hbase_table_1:

hive> INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM hb_test;

3. 查看数据

hive> select * from hbase_table_1; 

这时可以登录Hbase去查看数据了
#bin/hbase shell
hbase(main):001:0> describe 'xyz' 
hbase(main):002:0> scan 'xyz' 
hbase(main):003:0> put 'xyz','100','cf1:val','www.51.com'

这时在Hive中可以看到刚才在Hbase中插入的数据了。

4 hive访问已经存在的hbase

使用CREATE EXTERNAL TABLE:


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

感谢你能够认真阅读完这篇文章,希望小编分享的“hive与hbase如何集成”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

文章题目:hive与hbase如何集成
文章URL:https://www.cdcxhl.com/article36/iggdsg.html

成都网站建设公司_创新互联,为您提供网站设计公司外贸网站建设网站制作品牌网站设计电子商务企业网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设