干翻Hadoop系列文章【03】:MapReduce概念详解

news2025/2/25 22:23:46

引言

数据存储在分布式文件系统中HDFS里边,通过使用Hadoop资源管理系统YARN,Hadoop可以将MapReduce计算,转移到有存储部分的数据的各台机器上。

一:概念和原理

1:MapReduce作业

MapReduce作业被称为一个工作单元。
1:一个工作单元的逻辑组成元素:输入数据、MapReduce程序、配置信息。
2:Hadoop将工作单元划分成多个任务(Task)任务有两类(Map和Reduce)。
3:Task任务运行在HDFS集群上,通过YARN进行调度。
4:一个任务失败,将在集群节点上自动重新调度运行。

2:分片

1):分片概念

MapReduce输入数据是等长的小数据块称为分片。一个分片对应一个Map任务,对应任务运行用户定义的map函数,从而处理分片中的每条记录。

2):分片大小

事实A:块越小,从磁盘到内存中的内容越少,计算越快。从这个角度越小越好
事实B:HDFS分块,是越大越好。越大,总体寻址开销小,越小的话,内容中需要存150B字节的源数据,块越小导致内存不够用。
两者相悖,取折中的办法,一秒钟机械磁盘的传输速率100MB,所以这里取得块的大小是128MB
事实C:分片比块大,一个分片需要读多个块,大概率多个块不在在一台物理机,导致网络IO
事实D:分片比快小,多个分片运行一个快,引发单个块如何划分给多个Map任务的问题。
结论:最理想的状态就是一个分片对应一个HDFS的块的大小

在这里插入图片描述

3:Map任务

1:Map任务将会把任务作为Reduce任务的入参
2:Map任务产出结果存储在磁盘而非HDFS,杀鸡用不到宰牛刀,HDFS里边还得做数据副本,也就是数据备份。
3:Map任务结果丢失或者传输失败怎么办?其他节点在走一遍。

4:Reduce任务

Reduce任务没数据本地化的这一说。单个Reduce任务输入来自于所有Map任务的输出。Reduce任务首先进行数据合并,数据合并为一个整体之后进行Reduce任务处理。处理完毕之后Reduce任务结果需要基于网络带宽写入到HDFS里边。

在这里插入图片描述
该图 清晰的表示了Map任务和Reduce任务之间的关系是混洗(shuffle)

在这里插入图片描述

二:组合器函数combiner

组合器函数是一个优化项,减少Map与Reduce之间的网络传输的带宽。
本质上是对Map函数处理结果的组合和精简。让Map和Reduce之间传输的数据量变小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+微信小程序的壁纸小程序

基于SpringBoot微信小程序的壁纸小程序 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景…

Springboot高级(一)缓存

一、缓存结构 二、注解 三、体验缓存 1、开启缓存 EnableCaching SpringBootApplication EnableCaching public class SpringbootCacheApplication {2、标志注解 (1)Cacheable Cacheable(value "emp", condition "#id2", unless…

【李老师云计算】实验一:Hadoop伪分布式集群部署与Eclipse访问Hadoop进行单词计数统计

索引前言实验内容1. 安装虚拟机1.1 安装与激活1.2 ★解决使用虚拟机蓝屏(绿屏)2. 安装CentOS2.1 下载CentOS2.2 VMware新建虚拟机2.3 安装CentOS(包括GUI、主机名)2.4 ★解决已经创建虚拟机改主机名3. VMWare 网络配置3.0 使用VI编辑器和VMware3.0.1 使用VI编辑器3.0.2 使用VMw…

SQL Server 数据操控,视图和索引

文章目录前言1.在student表中插入一行新记录,学号为,姓名为胡明月,性别为男,年龄为,系部为CS2.在student表中插入一条新记录,学号为,姓名为李红,性别为女3.将胡明月的年龄修改为194.…

R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置

简介 书接adjustText实践——调整matplotlib散点图标签,避免重复 上文中,matplotlibadjustText对于我的实例来说并没有起到很好的效果。所以,博主决定在R中利用gglot2ggrepel绘制,期待效果。 操作过程 博主不常使用R&#xff…

尚融宝14-集成redis缓存

目录 一、简介 1、场景 2、RedisTemplate 二、引入Redis 1、项目中集成Redis 2、添加Redis连接配置 3、启动Redis服务 三、测试RedisTemplate 1、存值测试 2、Redis配置文件 3、取值测试 四、将数据字典存入redis 一、简介 1、场景 由于数据字典的变化不是很频繁,而…

Unity 热更新技术 | (四) Lua语言基本语法及关键知识介绍

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬…

python ——批量读取相同格式文件(多个文件夹/单个文件夹)---nc文件为例

在处理多个相同格式的文件时,python中的许多模块可以为我们提供很多遍历。 比如,我们想读取一个文件夹下多个相同格式的文件时 可以使用os模块, import os以下有几个常见用法: 1、os.path.abspath(path) #返回绝对路径 2、os.pat…

【周末闲谈】畅想AR,AR领域迎来新风口

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 周末闲谈 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? 文章目录周末闲谈前言AR?🤔🤔🤔AR的发展👣&…

Matplotlib数据可视化

Matplotlib是⼀个Python 2D,3D绘图库,它以多种硬拷⻉格式和跨平台的交互式环境⽣成出版物质量的图形。 MatplotlibMatplotlib中文网、Matplotlib官方中文文档。https://www.matplotlib.org.cn/ 1.模块导⼊ import matplotlib.pyplot as plt #使⽤py…

分布式事务详解

🏆今日学习目标: 🍀分布式事务详解 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光…

Web 攻防之业务安全:密码找回安全案例总结.

Web 攻防之业务安全:密码找回安全案例总结 业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所…

微软New Bing初体验:AI时代的搜索引擎(内含体验方法)

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

AI未来十年新范式,生成式人工智能的挑战与机遇

目录0 写在前面1 什么是生成式模型?2 生成式模型的挑战3 自主智能新架构4 持续学习与表征解耦4.1 学习范式4.2 学习架构5 生成式AI与元宇宙6 智慧文档:赋能数字化转型7 结语0 写在前面 2023年3月18日,由中国图象图形学学会(CSIG&…

【李老师云计算】HBase+Zookeeper部署及Maven访问

索引前言1. Zookeeper1.1 主机下载Zookeeper安装包1.2 主机解压Zookeeper1.3 ★解决解压后文件缺失1.4 主机配置Zookeeper文件1.4.1 配置zoo_sample.cfg文件1.4.2 配置/data/myid文件1.5 主机传输Zookeeper文件到从机1.6 从机修改Zookeeper文件1.6.1 修改zoo.cfg文件1.6.2 修改…

生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]

文章目录概念相关图示代码示例框架中的应用场景多个生成器(Concrete Builder):单个生成器概念 生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生…

【Linux学习】信号——信号保存 | 信号处理 | 不可重入函数,volatile,SIGCHLD信号

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 信号的产生以及详细讲解了,有兴趣的小伙伴可以去看看,传送门。接下来介绍…

快速尝鲜Oracle 23c免费开发者版,惊喜多多

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

hive数据仓库--Hive介绍

1 什么是HiveHive是基于Hadoop的⼀个数据仓库⼯具,⽤来进⾏数据提取、转化、加载,这是⼀种可以存储、查询和分析存储在Hadoop中的⼤规模数据的机制。Hive数据仓库⼯具能将结构化的数据⽂件映射为⼀张数据库表,并提供类SQL的查询功能&#xff…

spring(七):事务操作

spring(七):事务操作前言一、什么是事务二、事务四个特性(ACID)三、事务操作(搭建事务操作环境)四、事务操作(Spring 事务管理介绍)五、事务操作(注解声明式事…