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 的相关文章

随机推荐

  • 匿名拓空者Pro开源飞控使用介绍-2-硬件配置及拓展接口

    硬件配置 主控 STM32F407 xff1a 1M FLASH xff0c 192K RAM xff0c 运行频率168MHz xff1b 惯性传感器 icm20602 xff1a 3轴陀螺 43 3轴加速度 43 恒温设计 xff08
  • 匿名拓空者Pro开源飞控使用介绍-3-连接上位机及基本测试

    飞控连接上位机方法 飞控可以通过底板上的USB端口连接上位机 xff0c 使用USB线连接飞控和电脑 xff0c 飞控买家版程序会将USB端口初始化成HID设备 xff0c 免安装驱动程序 xff0c 只要打开匿名上位机 xff0c 打开程
  • 匿名拓空者Pro开源飞控使用介绍-4-飞控安装及坐标系定义

    飞控安装 将机架组装好 xff0c 电机安装于机架上 xff0c 飞控安装于机架重心位置 xff08 一般为机架中心板中心位置 xff0c 也就是两条电机对角线交点 注意 xff0c 飞控尽量水平安装于机架上 xff0c 飞行效果最好 xf
  • 匿名拓空者Pro开源飞控使用介绍-5-接收机连接

    确定使用何种接收机连接方式 匿名拓空者PRO飞控支持SBUS PPM PWM型接收机 xff0c 根据推荐程度依次为SBUS gt PPM gt PWM SBUS PPM均可以实现1根信号线传输多通道遥控数据的功能 xff0c SBUS为串
  • 匿名科创--匿名拓空者PRO—TI版全开源飞控使用入门—TM4C123

    1 飞控介绍 匿名团队针对TI芯片的强烈学习需求 xff0c 推出了匿名拓空者PRO飞控的TI版 使用TI公司的 TM4C123G 主控芯片 xff0c 打造了一款完全开源的飞控产品 xff0c 提供完全开源的飞控整体工程文件 xff0c
  • 匿名科创--ANO_OPENMV视觉开发板介绍

    1 ANO OPENMV介绍 官方OPENMV体积大 xff1f 在飞行器上不方便安装 xff1f 串口通过杜邦线容易接触不良 xff1f 不可否认 xff0c OPENMV为大家提供了一个非常方便 易用的视觉开发环境 xff0c 但是在实
  • 匿名科创--匿名拓空者PRO--开源光流融合算法使用教程

    1 总体介绍 为了更好的支持匿名TI飞控买家 xff0c 匿名团队开源了基于优象光流模块的飞控算法 xff0c 光流传感器直接连接至匿名拓空者PRO TI版飞控 xff0c 由飞控读取原始光流传感器的光流数据 xff0c 结合高度传感器以及
  • Linux 设备驱动开发实例

    编译和运行 驱动编译要用到kernel的Makefile文件 也就是源码树的编译系统 因此 xff0c 源码需要被配置和编译 xff0c 以ubuntu自带的源码为例 xff1a 编译外部模块 ko 的编译命令是 xff1a make C
  • 匿名科创-匿名光流V3版对天安装介绍

    安装介绍 光流模块对天安装时 xff0c 方向参考上图 注意 xff0c 只有光流模块对上安装 xff0c 激光或超声波测距模块仍然对地安装 配置介绍 如需使用对天模式 xff0c 硬件安装好后 xff0c USB线连接光流模块至上位机 x
  • 从 C51+uCos-II 近距离了解操作系统任务切换原理

    前言 从 C51 43 uCos II 简单介绍下任务切换的原理 方便大家更形象的理解多任务怎么切换 为后续写 x86 43 Linux 任务切换做铺垫练手吧 参考资料如下 xff1a uCos II 源码 单片机原理与应用及 C51 编程
  • Keil+Simulink生成Xcp标定协议A2L文件

    Keil 43 Simulink生成Xcp标定协议A2L文件 由于最近要为ECU移植XCP协议 xff0c 所以记录一下 xff0c 我使用的MCU为NXP S32K144 IDE选用MDK 官方IDE S32DS无代码联想功能 xff0c
  • 记录一下关于MPC5744P CAN总线学习

    记录一下关于MPC5744P CAN总线学习 主要是针对开发出BUSOFF管理 xff0c NXP感觉都是一个套路 xff0c 无论powerpc xff0c 还是arm m status t span class token functi
  • 通过.map文件填写XCP标定需要的A2L文件

    首先你得有一个模板 xff0c 通过python脚本打开编译后的 map文件自动填写到A2L文件对应位置 xff0c 目前只实现了填写Mesurement 区域 xff0c 但是这个填写主要是更新变量名和对应的ECU ADRRESS 因为
  • Autosar Xcp移植

    前言 xff1a 可能有兄弟胸中有点疑问 Vector ETAS等软件包都有XCP xff0c 你移植个吊 xff0c 但是我的MICORSAR BSW中没发现XCP静态代码 xff0c 倒是在CFG中发现了XCP配置选项 xff0c 难道
  • Tricore学习-芯片启动流程

    第一次接触Tricore 学习下从芯片上电到运行到main函数的过程 xff0c 本文以TC36X为例 xff0c 具体可参考英飞凌官方的Infineon AURIX TC3xx Part1 UserManual v02 00 EN 首先T
  • ETAS-AUTOSAR学习-0.1Task配置思考

    span class token function TASK span span class token punctuation span OsTask BSW span class token punctuation span span
  • AurixDevStudio集成MCAL

    这是Tricore MCAL安装路径 打开ADS新建一个AURIX Project 我手上的是龙邱的TC377最小系统 就这样选 理解下第一个选项 新建好的基础工程是这个样子 删除掉Library文件夹 因为我们这里要使用的MCAL而不是i
  • git 使用命令创建新分支

    如何使用Git 命令创建一个新分支 使用场景 xff1a 本文主要详细介绍了如何使用git命令基于一个项目的master分支创建一个新的git分支 xff0c 并且推向远程仓库 xff0c 使其他开发人员能够功能使用该分支进行开发 操作步骤
  • go web gin框架实战1

    文章目录 go web gin框架实战1 参考资料2 demo3 demo运行4 demo解析 go web gin框架实战 1 参考资料 gin框架官方文档 链接 2 demo span class token keyword packa
  • Hadoop之MapReduce

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