2

我试图了解 hive 和 hadoop 是如何交互的。从我读过的教程中,我似乎在运行 HIVE 查询之前运行了一个 map/reduce 作业来获取输入数据。这对我来说似乎适得其反,如果我已经运行了 map/reduce 作业并以易于解析的格式获取数据,为什么我不将数据放入传统数据库中。

谢谢你的帮助,内森

4

3 回答 3

5

Hive 对存储在 HDFS 上的文件进行操作。除了最简单的查询之外,hive 会生成并运行 mapreduce 作业。对于非常简单的查询 ( SELECT * FROM MyTable),它只会从磁盘流式传输文件。

输入数据不需要来自 MapReduce - 它可以是上传到 HDFS 的简单文本文件。见http://developer.yahoo.com/hadoop/tutorial/module2.html#commandref

于 2012-04-20T15:50:57.493 回答
1

Hive 通过提供海量并行处理数据库的功能填补了开源软件中非常重要的空白。在其他世界 - 它为我们提供了水平可扩展的分析 SQL 引擎。
具体到您的问题,当 Hive 比 RDMS 更好时,我可以看到一些主要场景。
a) 数据已经在 HDFS 中,我们还有一些其他用途(例如 MR 作业)
b) 有太多数据要加载到单服务器 RDMBS 中。
c) 我们只需要查询一次或两次数据。在这种情况下,Hive 的数据加载时间相对较慢,可以胜过 RDMBS。

于 2012-04-20T19:07:06.637 回答
0

是的。Hive 建立在具有分布式计算的 Hadoop 之上。Hive 访问 HDFS 以存储文件。每个表都作为文件存储在 HDFS 上。

于 2019-04-30T13:53:54.470 回答