MapReduce和hive的原理

  • Post author:
  • Post category:其他



MapReduce是一种用于大规模数据处理的计算模型。其原理基于分布式计算,将大数据集分成小的数据块进行并行处理,并最终将结果汇总。MapReduce模型包含两个主要阶段:Map阶段和Reduce阶段。


Map阶段

:在Map阶段,输入数据被分割成多个数据块,并通过Map函数进行处理。Map函数将输入数据转换成键值对的形式,并将中间结果输出。


Reduce阶段

:在Reduce阶段,Map阶段的输出结果被按照键进行排序,并且将同一个键的值聚合在一起。每个Reduce函数负责处理一组键值对,并生成最终的输出结果。

通过这种分而治之的方式,MapReduce模型可以高效地处理大规模数据集,并且具有良好的可伸缩性和容错能力。


而Hive是建立在Hadoop之上的数据仓库基础架构,使用类似SQL的查询语言(HiveQL)来处理大规模分布式数据。Hive执行查询时,将HiveQL转换为一系列MapReduce任务,并在Hadoop集群上执行这些任务。Hive提供了数据的元数据管理、数据的存储和查询等功能,并且可以将查询结果存储在Hadoop分布式文件系统中。

Hive的核心原理是将SQL查询转化为MapReduce任务执行,从而实现对数据的分析和处理。HiveQL查询经过解析与优化后,转换为一系列的MapReduce任务,并通过MapReduce模型在分布式环境中进行执行。这样,用户可以通过SQL-like语法对大规模数据进行查询和分析,而不需要了解底层的MapReduce细节。


hive 怎么解析一条SQL

将sgL转换为抽象语法树AST tree,然后遍历 ASTtree,查询 gueryBlock然后遍历 gueryBlock,翻译成执行操作树,然后逻辑层优化器进行操作树优化,减少 shuffle 数据量,然后遍历操作树,翻译成mgpReduce ,任务。然后物理层优化器进行,mapreduce 任务的转化,生成最终计划



版权声明:本文为HelloWowofei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。