Hadoop Hive与Hbase整合

2019-03-28 14:00|来源: 网络

一 、简介

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.4.jar和zookeeper-3.3.2.jar到hive/lib下。

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

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

[html]
  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文件改名后使用。

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

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

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

[html]
  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_hbase-handler.jar 工具类进行整合整合的原因如下:优点:1.Hive方便地提供了Hive QL的接口来简化MapReduce的使用,而HBase提供了低延迟的数据库访问。如果两者结合,可以利用MapReduce的优势针对HBase存储的大量内容进行离线的计算和分析。2.操作方便,hive提供了大量系统功能缺点:性能的损失,hive有这样的功能, 他支持通过类似sql语句的语法来操作hbase中的数据, 但是速度慢。详细可以查看hive为什么与hbase整合
  • riak 华师大的吧- - 下面来简单介绍各个组件的作用: HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。 HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组 ...
  • 1.jpg 理论上是的,这些需要做一些特殊的处理。他们的安装过程都是差不多的。如果不熟悉,则需要按照官网的配置,这样不容易出问题。他们的之间的对应关系,可以参考hadoop、hbase、hive版本对应关系
  • 这个要根据自己处理数据的方式来选择。 1、Hive是支持SQL语句的,执行会调用mapreduce,所以延迟比较高; 2、HBase是面向列的分布式数据库,使用集群环境的内存做处理,效率会比hive要高,但是不支持sql语句。 Hadoop开发和运行处理大规模数据,需要用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的 hql查询,hive也即做数据仓库。
  • 很难找到关于Hive的许多内容,但是我发现Hive网站上的这个代码片段大大地偏向了HBase(大胆的添加): Hive基于Hadoop,这是一个批量处理系统。 因此,该系统不能也不能承诺对查询的低延迟 。 这里的范例严格是提交作业,并且在作业完成而不是实时查询时被通知。 因此,它不应与像Oracle这样的系统进行比较,其中对数据量很少的数据进行分析,但分析反复进行得更多,迭代次数少于几分钟。 对于Hive查询,甚至最小的工作的响应时间可以是5-10分钟,而对于较大的工作,这甚至可能会在数小时内运行。 由于H ...
  • MapReduce只是一个计算框架 。 HBase与此无关。 也就是说,您可以通过编写MapReduce作业来有效地将数据提取到/从HBase中获取。 或者,您可以使用其他HBase API(如Java)编写顺序程序来放置或获取数据。 但是我们使用Hadoop,HBase等来处理大量的数据,所以没有什么意义。 当您的数据太大时,使用正常的顺序程序将非常低效。 回到你问题的第一部分,Hadoop基本上是两件事:一个分布式文件系统(HDFS) +一个计算或处理框架(MapReduce) 。 像所有其他FS一样, ...
  • 我很难理解你的问题,所以我的答案非常通用。 您应该首先阅读一些HBase书籍: http://hbase.apache.org/book.html http://www.amazon.es/HBase-Definitive-Guide-Lars-George/dp/1449396100 你已经在Lars的回购中获得了几乎所有需要的JAVA示例: https://github.com/larsgeorge/hbase-book 如果您想使用HIVE,您应该首先阅读: https://cwiki.apache. ...
  • 只需插入您的hive表(hbase_trades),因为您已经集成了两者,所以数据将从hbase(交易)表中查询。 希望这可以帮助。 Just insert to your hive table(hbase_trades) ,since you have integrated both, the data will be queriable from hbase (trades) table. Hope this helps.
  • HBase中的数据仅由rowkey“索引”。 如果您在Hive中查询除rowkey前缀之外的任何内容,则通常会执行全表扫描。 可以使用HBase过滤器进行一些优化,例如,当使用FamilyFilter时,您可以跳过整个区域,但我怀疑Hive正在这样做。 如何提高性能取决于数据的形成方式以及需要对其执行的分析。 在执行频繁的临时分析时,可以通过将HBase中的数据导出到HDFS上的Parquet文件以及针对Hive(或Drill或Spark,Imapala等)的分析来运行您的分析,从而提供更好的服务。 Dat ...
  • 当我能够使用Hive执行所有作业时,那么为什么需要HBASE来存储数据。 这不是开销吗? Hive和Hbase哪些功能Hbase HBase是No Sql数据库,它将数据存储在键值对中。 Hive与Hbase整合。 Hbase HIve集成 优点: - Hive查询HBase 。 思考联接和一种简单的方法来对Hbase数据进行聚合和简单操作。 Hbase为您提供可扩展的存储基础架构,使数据保持在线。 StumbleUpon使用Hbase作为他们的实时网站。 Hive不是实时查询引擎,因此其数据存储不能用于类 ...