MapReduce Task数目划分

MapReduce总结 MapReduce是一种可用于数据处理的编程模型。MapReduce程序本质上是并行运行的,优势在于处理大规模数据集。本文介绍了Hadoop MapReduce的架构,并结合具体例子介绍MapReduce的工作过程,以更深入的了解MapReduce。 阅读详情

Map任务的个数

  Mapper数据过大的话,会产生大量的小文件,过多的Mapper创建和初始化都会消耗大量的硬件资源。Mapper数太小,并发度过小,Job执行时间过长,无法充分利用分布式硬件资源。

Mapper数量由什么决定?

  1. 输入文件数目
  2. 输入文件的大小
  3. 配置参数

  输入目录中文件数量决定多少个Map会被运行起来,应用针对每一个分片运行一个Map。对于每一个输入的文件会有一个map split。如果输入文件超过了HDFS块的大小(128M)那么对于同一个输入文件会有多余2个的Map运行起来。

涉及参数:
mapreduce.input.fileinputformat.split.minsize //启动map最小的split size大小,默认0
mapreduce.input.fileinputformat.split.maxsize //启动map最大的split size大小,默认256M
dfs.block.size//block块大小,默认128M
计算公式:splitSize =  Math.max(minSize, Math.min(maxSize, blockSize))

    下面是FileInputFormat class 的getSplits()的伪代码: 
      num_splits = 0
      for each input file f:
         remaining = f.length
         while remaining / split_size > split_slope:
            num_splits += 1
            remaining -= split_size
      where:
        split_slope = 1.1 分割斜率
        split_size =~ dfs.blocksize 分割大小约等于hdfs块大小

会有一个比例进行运算来进行切片,为了减少资源的浪费。例如一个文件大小为260M,在进行MapReduce运算时,会首先使用260M/128M,得出的结果和1.1进行比较。大于则切分出一个128M作为一个分片,剩余132M,再次除以128,得到结果为1.03,小于1.1,则将132作为一个切片,即最终260M被切分为两个切片进行处理,而非3个切片。

Reduce任务的个数

  Reduce任务是一个数据聚合的步骤,数量默认为1,一个Reduce任务对应一个输出文件。一个job的ReduceTasks数量是通过mapreduce.job.reduces参数设置,也可以通过编程的方式,调用Job对象的setNumReduceTasks()方法来设置。一个节点Reduce任务数量上限由mapreduce.tasktracker.reduce.tasks.maximum设置(默认2)。

可以采用以下探试法来决定Reduce任务的合理数量:
1.每个reducer都可以在Map任务完成后立即执行:
      0.95 * (节点数量 * mapreduce.tasktracker.reduce.tasks.maximum)
2.较快的节点在完成第一个Reduce任务后,马上执行第二个:
      1.75 * (节点数量 * mapreduce.tasktracker.reduce.tasks.maximum)

MapReduce中Map Task的数量确定及切片机制 目录 一、MapTask个数 二、如何控制mapTask的个数 三、关于分片确定的临界问题 四、ReduceTask的数量如何确定? 在MapReduce当中,每个mapTask处理一个切片split的数据量,注意切片与block块的概念很像,但是block块是HDFS当中存储数据的单位,切片split是MapReduce当中每个MapTask处理数据量的单位。在介绍map task的数量及切片机制之前先了解这两个概念: block块(数据块,物理划分) block是HDFS中的基本存储单位,h 阅读详情

相关推荐

MapReduce架构

MapReduce定义源自 Google的MapReduce论文发表于2004年12月 Hadoop MapReduce是Google MapReduce的克隆版MapReduce特点易于编程 良好的扩展性 高容错性 适合PB级以上海量数据的离线处理MapReduce编程模型一种分布式计算模型框架,解决海量数据的计算问题MapReduce将整个并行计算过程抽象到两个函数 ——>Map(映

飞鸿踏雪泥 3406

Map和Reduce任务的优化

编程总是围绕着两个问题:“如何完成这个任务”和“如何能让程序运行得更快” 因此,相对应的MapReduce计算模型的优化也就集中在两个方面:一是计算性能方面的优化;二是I/O操作方面的优化 1、任务调度 两个方面的优化:一是计算方面:Hadoop总会先将任务分配给空闲的机器,使所有的任务能公平地分享系统资源;二是I/O方面:Hadoop会尽量将map任务分配给InputSplit所在的机器,...

Alexwym的博客 1658

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

zhulewen的博客 7883

Hadoop Map/Reduce执行流程详解

Hadoop Map/Reduce执行流程详解 转载Map/Reduce 一个Map/Reduce 作业(job) 通常会把输入的数据(input file)切分为若干独立的数据块(splits),然后由 map任务(task)以完全并行的方式处理它们。Map/Reduce框架会对map的输出做一个 Shuffle 操作,Shuffle 操作的后的结果会输入给reduce任

qq_35181209的博客 1797

stm32f103c8t6+esp8266在WiFi下通过手机控制外设

stm32f103c8t6+esp8266在WiFi下通过手机控制外设前言 前言 通过上一篇,介绍了esp8266的基本功能,这篇将用stm32c8t6配合esp8266进行数据交互,实现用手机通过无线的方式去控制外设、开关等;这里相当于把stm32作为上一篇的串口助手和esp8266进行通信; ...

weixin_45430735的博客 1万+

【保研经验】北科自动化到北大工学院

作者:办公室某学长 谢邀。。。作为拖延症晚期患者,希望能在我科开学前写完。 先简单介绍一下我的保研过程,申请了清华叉院&北大叉院大数据&北大信科计算机夏令营,三者都没入营;申请了自所夏令营(自所来宣讲时未交简历,这是重大错误),给了第二批补录但没去;最终九推去了北大工学院。我的这次保研最终成功的经历可以说有一定运气成分,不具有普适性,但在前期准备过程中还是有经验可以分享的。 ...

ruanjianbu的博客 1796

MapReduce优化----基本参数的设定

基本参数 要对你的MapReduce Task进行优化,首先我们需要了解一些基本的参数: dfs.block.size, dfs.blocksize: 默认的HDFS文件系统的block大小,单位为byte。 mapred.compress.map.output: map的输出是否压缩 mapred.map/reduce.tasks.speculative.execution: 推测执

刘瑞东的专栏 2697

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2976

MapReduce任务参数调优

MapReduce任务参数调优 本文主要记录Hadoop 2.x版本中MapReduce参数调优,不涉及Yarn的调优。 Hadoop的默认配置文件(以cdh5.0.1为例): core-default.xml hdfs-default.xml mapred-default.xml 说明: 在hadoop2中有些参数名称过时了,例如原来的mapred.reduc...

freespace 667

TEM图像处理实战指南:从基础操作到金属材料分析

本文提供了一份全面的透射电镜(TEM)图像处理实战指南,涵盖从基础操作到金属材料深度分析的全流程。重点讲解了TEM图像预处理、选区电子衍射(SAED)标定、高分辨像(HRTEM)分析及STEM图像应用等核心技能,并结合金属材料(如铝合金、钢)的析出相鉴定、位错分析和界面结构研究等实际案例,帮助研究者从原始数据中准确提取晶体结构、缺陷及成分信息。

weixin_29284201的博客 210

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 551

MapReduce中input split和block的划分以及maptask和reducetask数量的确定

学了mapreudce框架没多久,虽然会写很多的一些常见的案例,但是这个框架中一些本质地方的实现还是有很多疑惑的。所以就想整理一下最近所学到的东西。 首先先理清楚block和split的区别。 1、block块 当把文件上传到hdfs中时,第一步要进行的操作就是划分数据,数据在hdfs中被划分为一块一块的,默认的大小是64MB,这个块的大小可以在haddop-default.xml

敲代码的quant的博客 3739

超临界二氧化碳再热再压缩布雷顿循环建模与先进控制

超临界二氧化碳布雷顿循环建模与先进控制研究 本文研究了超临界二氧化碳再热再压缩布雷顿循环系统的建模与控制。通过MATLAB/Simscape构建了包含压缩机、透平、回热器等关键组件的动态模型,并设计了基于模型预测控制(MPC)和自抗扰控制(ADRC)的多层控制策略。系统采用转速控制的压缩机、阀门开度控制的透平,以及可变热源加热器,实现了全动态分析。研究结果表明,MPC与ADRC混合控制方案相较于传统PID控制,功率超调降低至0.9%,效率波动控制在±0.08%,扰动恢复时间缩短至12秒。

AI的内部世界的博客 341

2020-10-13 转载:Map Task数目的确定和Reduce Task数目的指定

注意标题:Map Task数目的确定和Reduce Task数目的指定————自然得到结论,前者是后者决定的,后者是人为指定的。查看源码可以很容易看懂 1、MapReduce作业中Map Task数目的确定: 1)MapReduce从HDFS中分割读取Split文件,通过Inputformat交给Mapper来处理。Split是MapReduce中最小的计算单元,一个Split文件对应一个Map Task 2)默认情况下HDFS种的一个block,对应一个Split。 3)当执行Wordcount时..

Urlli的博客 249

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4930

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MapReduce分区和reduceTask的数量

MapReduce分区和reduceTask的数量 1.MapReduce分区:相同key的数据发送到同一个reduce里面去。 mapTask处理的是文件切片filesplit。 注意:block的概念是在hdfs当中的,mapreduce当中,每一个mapTask处理的数据都是叫做一个文件切片。 暂时可以简单地认为,一个文件切片就是对应一个block块。还可以简单地认为,有多少个block块,就要启动多少个mapTask。 2.分区规则: HashPartitioner的getPartition方法

黄道婆的专栏 1526

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Map Task数目的确定 和 Reduce Task数目的指定

Map Task数目的确定和Reduce Task数目的指定————自然得到结论,前者是后者决定的,后者是人为指定的。查看源码可以很容易看懂 1、MapReduce作业中Map Task数目的确定: 1)MapReduce从HDFS中分割读取Split文件,通过Inputformat交给Mapper来处理。Split是MapReduce中最小的计算单元,一个Split文件对应一个Map Task 2)默认情况下HDFS种的一个block,对应一个Split。 3)当执行Wordcount时: ...

qq_35139965的博客 1459

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

019_Map Task数目的确定和Reduce Task数目的指定

注意标题:Map Task数目的确定和Reduce Task数目的指定————自然得到结论,前者是后者决定的,后者是人为指定的。查看源码可以很容易看懂 1、MapReduce作业中Map Task数目的确定:   1)MapReduce从HDFS中分割读取Split文件,通过Inputformat交给Mapper来处理。Split是MapReduce中最小的计算单元,一个Split文件对应一个

YouxiBug 720

stage,task和job的区别与划分方式

Application 用户构建在 Spark 上的程序。由集群上的一个 driver 程序和多个 executor 组成。 Worker node 任何在集群中可以运行应用代码的节点。 Executor 一个为了在 worker 节点上的应用而启动的进程,它运行 task 并且将数据保持在内存中或者硬盘存储。每个应用有它自己的 Executor。 Job:一个由多个任务组成的并行计算...

Z_Data的博客 5434

MapReduce阶段划分

MapReduce执行的4个阶段,分别为Split阶段—> Map阶段 —> Shuffle阶段 —> Reduce阶段。

disgocloser的博客 1447

【Spark六十三】Hadoop MapReduce Task的进程模型与Spark Task的线程模型

Hadoop的MapReduce的Map Task和Reduce Task都是进程级别的;而Spark Task则是基于线程模型的。   多进程模型和多线程模型 所谓的多进程模型和多线程模型,指的是同一个节点上多个任务的运行模式。无论是MapReduce和Spark,整体上看都是多进程的:MapReduce应用程序是由多个独立的Task进程组成的;Spark应用程序的运行环境是由多个独...

bit1129的博客 841

HBase MapReduce与Speculative Task

Speculative Task(推测式任务)是mapreduce框架中一个比较重要的优化策略。当某个server某个时间段处于忙碌状态而无法快速完成某个task(当然也可能是server本身性能低下),从而拖延了整个job的完成进度,此时若启用Speculative Task策略,jobtacker会为执行慢的task启动speculative task,多个相同的任务同时运行,哪个task

厚积而薄发 5683

大数据架构师分享MapReduce V1:TaskTracker端启动Task流程分析

如果在一个TaskTracker节点上运行的多个Task都属于同一个Job(一个TaskTracker上运行的Task按照Job来分组,每一组Task都属于同一个Job),那么第一次初始化时,还没有建立一个Task到Job的映射关系,也就是说,在TaskTracker端也要维护Job的状态,以及属于该Job的所有Task的状态信息。根据Task的类型,分别加入到对应类型的TaskLauncher的队列中。至此,一个Task通过Child VM的加载已经启动,就可以运行一个Task了,我们后续再详细介绍。

2401_83384536的博客 1103

spark分区数,task数目,core数,worker节点个数,excutor数量梳理

转载自:https://www.cnblogs.com/hadoop-dev/p/6669232.html spark分区数,task数目,core数,worker节点个数,excutor数量梳理 作者:王燚光链接:https://www.zhihu.com/question/33270495/answer/93424104来源:知乎著作权归作者所有。商业转载请联系作者获得授...

weixin_30532973的博客 142

mapreduce 任务task处理流程

在MapReduce计算框架中,一个应用程序被划分成Map和Reduce两个计算阶段,它们分别由一个或者多个Map Task和Reduce Task组成。其中,每个Map Task处理输入数据集合中的一片数据(InputSplit),并将产生的若干个数据片段写到本地磁盘上,而Reduce Task则从每个Map Task上远程拷贝相应的数据片段,经分组聚集和归约后,将结果写到HDFS上作为最终结果,如下图所示。总体上看,Map Task与Reduce Task之间的数据传输采用了pull模型。为了能够容错,

cyq6239075的博客 1781

mapreduce task与spark task对比

mapreduce mapreduce是多进程模型,一个job就是一个进程 每个Task运行在一个独立的JVM进程中; 可单独为不同类型的Task设置不同的资源量,目前支持内存和CPU两种资源; 每个Task运行完后,将释放所占用的资源,这些资源不能被其他Task复用,即使是同一个作业相同类型的Task。也就是说,每个Task都要经历“申请资源—> 运行Task –> 释放资源”的过程。 进程特点决定了启动一个Task将是一个很expensive的操作,对于迭代计算而言,无疑是噩梦。 spar

鸭梨的博客 540
上一篇: LeetCode——DFS
下一篇: ZooKeeper分布式锁
K. Bob
博客等级 码龄8年 82粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值