hadoop - 关于不调用基础MapReduce作业的Hive命令

标签 hadoop mapreduce hive

我的理解是,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/

相关文章:

hadoop - 如果没有 hive-site.xml 文件,配置单元如何运行?

hadoop - EMR 配置 json

c++ - 从 HDFS 读取和打印文本文件

hadoop - 判断hadoop集群中slave节点是否被分配任务

hadoop - 将参数传递给MapReduce程序

hadoop - Hortonworks 数据节点安装 : Exception in secureMain

date - Hive - 来自时间戳列的月份和年份

java - 收集单个 hadoop 作业的计数器和指标

hadoop - 用 yarn 进行星火聚类

java - Hadoop..如何计算输入拆分的散列