作为 Hive 执行引擎,Tez 总是比 MR 更好吗?

Dhi*_*raj 3 hive mapreduce hiveql apache-tez

对于较小的查询(期望以交互方式获得结果,以分钟为单位,而不是几小时),Tez 的性能是否更好,而对于批处理查询(耗时数小时),MR 作为执行引擎的性能是否更好?或者我们可以说无论查询类型如何,Tez 始终是最佳选择?

lef*_*oin 5

Tez 简化了小规模(低延迟)和大规模(高吞吐量)工作负载的处理。查询越复杂,TEZ 的好处就越大。对于由单个映射步骤组成的简单查询,它很可能根本没有区别,因为没有什么可以优化的。TEZ 将查询表示为单个作业的 DAG(有向无环图),并消除了诸如读/写持久存储、对每个 Map 的输出进行排序等不必要的步骤,还支持容器重用。Tez 始终是最佳选择,对于简单的查询,它的效果不会比 MR 差,而对于复杂的查询则要好得多。并考虑这一点:对于 MR 和 TEZ,您必须调整不同的配置参数集,有很多 TEZ 特定的和很多 MR 特定的。选择 TEZ,即使在没有任何优化的情况下,您也会简化您的生活。还,Hive-on-MR 在 Hive 2 版本中已被弃用