1

即使在 TEZ 中运行 hive 查询,任何人都可以解释一下,但分配了 Mappers 和 Reducers 吗?

在 Tez 引擎中运行仍然使用 MR 引擎吗?

4

1 回答 1

1

当然,它使用相同的 Map-Reduce 原语,但除此之外,Tez 将所有任务表示为单个 DAG。这允许对其进行优化并消除不必要的步骤。

例如这个查询:

SELECT DeptName, COUNT(*) as c FROM EmployeeTable
GROUP BY DeptName ORDER BY c;

在 MR 上,它将执行两个 MR 作业,将中间结果保存到 HDFS。

在此处输入图像描述 Map-Reduce 要求对每个 Map 任务的输出进行本地排序。当不需要排序时,这是不必要的开销。Tez 通过消除 map-reduce 中的强制性步骤来增加任务行为的灵活性。

在此处输入图像描述

查询越复杂,Tez 带来的好处就越大。 TEZ 将查询表示为单个作业的 DAG(有向无环图),并消除了不必要的步骤,例如对持久存储的读/写、对每个 Map 的输出进行排序,还可以重用容器。Tez 永远是最好的选择,对于简单的查询,它不会比 MR 差,对于复杂的查询要好得多

于 2018-07-25T17:41:19.127 回答