我的理解是,Hive是一种类似于SQL的语言,可以通过调用底层的MapReduce程序来执行与数据库有关的任务。但是,我了解到某些Hive命令不会调用MapReduce作业。我很想知道这些命令是什么,以及为什么它们不需要调用MapReduce作业。
最佳答案
没错,Hive在后台使用MR作业来处理数据。
如果您在 hive 中触发类似SQL的查询,它将在后台将其转换为各种MR作业,并为您提供结果。
话虽如此,很少有查询不需要MR作业。
例如
SEKECT * FROM table LIMIT 10;
如果您在上面的查询中看到我们不需要任何数据处理。我们所需要的只是从表中读取几行。
因此,上述配置单元查询不会触发MR作业
但是如果我们稍微修改上面的查询。
SELECT COUNT(*)FROM table;
它将解雇MR工作。因为我们需要读取该查询的所有数据,所以MR作业将为我们快速完成(并行处理)
关于hadoop - 关于不调用基础MapReduce作业的Hive命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337451/