`

Hadoop Hive与Hbase整合

 
阅读更多

 

Hadoop Hive与Hbase整合 

一 、简介

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类, 大致意思如图所示:

 

 

二、安装步骤:

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

Hadoop集群配置:http://blog.csdn.net/hguisu/article/details/723739

hbase安装配置:http://blog.csdn.net/hguisu/article/details/7244413

2 . 拷贝hbase-0.90.4.jar和zookeeper-3.3.2.jar到hive/lib下。

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

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

  1. <!--    
  2. <property>    
  3.   <name>hive.exec.scratchdir</name>     
  4.   <value>/usr/local/hive/tmp</value>     
  5.   
  6. </property>     
  7. -->    
  8.     
  9. <property>     
  10.   <name>hive.querylog.location</name>     
  11.   <value>/usr/local/hive/logs</value>     
  12. </property>     
  13.     
  14. <property>    
  15.   <name>hive.aux.jars.path</name>     
  16.   <value>file:///usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,file:///usr/local/hive/lib/hbase-0.90.4.jar,file:///usr/local/hive/lib/zookeeper-3.3.2.jar</value>    
  17.   
  18. </property>    

 

注意:如果hive-site.xml不存在则自行创建,或者把hive-default.xml.template文件改名后使用。

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

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

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

 

  1. [html] view plaincopy  
  2. org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately.     
  3. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and     
  4. then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information. at org.apache.hadoop.    
  5. hbase.zookeeper.ZooKeeperWatcher.   

三、启动Hive

1.单节点启动

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

2 集群启动:

#bin/hive -hiveconf hbase.zookeeper.quorum=node1,node2,node3

如何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=node1,node2,node3

四、测试:

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

 

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

hbase.table.name 定义在hbase的table名称

hbase.columns.mapping 定义在hbase的列族 

2.使用sql导入数据

1) 新建hive的数据表:

CREATE TABLE pokes (foo INT, bar STRING);
2)批量插入数据:

hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE

3)使用sql导入hbase_table_1:

hive> INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=86;

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.360buy.com'


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

4 hive访问已经存在的hbase

使用CREATE EXTERNAL TABLE:

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

   <value>file:///usr/local/hive-0.8.0-bin/lib/hive_contrib.jar,file:///usr/local/hive-0.8.0-bin/lib/hive-hbase-handler-0.8.0.jar,file:///usr/local/hive-0.8.0-bin/lib/hbase-0.90.4.jar,file:///usr/local/hive-0.8.0-bin/lib/zookeeper-3.4.2.jar
</value>


<value>file:///usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,file:///usr/local/hive/lib/hbase-0.90.4.jar,file:///usr/local/hive/lib/zookeeper-3.3.2.jar</value> 


-hiveconf hbase.zookeeper.quorum=master,slave1,slave2

HADOOP_HOME=/usr/local/hadoop-0.20.203.0


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


 INSERT OVERWRITE TABLE hbase_table_2 SELECT * FROM pokes WHERE foo=86; 


LOAD DATA LOCAL INPATH '/usr/local/hive-0.8.0-bin/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;



分享到:
评论

相关推荐

    HadoopHive与Hbase整合中文最新版本

    但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库 本文的目的是要讲述如何让Hbase和Hive能互相访问,让Hadoop/Hbase/Hive协同...

    hive和hbase整合

    【Hive与HBase整合详解】 Hive和HBase是两个大数据处理的重要组件。Hive提供了基于SQL的查询语言(HQL)来处理大规模的数据,适合于离线批处理;而HBase则是一个NoSQL数据库,它基于Google的Bigtable设计,提供高...

    hive与hbase整合经验谈

    2. **配置HBase与Hive**:在Hive的配置文件(如`hive-site.xml`)中添加HBase的相关配置,包括Zookeeper地址、HBase的配置路径等。 3. **安装HBase的Hive连接器**:例如,安装`Hive-HBase-Connector`,这是一个允许...

    hadoop,hbase,hive版本整合兼容性最全,最详细说明【适用于任何版本】

    由于ZooKeeper是独立的分布式协调服务,并不直接依赖于Hadoop或Hive,因此HBase与ZooKeeper的兼容性主要取决于ZooKeeper的版本是否满足HBase运行的要求。用户需要查看HBase官方的部署指南,以确定推荐的ZooKeeper...

    Hadoop,Hive,Hbase等框架详解

    该文档保护了目前比较流行的大数据平台的原理过程梳理。Hadoop,Hive,Hbase,Spark,MapReduce,Storm

    hadoop,hive,hbase学习资料

    【标题】:“hadoop,hive,hbase学习资料”是一份综合性的学习资源,涵盖了大数据处理领域中的三个核心组件——Hadoop、Hive和Hbase。这些工具在大数据处理和分析中发挥着至关重要的作用。 【描述】:描述指出这份...

    Hadoop Hive HBase Spark Storm概念解释

    ### Hadoop Hive HBase Spark Storm概念详解 #### Hadoop **Hadoop** 是一个由Apache基金会开发的开源分布式系统基础架构。它通过提供一个高效、可靠且可扩展的平台来解决大数据存储与处理的需求。Hadoop的核心组件...

    hadoop2.2+hbase0.96+hive0.12安装整合详细高可靠文档及经验总结

    1. 在HBase与Hadoop整合时,需要注意哪些权限问题? 2. 如何避免临时目录导致的问题? 3. 版本一致性的重要性是什么? **详细解答:** **1. 权限注意事项:** - 确保HBase和Hadoop使用相同的用户身份运行,避免...

    大数据工具篇之Hive与HBase整合完整教程

    本文将详细介绍如何在 Hadoop 环境下实现 Hive 与 HBase 的整合,重点介绍如何通过 Hive 批量导入数据到 HBase。 #### 二、版本说明 为了确保教程的可操作性和准确性,本文使用的软件版本如下: - **Hadoop**: ...

    hive与hbase整合经验谈.pdf

    整合Hive与HBase可以实现利用Hadoop生态系统中不同组件的优势,实现数据处理的高性能和高效率。了解整合后的结构、原理和使用方法对于构建高效的大数据处理系统至关重要。通过实践中的经验分享,可以使整合过程更加...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...

    zookeeper+hadoop+hbase+hive(集成hbase)安装部署教程(超详细).docx

    jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...

    hadoop hive hbase安装过程

    ### Hadoop、Hive、HBase 的安装配置详解 #### 一、Hadoop 安装配置 ##### 1. 创建用户与安装 JDK 在安装 Hadoop 前,首先需要创建一个专用的用户账户用于运行 Hadoop 相关服务,并确保 Java 环境已经正确安装。 ...

    hive-hbase-handler-1.2.1.jar

    被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....

    毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+论文PDF(高分毕设)

    毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+论文PDF(高分毕设)毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+论文PDF(高分毕设)毕业设计基于hadoop+hive+hbase+...

    小牛学堂-大数据24期-04-Hadoop Hive Hbase Flume Sqoop-12天适合初学者

    小牛学堂-大数据24期-04-Hadoop Hive Hbase Flume Sqoop-12天适合初学者.txt

    hadoop,hbase,hive版本整合兼容性最全,最详细说明【适用于任何版本】 -

    不同版本的Hadoop可能会对HDFS的API或MapReduce的执行模型进行优化,因此,HBase和Hive需要与相应的Hadoop版本保持兼容。例如,Hadoop 2.x引入了YARN资源管理系统,这可能需要HBase和Hive的更新版本来适应。 对于...

    毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+文档说明(高分毕设)

    毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+文档说明(高分毕设)毕业设计基于hadoop+hive+hbase+echarts的招聘信息大数据分析平台源码+文档说明(高分毕设)毕业设计基于hadoop+hive+...

Global site tag (gtag.js) - Google Analytics