Hadoop之MapReduce

2023-05-16

摘要:MapReduce是Hadoop的又一核心模块,从MapReduce是什么,MapReduce能做什么以及MapReduce的工作机制三方面认识MapReduce。

关键词:Hadoop   MapReduce     分布式处理

面对大数据,大数据的存储和处理,就好比一个人的左右手,显得尤为重要。Hadoop比较适合解决大数据问题,很大程度上依赖其大数据存储系统,即HDFS和大数据处理系统,即MapReduce。关于HDFS,可以参阅作者写的《Hadoop之HDFS》文章。而对于MapReduce,我们从如下三个问题来认识MapReduce。

问题一:MapReduce是什么?

问题二:MapReduce能做什么?

问题三:MapReduce工作机制?

对于第一个问题,我们引用Apache Foundation对MapReduce的介绍“Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner.”由此可知,Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有着这些关键词,一是软件框架,二是并行处理,三是可靠且容错,四是大规模集群,五是海量数据集。因此,对于MapReduce,可以简洁地认为,它是一个软件框架,海量数据是它的“菜”,它在大规模集群上以一种可靠且容错的方式并行地“烹饪这道菜”。写到这里,作者由衷地感叹思想之伟大,分解之神奇,合并之巧妙。

认识了MapReduce 是什么,关于第二个问题,也就清晰了。MapReduce能做什么?简单地讲,可以做大数据处理。所谓大数据处理,即以价值为导向,对大数据加工、挖掘和优化等各种处理。

MapReduce擅长处理大数据,它为什么具有这种能力呢?这可由MapReduce的设计思想发觉。MapReduce的思想就是“分而治之”。Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。Reducer负责对map阶段的结果进行汇总。至于需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。

MapReduce是如何来处理大数据呢?用户可以通过编MapReduce应用程序来实现对大数据的操作。既然是用MapReduce程序处理大数据,那么MapReduce程序怎样工作呢?这就是第三个问题,即MapReduce的工作机制


MapReduce的整个工作过程如上图所示,它包含如下4个独立的实体。

实体一:客户端,用来提交MapReduce作业。

实体二:jobtracker,用来协调作业的运行。

实体三:tasktracker,用来处理作业划分后的任务。

实体四:HDFS,用来在其它实体间共享作业文件。

通过审阅MapReduce工作流程图,可以看出MapReduce整个工作过程有序地包含如下工作环节。

环节一:作业的提交

环节二:作业的初始化

环节三:任务的分配

环节四:任务的执行

环节五:进程和状态的更新

环节六:作业的完成 

关于每一个环节里具体做什么事情,可以参读《Hadoop权威指南》的第六章MapReduce工作机制的内容。

对于用户来说,若是想使用MapReduce来处理大数据,就需要根据需求编写MapReduce应用程序。因而,如何利用MapReduce框架开发程序,是需要深入思考和不断实践的事情。

Source:

1 http://www.wangluqing.com/2014/02/hadoop-mapreduce/

2 http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html

3 http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html

4 炼数成金《Hadoop数据分析平台》课程

5《Hadoop权威指南(第二版)》第六章MapReduce工作机制


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop之MapReduce 的相关文章

随机推荐

  • Android Design Support Library

    1 Navigation View 对于应用程序 xff0c 它代表着一个标准的导航菜单 菜单内容可以由菜单资源文件填充 NavigationView通常放在一个DrawerLayout里面 lt xml version 61 34 1 0
  • 日常问题:解决nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found问题

    今天在调试上周编写好得代码程序的时候 xff0c 在执行到mybatis获取某行数据转换成自定义的类型时 xff0c 抛出了异常 xff1a nested exception is org apache ibatis executor Ex
  • Abort message: ‘FORTIFY: FD_SET: file descriptor 1070 >= FD_SETSIZE 128‘

    问题现象 压力测试骁龙相机 xff0c 发现camera provicer 进程崩溃 无法正常打开相机 xff0c 只有重新启动设备 相关的log xff1a 03 23 08 17 08 592 15634 15634 F DEBUG s
  • 滚动校验(Rolling Checksum)算法

    滚动校验 Rolling Checksum 算法 Rsync中使用了一种滚动检验 Rolling Checksum 算法 xff0c 用于快速计算数据块的检验值 它是一种弱校验算法 xff0c 采用的是Mark Adler的adler 32
  • Android GMS认证总结01

    测试项 失败项 备注 GTS com google android media gts WidevineYouTubePerformanceTests testL3Cenc720P30 pass com google android per
  • ZYNQ 在linux 通过AXI_GPIO操作电平

    在petalinux 通过AXI GPIO操作电平 以zynq为例 xff0c vivado工程 xff1a axi gpio n都是选择的一位输出 xff1a 管脚约束 xff1a set property SEVERITY Warnin
  • FSK,PSK,ASK,BPSK调制

    信号调制常用的三种基本方法是 xff1a 调幅 调频和调相 1 振幅调变 xff0c 简称为调zhi幅 xff0c 通过改变输出dao信号的振幅 xff0c 来实现传送信息的目的 一般在调制端输出的高频信号的幅度变化与原始信号成一定的函数关
  • ZYNQ移植vxworks系统

    版本 xff1a ZYNQ7010 xff0c VxWorks 6 9 ZYNQ PL端有灵活性好 xff0c 资源丰富 xff0c 可反复编程速度快的优势 xff0c 通过 PS的外设并行 AXI总线外挂 PL接口 xff0c 使用 FP
  • OpenCV-Python 3.X: cv2.xfeatures2d 无法使用问题解决

    由于专利的问题surf和sift特征已经被移到xfeatures2d里面 xff0c 这个模块需要安装opencv contrib python opencv的dnn模块可以加载深度学习模型 xff0c 但是dnn需要3 4以上 xff0c
  • 旧款Mac开启随航(sideCar)功能

    看到这个标题 不得不吐槽苹果 命名软硬件都可以支持 但是故意让旧设备不支持这个功能 真是鸡贼 吐槽完毕 本文参考博客 http dev zeppel eu luca SidecarCorePatch 里面是英文版的 所以我总结翻译以下几点
  • Masonry框架源码分析

    相信大多数iOS开发者对Masonry框架并不陌生 本文是笔者通读Masonry的代码之后的一篇总结 也希望可以帮助大家更好的理解该框架 怎奈笔者才疏学浅 如有遗漏或错误也欢迎大家评论区指出 大家一起进步 iOS布局的演进 在说Masonr
  • iOS面试题总结-未完待续

    iOS面试总结 1 网络 HTTP协议 HyperText Transfer Protocol 的请求和响应 请求 请求头 请求行 请求体 请求行 指定请求方法 请求路径 协议版本等信息请求头 描述客户端环境 例如 host要请求的主机地址
  • Mac本地生成SSH Key 的方法

    1 查看秘钥是否存在 打开终端查看是否已经存在SSH密钥 xff1a cd ssh 如果没有密钥则不会有此文件夹 xff0c 有则备份删除 也可以直接删除 2 生成新的秘钥 命令如下 ssh keygen t rsa C 34 yourem
  • Charles网络抓包工具使用教程

    1 前言 xff1a Charles是一款抓包修改工具 xff0c 相比起burp xff0c charles具有界面简单直观 xff0c 易于上手 xff0c 数据请求控制容易 xff0c 修改简单 xff0c 抓取数据的开始暂停方便等等
  • 开源许可证

  • CocoaPods如何指定版本号

    一个简单的podfile pod 39 AFNetworking 39 39 gt 1 0 39 版本号可以是1 0 xff0c 可以是1 1 xff0c 1 9 xff0c 但必须小于2 一个更简单的podfile pod 39 AFNe
  • ipa包上传itunes store失败

    昨天打包上传ipa包 遇到了故障 开始以为是网络问题 但是切换了各种网络之后发现这个不是网络问题 我推测应该是苹果在mac上更新了什么东西 换用application Loader 工具上传还是不行 但是比Xcode直接上传的好处是 可以看
  • Flutter 安装 (Mac环境)

    Flutter 安装 今天偶然看到一个公众号写了一篇关于Flutter 的文章 感觉挺好 所以就来尝试一下 整个安装过程挺简单 但也不是特别顺利 因为我自己使用的是Mac系统所以这里所有操作都是Mac系统下的操作 安装Flutter SDK
  • 删除桌面上出现无文件名图标的方法

    问题现象 xff1a 桌面上出现了无文件名及后缀的图标 xff0c 当用户是管理员模式时看不到 xff0c 当用户为user权限下能看的得见 xff08 其他权限下没试 xff09 处理方法 xff1a 1 桌面上右击 属性 桌面 自定义桌
  • Hadoop之MapReduce

    摘要 xff1a MapReduce是Hadoop的又一核心模块 xff0c 从MapReduce是什么 xff0c MapReduce能做什么以及MapReduce的工作机制三方面认识MapReduce 关键词 xff1a Hadoop