返回顶部
首页 > 资讯 > 精选 >如何简单解释 MapReduce 算法
  • 636
分享到

如何简单解释 MapReduce 算法

2023-06-17 07:06:50 636人浏览 安东尼
摘要

今天就跟大家聊聊有关如何简单解释 mapReduce 算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapRed

今天就跟大家聊聊有关如何简单解释 mapReduce 算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapReduce算法,于是我想出了一个有趣的例子,用以阐释它是如何工作的。

MapReduce算法例子

你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃。

MapReduce方法则是:

给在座的所有玩家中分配这摞牌

让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你

你把所有玩家告诉你的数字加起来,得到***的结论

MapReduce算法背景

谷歌在2004年发表了可以分析大量数据的MapReduce算法。每当你听到“大数据”这个词时,它指的是因为太大而让仅仅一台机器难以有效存储或分析的问题。MapReduce通过把计算量分配给不同的计算机群,能够解决大部分和大数据有关的分析问题。hadoop提供了***的利用MapReduce算法来管理大数据的开源方式。现今MapReduce是主流。

所以通常来说,每当你听到“大数据”,那也许意味着Hadoop被用来存储数据,也通常意味着数据的抽取和检索是用的MapReduce。

拆分MapReduce算法

MapReduce合并了两种经典函数:

映射(Mapping)对集合里的每个目标应用同一个操作。即,如果你想把表单里每个单元格乘以二,那么把这个函数单独地应用在每个单元格上的操作就属于mapping。

化简(Reducing )遍历集合中的元素来返回一个综合的结果。即,输出表单里一列数字的和这个任务属于reducing。

重新审视上面的MapReduce算法例子

重新审视我们原来那个分散纸牌的例子,我们有MapReduce数据分析的基本方法。友情提示:这不是个严谨的例子。在这个例子里,人代表计算机,因为他们同时工作,所以他们是个集群。在大多数实际应用中,我们假设数据已经在每台计算机上了 – 也就是说把牌分发出去并不是MapReduce的一步。(事实上,在计算机集群中如何存储文件是Hadoop的真正核心。)

通过把牌分给多个玩家并且让他们各自数数,你就在并行执行运算,因为每个玩家都在同时计数。这同时把这项工作变成了分布式的,因为多个不同的人在解决同一个问题的过程中并不需要知道他们的邻居在干什么。

通过告诉每个人去数数,你对一项检查每张牌的任务进行了映射。 你不会让他们把黑桃牌递给你,而是让他们把你想要的东西化简为一个数字。

另外一个有意思的情况是牌分配得有多均匀。MapReduce假设数据是洗过的(shuffled)- 如果所有黑桃都分到了一个人手上,那他数牌的过程可能比其他人要慢很多。

如果有足够的人的话,问一些更有趣的问题就相当简单了 - 比如“一摞牌的平均值(二十一点算法)是什么”。你可以通过合并“所有牌的值的和是什么”及“我们有多少张牌”这两个问题来得到答案。用这个和除以牌的张数就得到了平均值。

对MapReduce算法的结论

MapReduce算法的机制要远比这复杂得多,但是主体思想是一致的 – 通过分散计算来分析大量数据。无论是Facebook、NASA,还是小创业公司,MapReduce都是目前分析互联网级别数据的主流方法。有趣的是,MapReduce在多于10PB数据时趋向于变慢,所以谷歌在他们今年的io大会上报告称MapReduce已经不够他们用了。

看完上述内容,你们对如何简单解释 MapReduce 算法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何简单解释 MapReduce 算法

本文链接: https://lsjlt.com/news/287725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何简单解释 MapReduce 算法
    今天就跟大家聊聊有关如何简单解释 MapReduce 算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapRed...
    99+
    2023-06-17
  • Vue3diff算法的简单解刨
    目录性能比较前置与后置的预处理节点无序最长递增子序列上篇我们介绍了vue2中的双端diff算法的优势(相比于简单算法相同场景下移动DOM次数更少)。如今Vue3的势头正盛,在diff...
    99+
    2023-02-09
    Vue3 diff算法 Vue diff算法 Vue3 diff
  • Python里面如何从一道简单算法题里面解释什么叫做 O(1)
    这期内容当中小编将会给大家带来有关Python里面如何从一道简单算法题里面解释什么叫做 O(1),文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 今天有同学在粉丝...
    99+
    2024-04-02
  • 如何利用javascript做简单的算法
    目录1 问题2 方法3 实验结果与讨论 1 问题 众所周知,无论是Pycharm或是IDLE、java都可以计算简单的算法,比如加减乘除。然而在Hbuilder中,javascrip...
    99+
    2024-04-02
  • js如何实现日历的简单算法
    这篇文章将为大家详细讲解有关js如何实现日历的简单算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近有用到日历可需要编辑文本的日历,为了...
    99+
    2024-04-02
  • python3装饰器的简单解释
    闭包,也叫词法闭包:如下所示函数A主要是为了函数B提供运行环境的 闭包只是在表现和形式上像函数,其实闭包并不是函数 由函数在嵌套环境中,内层函数里,对外层函数作用域的变量进行了引用,那么在外层函数返回后,内层函数依然可是使用外层函数的变量,...
    99+
    2023-01-31
    简单
  • C++并查集算法简单详解
    目录1、并查集的初始化2、并查集的查找操作3、并查集的合并操作4、为什么要路径压缩?5、实现路径压缩总结1、并查集的初始化 并查集是用一个数组实现的。首先先定义一个数组: int f...
    99+
    2024-04-02
  • python中注释用法简单示例
    目录python中注释注释描述注释截图:1.单行注释 :2.多行注释:3.文档注释补充:注释程序总结 python中注释 在python中的注释一般分为单行注释、多行注释以...
    99+
    2023-02-04
    python 注释 python注释语法
  • 简单的排序算法
    现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同的人有不同的答案,而事实上,很多公司都对...
    99+
    2021-12-20
    java教程 java
  • 【Linux】shell命令行简单解释器
    回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单的shell命令行解释器!!!下面我们直接来看一看如何去实现shell命令行解释器: 总体分为(整体...
    99+
    2023-09-01
    linux 服务器 运维
  • HTML如何实现简单计算器
    本篇内容介绍了“HTML如何实现简单计算器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:   ...
    99+
    2024-04-02
  • Java简单工厂模式详细解释
    目录简单工厂模式概述简单工厂模式的结构与实现结构:实现简单工厂模式的简化简单工厂模式的优缺点和适用环境简单工厂模式的优点简单工厂模式的缺点简单工厂模式的适用环境简单案例题目:UML:...
    99+
    2024-04-02
  • 如何用Python从零开始实现简单遗传算法
    今天就跟大家聊聊有关如何用Python从零开始实现简单遗传算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。遗传算法是一种随机全局优化算法。连同人工神经网络,它可能是最流行和广为人知...
    99+
    2023-06-15
  • 详解python解释器安装以及简单的py
    1、首先要有一个python解释器,如果不知道在哪里下载的话,大家可以去我的博客里下载,免费的。安装很简单,我已经安装过了就不给大家演示了。2、下图是安装完成之后的3、接下来是配置系统环境变量,大家可以看我的上一篇博客是如何配置系统环境变量...
    99+
    2023-01-31
    详解 简单 python
  • Ubuntu上释放空间的5种简单方法
    前言 大多数人可能在系统磁盘存储不足的情况下执行释放空间这个操作,也可能在 linux 系统磁盘存储满了的情况下执行这个操作。 它应该被经常执行,来为安装一个新的应用程序和处理其它文件弥补磁盘存储空间。保持可用空间是 L...
    99+
    2022-06-04
    ubuntu释放内存命令 ubuntu释放空间
  • 使用Javascript如何实现简单计算器
    小编给大家分享一下使用Javascript如何实现简单计算器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下1.htm...
    99+
    2024-04-02
  • Java如何实现一个简单计算器
    这篇文章主要介绍了Java如何实现一个简单计算器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看看界面效果:源码如下:package test1; i...
    99+
    2023-06-22
  • Swift如何实现简单计算器项目
    本篇文章为大家展示了Swift如何实现简单计算器项目,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。////  ViewController.swift//  ...
    99+
    2023-06-28
  • JSP如何实现简单网页计算器
    小编给大家分享一下JSP如何实现简单网页计算器,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、构造一个简单的计算器,能够进行“+、—、*、/”运算(1)编写jsp页面,用户通过表单输入两个操作数和运算...
    99+
    2023-06-29
  • QT如何实现简单计算器功能
    这篇文章主要讲解了“QT如何实现简单计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QT如何实现简单计算器功能”吧!效果图:新建工程,创建类MainWindow,基类是QMainWi...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作