0


hive的引擎mapreduce、tez和spark对比

hive引擎简介

Hive 的执行引擎包括以下几种:

  1. Hive on MapReduce Hive 最早使用的执行引擎是基于 Hadoop MapReduce 的。它将 Hive 查询转化为一系列的 MapReduce 任务进行并行执行。MapReduce 引擎适用于处理大规模数据集,具有良好的容错性和扩展性,但由于磁盘读写和中间结果的持久化,可能在性能和响应时间方面受到影响。
  2. Hive on Tez Hive 可以使用 Apache Tez 作为执行引擎来加速查询处理。Tez 是一个用于高效执行大规模数据处理任务的执行框架,它源于MapReduce 架构,核心思想是将Map和Reduce两个操作进一步拆分。它可以将查询的逻辑执行计划转化为一系列的任务图,并使用优化的调度和执行策略进行并行执行。Hive on Tez 可以提供更低的查询延迟和更高的吞吐量,提升查询性能和用户体验。
  3. Hive on Spark Hive 还可以使用 Apache Spark 作为执行引擎来处理查询。通过在 Spark 上执行 Hive 查询,可以充分利用 Spark 的内存计算和并行处理能力,加快查询速度和提高系统的整体性能。Hive on Spark 提供更高的性能和更强大的功能,并与 Spark 的其他组件集成,支持更多的数据处理场景。

引擎优缺点

1、Hive on MapReduce

优点:

  • 大任务分解成小任务,适合处理抄大规模数据集。
  • 具有较高的稳定性和可靠性
  • 具有良好的容错性和扩展性。

缺点:

  • 中间结果需要持久化到磁盘,占用资源,耗费时间。
  • 性能较低,响应时间长。

2、Hive on Tez:

优点:

  • Tez绕过了MapReduce很多不必要的中间的数据存储和读取的过程,减小任务执行时间。
  • 提供container复用机制与Tez Session,减少资源消耗。
  • 具有更低的查询延迟,使用 Tez 效率比 MapReduce 有近3倍的速度提升。
  • 与MapReduce相比,输出日志清爽很多。

缺点:

  • 基于内存,如果数据量特别大,容易OOM。
  • 与Hadoop集成有一定的复杂性,需要额外的配置和调优。

3、Hive on Spark:
优点:

  • 充分利用Spark的内存计算和并行处理能力,减少磁盘I/O,查询执行速度通常比Tez更快。
  • 能处理复杂的查询和功能,兼容性较好。
  • 广泛社区支持,可以多种集群管理器上运行,具有更好的通用性。

缺点:

  • 对比Tez在执行期间资源管理分配来看,Spark对资源的利用率较低。
  • 与Spark的其他组件集成可能需要额外的学习和配置。

如何切换引擎

1)、配置mapreduce计算引擎

set hive.execution.engine=mr;

2)、配置tez计算引擎

set hive.execution.engine=tez;

3)、配置spark计算引擎

set hive.execution.engine=spark;

4、hive on spark配置集群模式

set hive.execution.engine=spark;
set spark.master=yarn-cluster;
set mapreduce.job.queuename=xxx;

选择适合的执行引擎需要根据具体的需求和场景来评估和决策。根据数据规模、查询类型和性能要求等因素进行权衡,选择合适的执行引擎可以提升查询效率和系统性能。

参考文章:
hhttps://zhuanlan.zhihu.com/p/426086549
https://www.jianshu.com/p/357fceaa4042

标签: hive mapreduce spark

本文转载自: https://blog.csdn.net/weixin_61938673/article/details/135101665
版权归原作者 幻影889 所有, 如有侵权,请联系我们删除。

“hive的引擎mapreduce、tez和spark对比”的评论:

还没有评论