当前位置: 首页 > news >正文

MapReduce学习与理解

MapReduce为google分布式三驾马车之一。分别为《The Google File System》、《MapReduce: Simplified Data Processing on Large Clusters》、《Bigtable: A Distributed Storage System for Structured Data》。三遍论文奠定了分布式存储和计算的基础。本篇文章来说说mapreduce.

一、MapReduce介绍

  mapreduce将复杂的、在大规模集群的并行运算抽象到两个函数:Map和Reduce。核心思想是“分而治之”。由传输<key,value>类型的键值对到Map,map则对这些数据根据map函数做相应的处理,输出为<key,List<value>>的键值对,再到reduce中对value做最后的统计。这样说有点抽象。我在另一篇文章中看见一个很形象的例子

        我们的目的是做辣椒酱,但是有很多种类比如:洋葱辣椒酱、番茄辣椒酱、青椒辣椒酱等,在输入到map的过程就是将大量的原粮(包含洋葱、番茄、青椒等的混合)放入map中,而map会根据这些品种,分类、并且将其分割完成。那么此时的输出就是<洋葱,List<洋葱瓣>>、<番茄、List<番茄块>>等,此时再作为reduce的输入,reduce则负责最终的搅拌过程,最终输出为各种辣椒酱。这个例子就很形象。

1.Map和Reduce函数表

函数输入输出说明
Map        

<k1,v1>:

<1,hello world>

<2,hello Jack>

List(<k2,v2>):

<hello,1>

<world,1>

<hello,1>

<Jack,1>

1.将输入的数据进一步解析成<key,value>对,输入Map函数中进行处理

2.经过map函数输出为一批键值对。此时为中间结果

Reduece

<k2,List<v2>>

<hello,{1,1}>

<world,1>

<Jack,1>

<k3,v3>

<hello,2>

<world,1>

<Jack,1>

reduce得到map输出的中间结果,合并计算到最后的结果

在这个表中是以单词划分为例,可能会疑惑为什么map的输出为LIst的键值对,而reduce的输入却是<k2,List>,这就涉及到MapReduece的管理系统,别急继续往下看。

二、MapReduce体系结构

1.client

        用户编写的MapReduce程序通过Client提交到JobTracker端,用户可以通过Client提供的接口查看作业运行状态

2.JobTracker(也就是Master)

        JobTracker负责资源监控和作业调度JobTrack监控所有的TaskTracker与Job的健康情况,通过心跳机制来检测,一旦发生问题则重新将map中处理的任务重新去完成,因为map完成的任务会存放在他本地的磁盘中,无法得到。那么Master会重新安排其他的Map去做。而reduce失败之后,完成的任务不会再重新进行,它会存放在HDFS中。JobTracker会跟踪任务的执行进度、资源使用量等问题,并将这些信息告诉任务调度器(TaskScheduler),TaskScheduler就会调度任务。

3.TaskTracker

        TaskTracker会周期性地通过“心跳”将本地节点上的情况告诉给JobTracker,同时执行相应的操作。TaskTracker使用“slot”等量划分本节点上资源量(CPU、内存等)。一个Task获取到slot后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上空闲的slot分配给Task使用。slot分为Map slot和Reduce slot 两种分别提供给MapTask和Reduce Task使用。

4.Task

        Task分为Map Task 和 Reduce Task两种,均由TaskTracker启动

5.TaskScheduler则负责任务的分发以及错误发生后未完成的task的重新分发。

2.1MapReduce各个执行阶段

其中Shuffile则负责将将map的输出,经过分区、排序、合并过程输出一个分区有序的文件。比如每个URL为key的键值对,将他们的value合并起来组成一个,统一由某个reduce来进行处理,并且也是有序的。这就解决了前面所说的问题。

MapReduce应用程序执行过程:

这里参考大佬的博客:MapReduce基本原理及应用 - 黎先生 - 博客园 (cnblogs.com)

同时最好可以读一遍原论文,它不管是整个框架,还是容错的考虑都是有提到的,可以更加深入的了解整个MapReduce:rfeet.qrk (mit.edu)

相关文章:

MapReduce学习与理解

MapReduce为google分布式三驾马车之一。分别为《The Google File System》、《MapReduce: Simplified Data Processing on Large Clusters》、《Bigtable: A Distributed Storage System for Structured Data》。三遍论文奠定了分布式存储和计算的基础。本篇文章来说说mapreduc…...

Animal objDog = new Dog()和 Dog objDog = new Dog()的区别

文章目录 1、Animal objDog new Dog()和 Dog objDog new Dog()的区别1. **对象类型&#xff08;引用类型&#xff09;**2. **调用和可用成员**3. **示例代码来说明**使用示例总结 2、Animal objDog new Dog();不能调用dog的方法和属性是为什么&#xff1f;原因解析解决方法小…...

springboot引入netty

配置类 import cn.hutool.core.thread.ThreadUtil; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.PooledByteBufAllocator; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChanne…...

PWM基础与信号控制

1. 什么是PWM&#xff1f; PWM&#xff08;Pulse Width Modulation&#xff0c;脉宽调制&#xff09;是一种通过改变信号的占空比来控制电压输出的技术。简单来说&#xff0c;PWM信号由一系列高低电平组成&#xff0c;通过调节高电平持续的时间比例&#xff0c;可以控制信号的…...

nvm,一款nodejs版本管理工具

背景 在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;进而不同项目必须依赖不同版本的NodeJS运行环境&#xff0c;这种情况下&#xff0c;对于维护多个版本的node将会是一件非常麻烦的事情&#xff0c;nvm就是为…...

数据处理与统计分析篇-day11-RFM模型案例

会员价值度模型介绍 会员价值度用来评估用户的价值情况&#xff0c;是区分会员价值的重要模型和参考依据&#xff0c;也是衡量不同营销效果的关键指标之一。 价值度模型一般基于交易行为产生&#xff0c;衡量的是有实体转化价值的行为。常用的价值度模型是RFM RFM模型是根据…...

【PostgreSQL】PostgreSQL数据库允许其他IP连接到数据库(Windows Linux)

要让PostgreSQL数据库允许其他IP连接到数据库&#xff0c;需要进行以下几个步骤的配置&#xff1a; 1. 修改postgresql.conf文件 首先&#xff0c;需要修改PostgreSQL的主配置文件postgresql.conf&#xff0c;允许数据库监听所有IP的连接请求。 1.1 找到postgresql.conf文件…...

通义千问:让我的编程工作效率翻倍的秘密武器

在日益繁忙的工作环境中&#xff0c;选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度&#xff0c;甚至让团队协作更加顺畅。在这篇博客中&#xff0c;我将分享一个让我工作效率翻倍的编程工具——通义千问大…...

2.Seata 1.5.2 集成Springcloud-alibaba

一.Seata-server搭建已完成前提下 详见 Seata-server搭建 二.Springcloud 项目集成Seata 项目整体测试业务逻辑是创建订单后&#xff08;为了演示分布式事务&#xff0c;不做前置库存校验&#xff09;&#xff0c;再去扣减库存。库存不够的时候&#xff0c;创建的订单信息数…...

python 图像绘制问题: 使用turtle库绘制蟒蛇

turtle &#xff08;海龟)库是turtle绘图体系的python实现。 1969年诞生&#xff0c;主要用于程序设计入门。 import turtle turtle.setup(650, 350, 200, 200) # 设置窗体&#xff08;宽&#xff0c;高&#xff0c;窗体左上角x坐标&#xff0c;y坐标&#xff09; turtl…...

大模型分布式训练并行技术(七)-自动并行

近年来&#xff0c;随着Transformer、MOE架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此&#xff0c;我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&a…...

网络安全等级保护 | 规范企业网络系统安全使用 | 天锐股份助力等保制度落地

在当今数字化高速发展的时代&#xff0c;网络安全对于企业的重要性日益凸显。而近年来&#xff0c;数据泄露、网络攻击等安全事件频发&#xff0c;给企业和个人带来了前所未有的挑战。在这一背景下&#xff0c;网络安全等级保护制度&#xff08;简称“等保”&#xff09;作为国…...

Springboot使用redis,以及解决redis缓存穿透,击穿,雪崩等问题

1.Redis面试题-缓存穿透,缓存击穿,缓存雪崩 1 穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;返回空值&#xff09;&#xff08;互斥锁&#xff09;&#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 2 击穿&#xff1a;一个或多个热…...

pve 命令开启关闭虚拟机

命令 #查看集群资源状况 #pvesh get /cluster/resources #取得虚拟机当前状态 #pvesh get /nodes/<节点id>/qemu/<虚拟机id>/status/current #pvesh get /nodes/www/qemu/107/status/current#关闭虚拟机 #pvesh create /nodes/<节点id>/qemu/<虚拟机id&…...

【达梦数据库】临时表的使用测试

目录 背景问题复现问题原因解决方法 背景 用户在使用临时表的过程中&#xff0c;执行commit提交命令之后&#xff0c;临时表的数据被清空&#xff0c;无法被接下来的存储过程复用。 问题复现 -----------------------------提交删除行----------------------------- --创建临…...

【GUI设计】基于Matlab的图像去噪GUI系统(8),matlab实现

博主简介&#xff1a; 如需获取设计的完整源代码或者有matlab图像代码项目需求/合作&#xff0c;可联系主页个人简介提供的联系方式或者文末的二维码。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于Matlab的图像去噪GUI系统&am…...

【计算机科学导论】

计算机科学的本质就是解决问题&#xff0c;我们计算机由输入设备&#xff0c;处理设备和输出设备组成。 处理设备看做一个大黑盒&#xff0c;目的就是接收处理数据&#xff0c;然后发送到输出设备。计算机中存储数据就是2进制&#xff0c;0和1&#xff0c;0代表关&#xff0c;…...

【C++】I/O流的使用介绍

文章目录 什么是 I/O 流&#xff1f;C I/O 流的基本类型常用的 I/O 操作1. 标准输入输出2. 文件输入输出3. 字符串流 什么是 I/O 流&#xff1f; 在 C 中&#xff0c;I/O 流是数据的输入和输出通道。流的本质是一个字节序列&#xff0c;提供了抽象的方式来读写数据。C 使用流对…...

深度学习:(八)深层神经网络参数与流程

深层神经网络 符号规定 L L L &#xff1a;表示神经网络的层数&#xff1b; l l l &#xff1a;表示第几层&#xff1b; n [ l ] n^{[~l~]} n[ l ] &#xff1a;表示第 l l l 层的节点数&#xff1b; a [ l ] a^{[~l~]} a[ l ] &#xff1a;表示第 l l l 层中的激活函数&…...

`pattern = r“(\d+)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)“

pattern r"(\d)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)" 是一个正则表达式&#xff0c;用于匹配特定格式的字符串。 正则表达式解析 整体结构&#xff1a; r"..."&#xff1a;前缀 r 表示这是一个原始字符串&#xff08;Raw String&#x…...

proxy-doctor:自动化诊断与修复开发工具代理配置的利器

1. 项目概述与核心价值最近在折腾一些需要稳定网络连接的项目时&#xff0c;遇到了一个老生常谈但又极其恼人的问题&#xff1a;代理配置。无论是开发环境里的包管理工具&#xff0c;还是日常使用的命令行工具&#xff0c;一旦涉及到网络请求&#xff0c;代理设置不对&#xff…...

Fast-GitHub:三步安装解决国内GitHub访问难题的终极指南

Fast-GitHub&#xff1a;三步安装解决国内GitHub访问难题的终极指南 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否经常因为…...

UEFITool深度解析:实战指南与高效使用技巧

UEFITool深度解析&#xff1a;实战指南与高效使用技巧 【免费下载链接】UEFITool UEFI firmware image viewer and editor 项目地址: https://gitcode.com/gh_mirrors/ue/UEFITool UEFITool是一款专为UEFI固件分析设计的开源工具&#xff0c;能够将复杂的二进制固件映像…...

基于Readability算法的网页内容提取服务:从原理到工程实践

1. 项目概述&#xff1a;一个为现代阅读而生的开源工具 最近在折腾个人知识库和稍后读系统时&#xff0c;我一直在找一个能完美解决“网页内容净化与结构化”痛点的工具。市面上的方案要么太重&#xff0c;要么太简陋&#xff0c;直到我遇到了 Cat-tj/web-reader 。这不仅仅是…...

使用mcp-maker快速构建AI工具调用服务器:从协议原理到工程实践

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是想给大语言模型&#xff08;LLM&#xff09;装上更强大的“手脚”&#xff0c;让它能直接操作我电脑上的各种软件和工具。这听起来很酷&#xff0c;对吧&#xff1f;但实际操作起来&#xff0c;你会发现一个核心痛…...

Midjourney像素艺术提示词工程:98%新手忽略的4个隐藏权重指令,实测提升风格还原度320%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney像素艺术提示词工程的底层逻辑重构 像素艺术在 Midjourney 中并非天然适配的生成模态&#xff0c;其高精度、低分辨率、强风格约束的特性与扩散模型默认的连续性渲染范式存在根本张力。要实现…...

【仅剩47份】Midjourney湿版摄影风格训练数据包(含1851–1889年原始湿版扫描图谱×236张+ICC色彩配置文件×5):精准匹配V6.6新渲染引擎底层纹理采样逻辑

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;湿版摄影风格的历史溯源与数字再生价值 湿版摄影&#xff08;Wet Plate Collodion Process&#xff09;诞生于1851年&#xff0c;由英国科学家弗雷德里克斯科特阿彻&#xff08;Frederick Scott Archer…...

30亿条出行记录解密:如何用纽约出租车数据洞察城市脉搏 [特殊字符][特殊字符]

30亿条出行记录解密&#xff1a;如何用纽约出租车数据洞察城市脉搏 &#x1f696;&#x1f4ca; 【免费下载链接】nyc-taxi-data Import public NYC taxi and for-hire vehicle (Uber, Lyft) trip data into a PostgreSQL or ClickHouse database 项目地址: https://gitcode.…...

ElevenLabs乌尔都语语音合成精度实测报告(WER 8.2% vs 行业均值19.6%):为什么它突然支持Nastaliq音素映射?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs乌尔都语语音合成精度实测报告&#xff08;WER 8.2% vs 行业均值19.6%&#xff09;&#xff1a;为什么它突然支持Nastaliq音素映射&#xff1f; ElevenLabs于2024年Q2悄然上线乌尔都语&#…...

医院内外部人员管理系统

基于计算机视觉技术的医院人员综合管理解决方案&#xff0c;整合人脸识别考勤与行人流量监控两大核心能力&#xff0c;实现内部员工身份验证、自动打卡签到&#xff0c;以及公共区域人流量实时统计与可视化分析&#xff0c;提升医院管理效率与安全保障水平。 [&#x1f4fa; 系…...