配置单元中的tez执行引擎与mapreduce执行引擎

pw9qyyiw  于 2021-06-28  发布在  Hive
关注(0)|答案(3)|浏览(585)

在hive中,tez引擎和map reduce引擎有什么区别?在哪个过程中使用哪个引擎更好(例如:连接、聚合?)

z9zf31ra

z9zf31ra1#

tez是一个基于dag的系统,它知道所有的操作é在开始执行之前优化这些操作。
mapreduce模型简单地说,任何计算都可以通过两种计算步骤来执行:map步骤和reduce步骤。一对map和reduce对数据进行一级聚合。复杂的计算通常需要多个这样的步骤。
tez通常是在maprreduce下运行的,所以它只是一个mapreduce,优化的步骤更少、更紧凑。

mzillmmw

mzillmmw2#

tez是一种dag(有向无环图)结构。典型的map reduce作业包含以下步骤:
从文件中读取数据-->一次磁盘访问
运行Map程序
写入Map输出-->第二次磁盘访问
运行shuffle和sort-->读取Map输出,第三次磁盘访问
写入无序排列和排序-->为还原程序写入排序数据-->第四次磁盘访问
运行减速机,读取排序数据-->第五个磁盘输出
写减速机输出-->第六次磁盘访问
tez的工作原理与spark非常相似(tez是由hortonworks在spark之前创建的):
执行计划,但不需要从磁盘读取数据。
一旦准备好进行一些计算(类似于spark中的操作),就从磁盘获取数据并执行所有步骤并生成输出。
只有一读一写。
通过不多次访问磁盘,提高了效率。中间结果存储在内存中(不写入磁盘)

y53ybaqx

y53ybaqx3#

apache-tez与mapreduce插件兼容,但减少了磁盘访问量。tez总是比mapreduce好。
然而,也有一些系统比hive+tez更好,比如sparksql。

相关问题