即使在TEZ中运行配置单元查询时,仍然有人可以解释,但是分配了Mappers和Reducers吗?
在Tez引擎中运行仍在使用MR引擎吗?
答案 0 :(得分:0)
当然可以使用相同的Map-Reduce原语,但是Tez还将所有任务表示为单个DAG。这样可以对其进行优化,并消除不必要的步骤。
例如以下查询:
SELECT DeptName, COUNT(*) as c FROM EmployeeTable
GROUP BY DeptName ORDER BY c;
在MR上,它将执行两个MR作业,将中间结果保存到HDFS中。
Map-Reduce强制每个Map任务的输出进行本地排序。 当不需要排序时,这是不必要的开销。通过消除强制性行为,Tez可以提高任务行为的灵活性。
查询越复杂,从Tez中获得的好处就越大。 TEZ将查询表示为单个作业的DAG(有向无环图),并消除了不必要的步骤,例如对持久存储的读/写,每个Map的输出排序,还使容器可以重用。 Tez始终是最佳选择,对于简单查询,它的工作不会比MR差,而对于复杂查询,则要好得多。