大数据学习(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通过"分而治之"的思想,把对大规模数据集的处理,分发给主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。

相关推荐
青槿吖3 分钟前
第一篇:Elasticsearch 入门踩坑记:从 “URL 拼写错误” 到跑通第一个搜索服务
大数据·elasticsearch·搜索引擎·spring cloud·微服务·架构·全文检索
互联科技报16 分钟前
商城小程序选择哪家平台比较好?预算有限也能选对!
大数据·小程序
奶人五毛拉人一块36 分钟前
C++ AVL树的学习
学习·二叉树·avl树·旋转
咸鱼翻身小阿橙38 分钟前
Qt Quick QML 登录界面代码学习报告
开发语言·qt·学习
Haibakeji40 分钟前
长沙定制开发本地生活APP打造城市便民消费场景
大数据·人工智能·生活
小夏子_riotous44 分钟前
Kubernetes学习路径——3. Kubernetes 1.25 高可用集群部署实战:从 Docker 到 Calico 全链路详解
linux·运维·学习·docker·容器·kubernetes·centos
Elastic 中国社区官方博客1 小时前
一个索引,所有媒体:介绍 jina-embeddings-v5-omni
大数据·人工智能·elasticsearch·搜索引擎·ai·媒体·jina
名不经传的养虾人1 小时前
从0到1:企业级AI项目迭代日记 Vol.19|两个环节 vs 十几个环节:Hermes厉害在哪里?
大数据·人工智能·ai编程·企业ai·多agent协作
今天也是元气满满的一天呢1 小时前
20260512-SQL学习大览
数据库·sql·学习
万邦科技-Alan1 小时前
API淘宝关键词搜索:运用场所、使用方式及获客逻辑
大数据·api·开发平台