七:maptask并发数量决定机制

maptask数量决定机制--数据处理任务的分配机制

  1. 分配机制定义在FileInputFileFormat类中
  2. 分配的宗旨就是将block块数据进行"切分",每一片就交给一个maptask来处理

第一种方式:

指定切片大小形式这种方式如果切片处理的数据正好也在同一台机器上按照切片大小来读取数据的话如果是从0读到100而这台机器的上的block为128M的话,那剩下的28M则会在另一个Map任务上读取而另一台Map任务需要读取第一台Map任务的处理完后剩余的切片(28M)而这28M是要走网络的所以速度上会慢些.

第二种方式:

定义Block块大小和切片大小一样大小,这种实现是FileInputFormat的默认实现(排除小文件个人认为这种方式是最好的)

第三种方式:

如果都是小文件的话第二种方式是不可用的,因为不足Block大小的文件会按照文件大小来生成一个Block块大小,这时候如果分片大小和block大小一样那么就会开启很多个Map而map的开启就会调用java jvm 这时就会很耗费资源,比如map任务开启一个jvm 处理一个3M或几K的文件是很耗费资源的.在出现大量小文件下可以使用combineInputFormat而FileInputFormat机制就不适合使用了,当然最好的办法是在运算处理之前将小文件进行合并

切片机制定义:

FileInputFormat中默认的切片机制:

a/切片大小,默认等于block大小

b/切片时是针对每一个文件进行切片

比如:  file1.txt    300M

file2.txt    10M

会切成几片:

file1.txt.split1--  0~128

file1.txt.split2--  128~256

file1.txt.split3--  256~300

file2.txt.split1--  0~10M

c/切片的大小也可以自定义:

在FileInputFormat中,切片主要由这几个值来运算决定

minsize

1  默认值

mapreduce.input.fileinputformat.split.minsize

maxsize

Long.MAXValue   默认值

mapreduce.input.fileinputformat.split.maxsize

计算切片的算法:

Math.max(minSize,Math.min(maxSize, blockSize));

参数如果调得比blocksize小则会让切片变小,而且就等于配置的这个参数的值

mapreduce.input.fileinputformat.split.maxsize

参数调的比blockSize大,则可以让切片变得比blocksize还大

mapreduce.input.fileinputformat.split.minsize

时间: 2024-08-08 05:35:37

七:maptask并发数量决定机制的相关文章

《Programming in Go》第七章并发编程译文

中文译名 Go 编程 外文原文名 Programming in Go 外文原文版出处 the United States on recycled paper at RR Donnelley in Crawfordsville, Indiana. 译 文: 第七章 并发编程 7.1主要概念 7.2例子 7.2.1:过滤器 7.2.2:并发查找 7.2.3:线程安全表 7.2.4:Apache 报告 7.2.5:找重复 并发编程能够让开发者实现并行算法,以及利用多处理器和多核写程序.但是在大多主流变

《码出高效 Java开发手册》第七章 并发与多线程

码云: https://gitee.com/forxiaoming/JavaBaseCode/blob/master/EasyCoding/src/concurrency/multithreading/index.md 并发(Concurrency) 与并行(Parallelism) 以KTV唱歌为例, Parallelism 是指有多少人可以使用话筒同时唱歌, Concurrency是指同一个话筒被多少个人轮流使用; 一个科室两个专家同时出诊, 就是两个并行任务; 其中一个医生时而问诊, 时而

初解,Scala语言中基于Actor的并发编程的机制,并展示了在Spark中基于Scala语言的Actor而产生的消息驱动框架Akka的使用,

Scala深入浅出实战中级--进阶经典(第66讲:Scala并发编程实战初体验及其在Spark源码中应用解析)内容介绍和视频链接 2015-07-24 DT大数据梦工厂 从明天起,做一个勤奋的人 看视频.下视频,分享视频 DT大数据梦工厂-Scala深入浅出实战中级--进阶经典:第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析 本期视频通过代码实战详解了Java语言基于加锁的并发编程模型的弊端以及Scala语言中基于Actor的并发编程的机制,并展示了在Spark中基于Sc

1.1000万用户可能造成的并发数量是多少? 解决方案(理论篇)

今天开始对之前所能够想到的一些问题进行一些理论解决方案的研究. 首先,1000万的用户可以造成多么大的并发数量,应该是可以被计算出来的.我通过百度进行了一些搜索,关于用户数量与并发数的关系. 得到了一些资料,主要参考了一篇名为<并?发?用?户?数?.?吞?吐?量?.?思?考?时?间?的?计?算?公?式>的文档. 其中提到了关于性能需要考虑的几个方面,这些内容稍后再讨论.主要先说说几个公式 1.平均并发用户数的计算公式 C=nL / T 其中C是平均的并发用户数,n是平均每天访问用户数,L是一天

Apache优化与提供并发数量

问题: 我们用lvs做了负载均衡,使用了两台服务器做login的服务,以及二次资源下载服务.但是在推广过程中,陆续有人反映服务器登录困难. 解决过程: 1.首先我们查看流量日志以及服务器cpu与内存使用情况,发现每隔一段时间流量以及cpu使用情况都会急剧下降一次.而且两台登录服务器会循环出现连接不上的情况.查看lvs  message日志    /var/log/message lvs检测apache的80端口失败,然后lvs会把这台机器踢掉,将所有请求发送到另外一台,然后另外一台检测失败,刚才

Android群英传笔记——第七章:Android动画机制和使用技巧

Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中十分重要的一部分,从早期的Android版本中,由于动画机制和绘图机制的不健全,Android的人机交互备受诟病,Android从4.X开始,特别是5.X,动画越来越完善了,Google也开始重视这一方面了,我们本章学习的主要内容有 Android视图动画' Android属性动画 Android动画

Mongodb并发与锁机制

Mongodb并发与锁机制 1. MongoDB 使用的锁 MongoDB 使用的是"readers-writer"锁, 可以支持并发但有很大的局限性,当一个读锁存在,许多 读操作可以使用这把锁,然而, 当一个写锁的存在,一个单一的写操作会 exclusively 持有该锁,同时 其它读,写操作不能使用共享这个锁:举个例子,假设一个集合里有 10 个文档,多个 update 操作不能 并发在这个集合上,即使是更新不同的文档. 2. 锁的粒度 在 2.2 版本以前,mongod 只有全局

Linux内核分析(七)----并发与竞态

Linux内核分析(七) 这两天家里的事好多,我们今天继续接着上一次的内容学习,上次我们完善了字符设备控制方法,并深入分析了系统调用的实质,今天我们主要来了解一下并发和竞态. 今天我们会分析到以下内容: 1.      并发和竞态简介 2.      竞态解决办法 3.      为我们的虚拟设备增加并发控制 在前几次博文我们已经实现了简单的字符设备,看似完美但我们忽视了一个很严重的问题,即并发问题,那么什么是并发,又如何解决并发呢,我们下面进行分析. l  并发和竞态简介 1.       并

Android群英传知识点回顾——第七章:Android动画机制与使用技巧

7.1 Android View动画框架 7.1.1 透明度动画 7.1.2 旋转动画 7.1.3 位移动画 7.1.4 缩放动画 7.1.5 动画集合 7.2 Android属性动画分析 7.2.1 ObjectAnimator 7.2.2 PropertyValuesHolder 7.2.3 ValueAnimator 7.2.4 动画事件的监听 7.2.5 AnimatorSet 7.2.6 在XML中使用属性动画 7.2.7 View的animate方法 7.3 Android布局动画