MapReduce 思想解析

MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"

二:在hadoop中

在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,一般运行在NameNode机器上;TaskTracker是用于执行工作的,负责在节点DataNode上执行具体的分布式任务的计算。一个Hadoop集群中只有一台JobTracker。

三:在分布式计算中

在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总(combine)起来。

四: 需要注意的是

,用MapReduce来处理的数据集(或任务)必须具备这样的特点:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

五:过程讲解

在Hadoop中,每个MapReduce任务都被初始化为一个Job。每个Job又可以分为两个阶段:map阶段和reduce阶段。在map阶段,由map函数会接受一个如<key,value>形式的输入,然后产生一个<key, value>形式的中间输出。Hadoop会将所有具有相同key值的<key, value>输入集合(combine)到一起,传递给第二阶段的reduce函数,所以reduce 函数看到的将不是<key, value>,而是<key, list of values>。第二阶段的reduce 函数会对这个每个<key, list of values>进行处理,然后选择产生0个或1个最终的<key, value>输出。之所有选择类似map输出的<key, value>形式作为 reduce 输出也是考虑到这样的输出不需要处理就可以直接作为下一个map的输入,这样的模型最终可以方便对海量数据进行多重处理和分析(易于实现和扩展)。

六:例子与拓展

其实MapReduce 模型简单易懂,但是运用起来还是有很多经验和讲究的。比如,如果要做到对海量同源数据进行分析和归类,例如,淘宝网需要分析购买某种商品的用户还喜欢购买哪些别的商品,帮助用户找到志趣相投的其他用户或者卖家。在使用MapReduce进行数据分析挖掘的时候,如何选取key是相当重要的。key选择得当,可以让数据本身得到合并,并在reduce中来进行统计。这就有点像SQL语句中的表连接,如何选取join的column对于分析的效率和结果集的大小、正确性都是至关重要的。

详解:MapReduce 思想解析相关推荐

  1. java技术详解_Java反射技术详解及实例解析

    前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替 ...

  2. 实验详解——DNS反向解析、DNS主服务器和从服务器的配置

    实验详解--DNS反向解析.DNS主服务器和从服务器的配置 实验一:DNS反向解析 1.安装bind 2.查找配置文件路径 3.配置/etc/named.conf主配置文件 4.修改/etc/name ...

  3. 详解DNS正向解析实验(有图有实验)

    详解DNS正向解析实验(有图有实验) 一.DNS简介 1.DNS的定义 2.域名结构及解析方式 3.DNS服务器类型 二.构建DNS域名解析服务器步骤 1.安装bind软件包 2.配置正向解析 ①.先 ...

  4. [转]Hadoop集群_WordCount运行详解--MapReduce编程模型

    Hadoop集群_WordCount运行详解--MapReduce编程模型 下面这篇文章写得非常好,有利于初学mapreduce的入门 http://www.nosqldb.cn/1369099810 ...

  5. AAC音频格式详解和实战解析

    AAC音频格式详解和实战解析 一.基本概念 AAC:即MPEG-2 Advanced Audio Coding,分为流格式和文件格式.文件格式主要用于文件存储和文件播放,流格式主要用于流媒体在线播放. ...

  6. Hector SLAM 原理详解、算法解析

    目录 1.原理详解 2.算法解析 1.原理详解 Hector整体算法很直接,就是将激光点与已有的地图"对齐",即扫描匹配.扫描匹配就是使用当前帧与已经有的地图数据构建误差函数,使用 ...

  7. mapreduce工作流程_详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:[初 ...

  8. 详解MapReduce中的五大编程模型

    前言 我们上一节讲了关于 MapReduce 中的应用场景和架构分析,最后还使用了一个CountWord的Demo来进行演示,关于MapReduce的具体操作.如果还不了解的朋友可以看看上篇文章:初识 ...

  9. python学习详解_深入解析Python小白学习【操作列表】

    1.遍历列表 需要对列表中的每个元素都执行相同的操作时,可使用for 循环: magicians = ['alice','david','carolina'] for magician in magi ...

最新文章

  1. iOS 富文本类库RTLabel
  2. 重磅下载!业界首本强化学习应用宝典,阿里核心算法团队联袂打造
  3. vue-cli3 本地代理配置
  4. 使用Visual Studio 创建可视Web Part部件
  5. 帝国CMS默认编辑器插入代码插件
  6. FireFox2和FireFox3共存解决方案(附完整图解)
  7. Grammarly SCI语法检查总结
  8. 随机产生大写字母c语言,C语言程序设计 (英文打字练习)
  9. 光大DVR模块串口通信协议开发总结
  10. gloox1.0使用Emai格式的账号登录
  11. ubuntu安装xbox手柄的驱动程序
  12. 关于线性回归分析的理解
  13. 关于创新创业的书,看这两本就够了
  14. 百战RHCE(第一战:Linux基础命令1)
  15. ffmpeg rtmp 花屏_使用FFMPEG进行视频转码
  16. 牛客Steins;Gate(原根+FFT)
  17. php-fpm 重启失败,php-fpm启动失败
  18. 小米将推出新款自研芯片
  19. 网络项目实施方案介绍
  20. Linux下如何修改host文件

热门文章

  1. Halcon缺陷检测——差分
  2. (一)linux下hadoop安装配置
  3. java 多线程下载_使用java实现http多线程下载
  4. 清华大学计算机期末试题,清华大学计算机系C++期末考试题及答案.doc
  5. lastLogon和lastLogonTimestamp的区别
  6. 【全面完美方案】iPhone 4S WiFi变灰 DIY修复方式
  7. 冲上云霄 之一 初识云
  8. mysql 报错注入输出多个字段_SQL注入浅析
  9. CATIA怎么约束快捷键_3ds Max 常用快捷键大全,你学会了吗
  10. idea 如何关闭 field injection is not recommended 警告