我注意到 HIVE 有很多依赖项,包括服务器 url 以及 HBASE,来自扫描 bigtop 集成测试。
无论如何,我想知道——最初似乎 Hive 本质上是一种将 SQL 声明转换为 MapReduce 作业的方法。
hbase 和“hive 服务器”在 Hive 运营世界中的作用是什么?Hive 可以作为 SQL -> MapReduce 客户端独立存在,还是这些硬性的全局要求?
我注意到 HIVE 有很多依赖项,包括服务器 url 以及 HBASE,来自扫描 bigtop 集成测试。
无论如何,我想知道——最初似乎 Hive 本质上是一种将 SQL 声明转换为 MapReduce 作业的方法。
hbase 和“hive 服务器”在 Hive 运营世界中的作用是什么?Hive 可以作为 SQL -> MapReduce 客户端独立存在,还是这些硬性的全局要求?
从 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 有点复杂。