在hive中,tez引擎和map reduce引擎有什么区别?在哪个过程中使用哪个引擎更好(例如:连接、聚合?)
z9zf31ra1#
tez是一个基于dag的系统,它知道所有的操作é在开始执行之前优化这些操作。mapreduce模型简单地说,任何计算都可以通过两种计算步骤来执行:map步骤和reduce步骤。一对map和reduce对数据进行一级聚合。复杂的计算通常需要多个这样的步骤。tez通常是在maprreduce下运行的,所以它只是一个mapreduce,优化的步骤更少、更紧凑。
mzillmmw2#
tez是一种dag(有向无环图)结构。典型的map reduce作业包含以下步骤:从文件中读取数据-->一次磁盘访问运行Map程序写入Map输出-->第二次磁盘访问运行shuffle和sort-->读取Map输出,第三次磁盘访问写入无序排列和排序-->为还原程序写入排序数据-->第四次磁盘访问运行减速机,读取排序数据-->第五个磁盘输出写减速机输出-->第六次磁盘访问tez的工作原理与spark非常相似(tez是由hortonworks在spark之前创建的):执行计划,但不需要从磁盘读取数据。一旦准备好进行一些计算(类似于spark中的操作),就从磁盘获取数据并执行所有步骤并生成输出。只有一读一写。通过不多次访问磁盘,提高了效率。中间结果存储在内存中(不写入磁盘)
y53ybaqx3#
apache-tez与mapreduce插件兼容,但减少了磁盘访问量。tez总是比mapreduce好。然而,也有一些系统比hive+tez更好,比如sparksql。
3条答案
按热度按时间z9zf31ra1#
tez是一个基于dag的系统,它知道所有的操作é在开始执行之前优化这些操作。
mapreduce模型简单地说,任何计算都可以通过两种计算步骤来执行:map步骤和reduce步骤。一对map和reduce对数据进行一级聚合。复杂的计算通常需要多个这样的步骤。
tez通常是在maprreduce下运行的,所以它只是一个mapreduce,优化的步骤更少、更紧凑。
mzillmmw2#
tez是一种dag(有向无环图)结构。典型的map reduce作业包含以下步骤:
从文件中读取数据-->一次磁盘访问
运行Map程序
写入Map输出-->第二次磁盘访问
运行shuffle和sort-->读取Map输出,第三次磁盘访问
写入无序排列和排序-->为还原程序写入排序数据-->第四次磁盘访问
运行减速机,读取排序数据-->第五个磁盘输出
写减速机输出-->第六次磁盘访问
tez的工作原理与spark非常相似(tez是由hortonworks在spark之前创建的):
执行计划,但不需要从磁盘读取数据。
一旦准备好进行一些计算(类似于spark中的操作),就从磁盘获取数据并执行所有步骤并生成输出。
只有一读一写。
通过不多次访问磁盘,提高了效率。中间结果存储在内存中(不写入磁盘)
y53ybaqx3#
apache-tez与mapreduce插件兼容,但减少了磁盘访问量。tez总是比mapreduce好。
然而,也有一些系统比hive+tez更好,比如sparksql。