前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >我是如何向老婆解释MapReduce的?

我是如何向老婆解释MapReduce的?

作者头像
IT阅读排行榜
发布于 2018-08-13 02:20:57
发布于 2018-08-13 02:20:57
3220
举报
文章被收录于专栏:华章科技华章科技

昨天,我在Xebia印度办公室发表了一个关于MapReduce的演说。演说进行得很顺利,听众们都能够理解MapReduce的概念(根据他们的反馈)。我成功地向技术听众们(主要是Java程序员,一些Flex程序员和少数的测试人员)解释了MapReduce的概念,这让我感到兴奋。在所有辛勤的工作之后,我们在Xebia印度办公室享用了丰盛的晚餐,然后我径直回了家。

回家后,我的妻子(Supriya)问道:“你的会开得怎么样?”我说还不错。接着她又问我会议是的内容是什么(她不是从事软件或编程领域的工作的)。我告诉她说MapReduce。“Mapduce,那是什么玩意儿?”她问道:“跟地形图有关吗?”我说不,不是的,它和地形图一点关系也没有。“那么,它到底是什么玩意儿?”妻子问道。“唔…让我们去Dominos(披萨连锁)吧,我会在餐桌上跟你好好解释。”妻子说:“好的。”然后我们就去了披萨店。

我们在Domions点餐之后,柜台的小伙子告诉我们说披萨需要15分钟才能准备好。于是,我问妻子:“你真的想要弄懂什么是MapReduce?”她很坚定的回答说“是的”。因此我问道:

我:你是如何准备洋葱辣椒酱的?(以下并非准确食谱,请勿在家尝试)

妻子:我会取一个洋葱,把它切碎,然后拌入盐和水,最后放进混合研磨机里研磨。这样就能得到洋葱辣椒酱了。

妻子:但这和MapReduce有什么关系?

我:你等一下。让我来编一个完整的情节,这样你肯定可以在15分钟内弄懂MapReduce.

妻子:好吧。

我:现在,假设你想用薄荷、洋葱、番茄、辣椒、大蒜弄一瓶混合辣椒酱。你会怎么做呢?

妻子:我会取薄荷叶一撮,洋葱一个,番茄一个,辣椒一根,大蒜一根,切碎后加入适量的盐和水,再放入混合研磨机里研磨,这样你就可以得到一瓶混合辣椒酱了。

我:没错,让我们把MapReduce的概念应用到食谱上。Map和Reduce其实是两种操作,我来给你详细讲解下。

Map(映射):把洋葱、番茄、辣椒和大蒜切碎,是各自作用在这些物体上的一个Map操作。所以你给Map一个洋葱,Map就会把洋葱切碎。同样的,你把辣椒,大蒜和番茄一一地拿给Map,你也会得到各种碎块。所以,当你在切像洋葱这样的蔬菜时,你执行就是一个Map操作。Map操作适用于每一种蔬菜,它会相应地生产出一种或多种碎块,在我们的例子中生产的是蔬菜块。在Map操作中可能会出现有个洋葱坏掉了的情况,你只要把坏洋葱丢了就行了。所以,如果出现坏洋葱了,Map操作就会过滤掉坏洋葱而不会生产出任何的坏洋葱块。

Reduce(化简):在这一阶段,你将各种蔬菜碎都放入研磨机里进行研磨,你就可以得到一瓶辣椒酱了。这意味要制成一瓶辣椒酱,你得研磨所有的原料。因此,研磨机通常将map操作的蔬菜碎聚集在了一起。

妻子:所以,这就是MapReduce?

我:你可以说是,也可以说不是。其实这只是MapReduce的一部分,MapReduce的强大在于分布式计算

妻子:分布式计算?那是什么?请给我解释下吧。

我:没问题。

我:假设你参加了一个辣椒酱比赛并且你的食谱赢得了最佳辣椒酱奖。得奖之后,辣椒酱食谱大受欢迎,于是你想要开始出售自制品牌的辣椒酱。假设你每天需要生产10000瓶辣椒酱,你会怎么办呢?

妻子:我会找一个能为我大量提供原料的供应商。

我:是的..就是那样的。那你能否独自完成制作呢?也就是说,独自将原料都切碎?仅仅一部研磨机又是否能满足需要?而且现在,我们还需要供应不同种类的辣椒酱,像洋葱辣椒酱、青椒辣椒酱、番茄辣椒酱等等。

妻子:当然不能了,我会雇佣更多的工人来切蔬菜。我还需要更多的研磨机,这样我就可以更快地生产辣椒酱了。

我:没错,所以现在你就不得不分配工作了,你将需要几个人一起切蔬菜。每个人都要处理满满一袋的蔬菜,而每一个人都相当于在执行一个简单的Map操作。每一个人都将不断的从袋子里拿出蔬菜来,并且每次只对一种蔬菜进行处理,也就是将它们切碎,直到袋子空了为止。

这样,当所有的工人都切完以后,工作台(每个人工作的地方)上就有了洋葱块、番茄块、和蒜蓉等等。

妻子:但是我怎么会制造出不同种类的番茄酱呢?

我:现在你会看到MapReduce遗漏的阶段—搅拌阶段。MapReduce将所有输出的蔬菜碎都搅拌在了一起,这些蔬菜碎都是在以key为基础的map操作下产生的。搅拌将自动完成,你可以假设key是一种原料的名字,就像洋葱一样。所以全部的洋葱keys都会搅拌在一起,并转移到研磨洋葱的研磨器里。这样,你就能得到洋葱辣椒酱了。同样地,所有的番茄也会被转移到标记着番茄的研磨器里,并制造出番茄辣椒酱。

披萨终于做好了,她点点头说她已经弄懂什么是MapReduce了。我只希望下次她听到MapReduce时,能更好的理解我到底在做些什么。

编注:下面这段话是网上其他人用最简短的语言解释MapReduce:

Wewanttocountallthebooksinthelibrary.Youcountupshelf#1,Icountupshelf#2.That’smap.Themorepeopleweget,thefasteritgoes.

我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。

Nowwegettogetherandaddourindividualcounts.That’sreduce.

现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据DT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用通俗易懂的大白话讲解Map/Reduce原理
Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等. 这里详细分解这里面的概念让大家通过这篇文章了解到底是什么hadoop: 1.什么是Map/Reduce,看下面的各种解释: (1)MapReduce是hadoop的核心组件之一,hadoop要分布式包括两
机器学习AI算法工程
2018/03/13
2.6K0
用通俗易懂的大白话讲解Map/Reduce原理
MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
zhangjiqun
2024/12/17
1270
用ChatGPT进行翻译、校对、扩写、聊天
temperature = 0, 输出内容 比较稳定 否则, temperature 越大,内容越多样化
Michael阿明
2023/05/26
1.5K0
用ChatGPT进行翻译、校对、扩写、聊天
使用scikitlearn、NLTK、Docker、Flask和Heroku构建食谱推荐API
我的想法是:给你一张配料表,我能做什么不同的食谱?也就是说,我可以用我公寓里的食物做什么食谱?
磐创AI
2020/12/24
1.1K0
“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑
浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,就这样流转于方寸餐桌,交织在冷暖人间。我们说五味杂陈,这五味就是酸、苦、甘、辛、咸。
一个会写诗的程序员
2021/04/28
7870
“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑
纯干货——《面向开发者的 ChatGPT Prompt工程》学习笔记
此教程的主要目的是为大家介绍如何在自己的应用开发过程中,创建合适的 prompt。那么为什么会重点介绍 prompt?其实接触过 llm 的同学应该都很清楚,想要开发一款强大的 llm 应用,优秀的 prompt是至关重要的,熟练掌握 prompt 编写的人,就可以更好的让 model 理解需求。
聪明鱼
2023/12/09
1.5K0
《ChatGPT Prompt Engineering for Developers》中文笔记、二
吴恩达《ChatGPT Prompt Engineering for Developers》课程中文版,主要内容为指导开发者如何构建 Prompt 并基于 OpenAI API 构建新的、基于 LLM 的应用,包括:书写 Prompt 的原则; 文本总结(如总结用户评论); 文本推断(如情感分类、主题提取); 文本转换(如翻译、自动纠错); 扩展(如书写邮件);
Lcry
2023/05/15
1.9K0
《ChatGPT Prompt Engineering for Developers》中文笔记、二
从Facebook手机到谷歌相机,史上商业巨头们的110个败笔
大数据文摘作品,转载要求见文末 编译 | 江凡,颖子,笪洁琼,刘云南 在剧烈变化的市场环境中,产品创新是大公司保持竞争力的方式之一,但很多大公司的新产品尝试并不很成功。我们挑选出110个“有史以来”最大失败产品。了解失败是如此的重要,因为很多报告只关注那些成功了的产品,忽视了幸存者偏见效应。好了,我们开始吧! 第一部分 1. “新”可乐(New Coke),可口可乐(1985) 这不是一个根据消费者的需求开发的产品,消费者的市场反馈有如灾难。当可口可乐公司决定改回原来的配方时,Peter Jennings(
大数据文摘
2018/05/25
1.3K0
《纽约客》长文:Jeff Dean和他背后的男人
谷歌公司正处于空前的紧急状态。上一年10月,谷歌的核心系统停止了工作,这些系统通过在网络上“爬行”来构建“索引”(index)。尽管用户仍然可以在google.com上输入查询,但他们收到的结果已经过时5个月。
新智元
2018/12/25
6430
《纽约客》长文:Jeff Dean和他背后的男人
谷歌基情实录:和Jeff Dean在同一台电脑上写代码
谷歌的伟大有一多半要归功于公司中亲密无间、协同工作的程序猿们!向伟大的猿类童鞋致敬!
大数据文摘
2018/12/25
9140
谷歌基情实录:和Jeff Dean在同一台电脑上写代码
纽约客:AI 是否会成为人类的最后发明?
【导读】Nick Bostrom 是《超级智能:路线图、危险性与应对策略》的作者,他认为真正的人工智能可能拥有巨大的威胁,如果人类没有小心处理,很可能会走向自我灭绝的道路。 Bostrom 提出了大过滤器的观点,他说生命总倾向于扩张,但到目前为止我们还没有观察到外星生命。Bostrom 说这可能是大过滤器的原因,所有的文明可能都得发展出某些技术,而新的技术发现也许会导致普遍的生存灾难。 这里所说的技术,就是人工智能。 Bostrom 的论述总有一种“优雅”的悖论:一方面是逻辑清晰的分析和论述,另一方面又不
新智元
2018/03/13
1.6K0
纽约客:AI 是否会成为人类的最后发明?
美国工程院士、谷歌首席架构师、结对编程榜样杰夫·迪恩(JeffDean)博士传记(27k字)
关键词:杰夫·迪恩(Jeff Dean),杰弗里·阿德盖特·迪恩(Jeffrey Adgate Dean),简历(Resume),博士(Doctor),谷歌人(Googler),结对编程(Pair Programming),首席架构师(Chief Architecture Officer),工程院院士(Engineering Academician)。
秦陇纪
2020/03/11
2.9K0
图片验证码训练
1.项目git地址 https://github.com/kerlomz/captcha_trainer 2.安装模块 pip install -r requirements.txt 3.创建项目 python make_dataset.py img_test #这时候会报错 4.添加配置文件 cd projects/img_test/ 上传下面的配置文件 # - requirement.txt - GPU: tensorflow-gpu, CPU: tensorflow # - If you use
小小咸鱼YwY
2021/05/24
4.6K0
经典 40 篇完整版
Hiding behind the loose dusty curtain, a teenager packed up his overcoat into the suitcase. He planned to leave home at dusk though there was thunder and lightning outdoors. He had got to do this because he was tired of his parents’ nagging (唠叨的) about his English study and did not want to go through it any longer. He couldn’t get along well with English and disliked joining in English classes because he thought his teacher ignored him on purpose. As a result, his score in each exam never added up to over 60.
独元殇
2023/03/14
1.6K0
上帝掷骰子吗–量子物理史话
大家好,又见面了,我是你们的朋友全栈君。   上帝掷骰子吗–量子物理史话   第一章黄金时代   一   我们的故事要从1887年的德国开
全栈程序员站长
2022/06/26
7.1K0
相关推荐
用通俗易懂的大白话讲解Map/Reduce原理
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文