为什么HIVE依赖于服务器URL和HBase?

时间:2013-08-28 00:16:19

标签: hadoop hbase hive

我注意到HIVE有很多依赖关系,包括服务器URL和HBASE,都是通过bigtop集成测试扫描的。

请参阅:https://github.com/cloudera/bigtop/blob/master/test/src/smokes/hive/src/test/groovy/com/cloudera/itest/hivesmoke/TestJdbcDriver.java

无论如何,我想知道 - 最初似乎Hive本质上是一种将SQL声明转换为MapReduce作业的方法。

hbase和“蜂巢服务器”在Hive运营世界中的作用是什么? Hive可以作为SQL独立存在 - > MapReduce客户端,还是这些严格的全局要求?

1 个答案:

答案 0 :(得分:3)

从github代码中,我们可以看到cloudera的冒烟测试模块需要使用JDBC来连接'蜂巢。但实际上我们肯定可以在没有“服务器”的情况下使用配置单元。或者' HBase'。

1)对于服务器URL,它是从远程Java API连接到thrift服务器的URL。这里的服务器就像是Hive世界的外观(你可以参考here或下面的图片)。服务器需要由hive --service hiveserver &启动。您可以跳过服务器并直接使用Hive CLI(嵌入模式),如上所述here

   +-----------+      +-------------+     +--------------+
   |           |      |             |     |              |
   |java client+----->|hive server  +----->metastore srv |
   |           |      |             |     |              |
   +-----------+      +-------------+     +------+-------+
                                                 |
                                                 v
                                           +--------------+
                                           |              |
                                           |    Database  |
                                           |              |
                                           +--------------+

2)对于HBase,如果你不打算使用HBase,你可以不关心它。 Hive是一个数据仓库工具,它可以处理位于HDFS,HBase等上的数据。访问HDFS非常简单,但使用"Hive-HBase-Integration"访问HBase有点复杂。