Hive 中的 Tez 执行引擎与 Mapreduce 执行引擎

Bit*_*Das 7 hive mapreduce bigdata amazon-web-services tez

Hive 中的 Tez 引擎和 MapReduce 引擎有什么区别,在哪个过程中使用哪个引擎更好(例如:连接、聚合?)

小智 11

Tez 是一种 DAG(有向无环图)架构。一个典型的 MapReduce 作业有以下步骤:

  1. 从文件读取数据-->一次磁盘访问

  2. 运行映射器

  3. 写入映射输出 --> 第二个磁盘访问

  4. 运行 shuffle 和 sort --> 读取映射输出,第三次磁盘访问

  5. 写shuffle和排序-->为reducers写排序数据-->第四个磁盘访问

  6. 运行读取排序数据的减速器 --> 第五个磁盘输出

  7. 写入减速器输出 --> 第六次磁盘访问

Tez 的工作方式与 Spark 非常相似(Tez 是由 Hortonworks 在 Spark 之前创建的):

  1. 执行计划但不需要从磁盘读取数据。

  2. 一旦准备好进行一些计算(类似于 Spark 中的操作),从磁盘获取数据并执行所有步骤并生成输出。

只有一读一写。

由于无需多次访问磁盘,效率得到了提高。中间结果存储在内存中(不写入磁盘)