大数据学习(6)-hive底层原理Mapreduce

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞


MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。MapReduce的工作流程分为两个阶段:Map阶段和Reduce阶段。

在Map阶段,MapTask并行度决定机制根据InputFormat数据切片机制对输入数据进行切片,将切片分配给不同的Map任务。每个Map任务对输入数据进行处理,生成一系列的键值对(<k,v>)。

在Reduce阶段,不同的Map任务输出的键值对通过Shuffle机制进行分区和排序,相同key的数据value放在一个集合中。然后,对每个key对应的value集合进行归约处理,即执行Reduce函数。Reduce函数将key和value集合作为输入,进行处理并输出新的键值对。

最后,Reduce阶段输出的键值对作为最终的结果保存在HDFS中。在整个过程中,MapReduce框架负责任务的调度、失败恢复和数据分片等工作,以保证分布式计算的高效性和可靠性。

在MapReduce框架中,不同节点上的运行过程如下:

  1. Map阶段:大数据经split划分成大小相等的数据块(数据块的大小一般等于HDFS一个块的大小)以及用户作业程序。系统中有一个负责调度的Master节点和许多的Map工作节点。用户作业程序提交给Master节点,Master节点寻找合适的Map节点,并将数据传给Map节点。Master节点启动Map节点执行程序,Map节点尽可能的读取本地或本机架上的数据块进行计算(数据本地化是Mapreduce的核心特征)。每个Map节点处理读取的数据块,并做一些数据整理,并且将中间结果放在本地而非HDFS中,同时通知Master节点Map工作完成,并告知中间结果的存储位置。
  2. Reduce阶段:Master也寻找合适的Reduce节点并将数据传给Reduce节点。Reduce节点将中间结果处理后将结果输出到一个文件中。

总的来说,MapReduce通过"分而治之"的思想,把对大规模数据集的处理,分发给主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。

相关推荐
向上的车轮2 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab
数据与人工智能律师3 小时前
虚拟主播肖像权保护,数字时代的法律博弈
大数据·网络·人工智能·算法·区块链
前端小崔3 小时前
从零开始学习three.js(18):一文详解three.js中的着色器Shader
前端·javascript·学习·3d·webgl·数据可视化·着色器
龙湾开发4 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
c++·笔记·学习·图形渲染·贴图
尘客.4 小时前
DataX从Mysql导数据到Hive分区表案例
数据库·hive·mysql
一只专注api接口开发的技术猿4 小时前
企业级电商数据对接:1688 商品详情 API 接口开发与优化实践
大数据·前端·爬虫
liang_20265 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
虾球xz5 小时前
游戏引擎学习第290天:完成分离渲染
c++·人工智能·学习·游戏引擎
虾球xz5 小时前
游戏引擎学习第285天:“Traversables 的事务性占用”
c++·学习·游戏引擎
虾球xz5 小时前
游戏引擎学习第280天:精简化的流式实体sim
数据库·c++·学习·游戏引擎