刚开始接触hadoop平台的时候 部分初学者对于mapreduce中的maptask的数量是怎么确定的 可能有点迷惑,如果看了jobclient里面的maptask初始化的那段源码,那么就比较清楚了,MapTask的数量是由InputFormat来指定的,InputFormat生成多少个InputSpilt就会有多少个task。

因此,如果剩余Map slot的数量大于InputSpilt的数量,那么就启动的Map数量就是InputSplit的数量。
如果剩余Map slot的数量小于InputSpilt的数量,那么就启动的Map数量就是剩余的Map slot数量。
下面来看看常用的InputFormat都是怎么生成InputSplit的。
FileInputFormat(平时常用的TextInputFormat和KeyValueTextInputFormat都继承自它)会设置一个hiddenFileFilter把以_和.开头的文件过滤掉,遍历input里面的文件及其子目录中的所有文件,然后对于每个文件,默认是一个block生成一个InputSplit。因此Map的数量>=文件数量,跟block size有关系,会尽量按block来切分。
当我们利用mapreduce来对hbase进行查询的时候,会采用hbase自带的TableInputFormat格式,TableInputFormat是默认使用的HBase的InputStream,继承自TableInputFormatBase。一个InputSplit正好对应了一个Region,因此Map的数量取决于table有多少个region。

转载来自:http://www.cnblogs www.ysgj1688.com www.feifanyule.cn/ com/xiangyangzhu/

1、MapReduce作业中Map Task数目的确定:

1)MapReduce从HDFS中分割读取Split文件,通过Inputformat交给Mapper来处理。Split是MapReduce中最小的计算单元,一个Split文件对应一个Map Task
2)默认情况下HDFS种的一个block,对应一个Split。
3)当执行Wordcount时:
   (1)一个输入文件小雨64MB,默认情况下则保存在hdfs上的一个block中,对应一个Split文件,所以将产生一个Map Task。
   (2)如果输入一个文件为150MB,默认情况下保存在HDFS上的三个block中,对应三个Split文件,所以将产生三个Map Task。
   (3)如果有输入三个文件都小于64MB,默认情况下会保存在三个不同的block中,也将产生三个Map Task。
4)用户可自行指定block与split的关系,HDSF中的一个block,一个Split也可以对应多个block。Split与block的关系都是一对多的关系。
5)总结MapReduce作业中的Map Task数目是由:
   (1)输入文件的个数与大小
   (2)hadoop设置split与block的关系来决定。

2、MapReduce作业中Reduce Task数目的指定:

1)JobClient类中submitJobInternal方法中指定:int reduces=jobCopy.getNumReduceTasks();

2)而JobConf类中,public int getNumReduceTasks(www.thd178.com){return geInt("mapred.reduce.tasks",1)}
因此,Reduce Task数目是由mapred.reduce.tasks指定,如果不指定则默认为1.
这就很好解释了wordcount程序中的reduce数量为1的问题,这时候map阶段的partition(分区)就为1了。

Hadoop中maptask数量的决定因素相关推荐

  1. hadoop中如何控制map的数量

    hadoop中如何控制map的数量 @(HADOOP)[hadoop] hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这 ...

  2. 深度分析如何在Hadoop中控制Map的数量

    深度分析如何在Hadoop中控制Map的数量 guibin.beijing@gmail.com 很多文档中描述,Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数 ...

  3. 《小白兔到大黑牛》第十四篇Hadoop中五个进程作用

    问题导读: 1.job的本质是什么? 2.任务的本质是什么? 3.文件系统的Namespace由谁来管理,Namespace的作用是什么? 4.Namespace 镜像文件(Namespace ima ...

  4. hadoop中的序列化与Writable类

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-writable-class.html,转载请注明源地址. hadoop中自带的org.apache.h ...

  5. 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...

    一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象. Java序列化(java.i ...

  6. Hadoop中任务提交运行流程

    在Hadoop中提交一个任务大致分为6个步骤,分别为: 作业提交 -> 作业初始化 –> 任务分配 –> 任务执行 –> 更新任务执行进度和状态 -> 作业完成 目录 作 ...

  7. Hadoop之MapTask工作机制

    Hadoop之MapTask工作机制 目录 并行度决定机制 MapTask工作机制 1. 并行度决定机制 问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度 ...

  8. 浅析 Hadoop 中的数据倾斜

    最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解. 在并行计算中我们总希望分配的每一个task 都能以差不多的粒度来切分并且完成时间相差不大,但是集群中可能硬件不同,应用的类型不同 ...

  9. 在hadoop中伪分布式部署的命令与步骤

    HDFS是进行存储的,YARN是进行调度的. 第一步先切换到hadoop下面的etc(配置文件都在etc下面) 命令:cd /etc 然后在hadoop中配置core-site.xml 命令:Vi c ...

  10. python hadoop streaming_如何在Hadoop中使用Streaming编写MapReduce(转帖)

    作者:马士华 发表于:2008-03-05 12:51 最后更新于:2008-03-25 11:18 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息. http://www ...

最新文章

  1. php删除目录下的所有文件和目录
  2. 完整恢复模式下的备份/恢复
  3. 家校通Android源码,基于Android的家校通系统设计与实现
  4. DPDK — 在 NFV 中的应用
  5. 【Android】开源图表库MPAndroidChart的学习
  6. Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
  7. 数字电子技术课程设计之基于触发器的三位二进制同步减法计数器无效态000/110
  8. 穿越剧_零差评的5部穿越剧,少有的巅峰之作,第一堪称穿越鼻祖!
  9. Bootstrap学习(一):Bootstrap简介
  10. 190318每日一句
  11. 计算机网络原理(04741)自考学习笔记/备考资料
  12. 多功能便携扩音器,老师上课的好帮手
  13. mysql lpad 列_mysql的lpad函数
  14. 彩扩机项目--散热马达驱动部分
  15. 云服务器系统么开始bios,云服务器怎么进入bios
  16. 马来西亚留学回国人员证明
  17. 中国大学MOOC动物遗传学试题及答案
  18. 【半小时极速装机】 | 联想小新Pro13 AMD 4600U ubuntu装机 调节屏幕亮度+调整缩放+显示屏扩展教程
  19. 小迪渗透内网渗透(玖)
  20. RT5350 openwrt添加Reset按键,实现短按重启系统,长按复位系统

热门文章

  1. Spring IOC整理
  2. 微信支付 第一次成功,其他无法调起,返回-1(Android eclipse 微信支付之大坑 签名工具问题)
  3. Thought Works 总结
  4. css 百分比继承关系的探讨
  5. Boost Log : Trivial logging with filters
  6. Java线程之Callable和Future
  7. itexpdf同一个段落不同文字,如何设置不同的格式
  8. 团队作业4——第一次项目冲刺(Alpha版本)4.23
  9. Centos 配置eth0 提示Device does not seem to be present -- 转载
  10. [转]Android ANR 分析解决方法