0

我注意到 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 运营世界中的作用是什么?Hive 可以作为 SQL -> MapReduce 客户端独立存在,还是这些硬性的全局要求?

4

1 回答 1

3

从 github 代码中,我们可以看到这是 cloudera 的一个冒烟测试模块,需要使用 JDBC 来“连接”Hive。但实际上我们当然可以在没有“服务器”或“HBase”的情况下使用 hive。

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

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

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

于 2013-08-28T01:16:37.427 回答