hadoop的 map-red就是一个并行计算平台,我们在使用这个平台的时候,要做的事情就是提交自己定制的任务(job,主要定制map类,reduce类,combine类等类),然后设置job的各种参数,比如设置mappe/reducer/combine类, 输入数据路径,输出数据路径,输出格式。然后可以根据日志或者web页面查看任务执行的情况,如果错误,通过web页面查看日志。对于map-red平台,我们可以设置各种参数,来使得我们提交的任务的执行效率得到优化,比如多少个reducer任务,分片大小等。

map-red的执行过程,首先分片由hadoop来完成,hadoop将完成的分片交给一个mapper任务,一个mapper任务可以不只执行一个分片,mapper任务的执行过程是,从data中读入一行,然后用我们自定义的mapper函数处理,每读入一行,调用mapper函数一次。 如果有多个reducer任务,hadoop还要进行分区,默认的分区器是“key.hash(reduce任务的个数)”(注: 可以写自己的分区器),也就是在一个分区中,是具有相同的hash值的key-value, 等到reducer任务运行的时候,会从对应于自身(hash对应)的多个mapper的相应分区中通过网络取过来放在本地,然后在reducer本地进行shuffle操作,shuffle操作是对多个map的输出进行一次重排序,因为单个map的输出已经是有序的啦(map写入磁盘前在内存中执行的),shuffle操作后进行reduc操作,将结果输出到目标地。(为什么要进行排序,为了reduce的输出?)

为了减少map和redu的之间传输的数据数量,在mapper操作完成后,在map处可以对中间数据进行一次combine处理,combine处理实质上是reduce数据的预处理在map本地的运行。combine是在map输出的中间数据写入到磁盘前运行,并且会反复运行,所以combine的另外一个意义也是使得map写入到磁盘的中间数据量更少。

如果没有reduce任务,hadoop会将map结果直接输出到目标地,如果有reduce,map的结果就是reduce的输入,即中间数据,hadoop把这些中间数据放在本地存储(是否是采用oracle的临时表空间的思想)。

hadoop map-red的执行过程的更多相关文章

  1. hadoop jar x.jar 执行过程

    hadoop jar  x.jar  执行过程 Yarn框架执行内容 1,job.waitforcompletion() 启动 Runjar 进程  -> Resourcemanage申请一个j ...

  2. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

  3. Hadoop MapReduce执行过程详解(带hadoop例子)

    https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...

  4. (转载)Hadoop map reduce 过程获取环境变量

    来源:http://www.linuxidc.com/Linux/2012-07/66337.htm   作者: lmc_wy Hadoop任务执行过程中,在每一个map节点或者reduce节点能获取 ...

  5. Hadoop 少量map/reduce任务执行慢问题

    最近在做报表统计,跑hadoop任务. 之前也跑过map/reduce但是数据量不大,遇到某些map/reduce执行时间特别长的问题. 执行时间长有几种可能性: 1. 单个map/reduce任务处 ...

  6. Hadoop MapReduce执行过程实例分析

    1.MapReduce是如何执行任务的?2.Mapper任务是怎样的一个过程?3.Reduce是如何执行任务的?4.键值对是如何编号的?5.实例,如何计算没见最高气温? 分析MapReduce执行过程 ...

  7. Hadoop mapreduce执行过程涉及api

    资源的申请,分配过程略过,从开始执行开始. mapper阶段: 首先调用默认的PathFilter进行文件过滤,确定哪些输入文件是需要的哪些是不需要的,然后调用inputFormat的getSplit ...

  8. Hadoop 执行过程中出现 name node is in safe mode 问题

    解决方法: 1.进入hadoop安装根目录 如 :我的hadoop 安装在/usr/local/hadoop 执行 cd /usr/local/hadoop bin/hadoop dfsadmin - ...

  9. MapReduce剖析笔记之五:Map与Reduce任务分配过程

    在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...

随机推荐

  1. CentOS更新软件

    列出所有可更新的软件清单命令:yum check-update 安装所有更新软件命令:yum update 仅安装指定的软件命令:yum install <package_name> 仅更 ...

  2. Linux系统使用yum安装nodejs

    先执行: yum install \ http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 再执行: su ...

  3. java正则表达式的使用

    姿势: Pattern pattern = Pattern.compile("^Java.*");Matcher matcher = pattern.matcher("J ...

  4. 用jxl导出数据到excel

    需要jxl.jar 测试结果没问题,代码: package com; import java.io.File; import java.io.IOException; import java.util ...

  5. 如何阅读《ECMAScript 2015 Language Specification》

    你不需要把<ECMAScript 2015 Language Specification>通读一遍,因为没那个必要.   阮一峰建议: 对于一般用户来说,除了第4章,其他章节都涉及某一方面 ...

  6. 怎么简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览?

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs ...

  7. Android 性能分析工具dumpsys的使用(自己增加一部分在后面)

    Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,手机连接电脑后可以直接命令行执行adb shell dumpsys 查看所有支持的Service但是这样输出的太多,可以通 ...

  8. PHP中的闭包和匿名函数

    闭包的概念是指在创建闭包时,闭包会封装周围的状态的函数.即便闭包所在环境不在了.但闭包中封装的状态依然存在. 匿名函数就是没有名称的函数. 它们看似很函数一样,实际上它们属于Closure类的实例 P ...

  9. System.Security.Cryptography.CryptographicException 出现了内部错误

    调试微信支付退款时,需要使用pfx证书,在本地调试时没有问题,但在服务器部署时报异常:System.Security.Cryptography.CryptographicException 出现了内部 ...

  10. 扩展XAF模型信息实现自定义功能

    如何隐藏 web listview 的 编辑控制列如下图: 这列怎么让它隐藏? 感谢[少侠]XAF_杨东 提供解答!感谢XAF_小学生整理.   A: 注册自定义接口IModelListViewExt ...