- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MR程序map任务数的规划机制学习目标知识目标● MapTask的并发度● MapTask的并发度决定机制●切片机制能力目标●了解MapTask的并行度● 掌握MapTask的并发度决定机制学习任务初步探索MapTask的并发度决定机制进一步了解MapTask的并行度了解切片机制了解切片大下参数配置目录FileInputFormat切片机制MapTask并发度MapTask并发度Hadoop中MapTask的并行度的决定机制。在MapReduce程序的运行中,并不是MapTask越多就越好,需要考虑数据量的多少及机器的配置。如果数据量很少,可能任务启动的时间都远远超过数据的处理时间。同样并不是越少越好。那么应该如何切分呢?假如我们有一个300M的文件,它会在HDFS中被切成3块。0-128M,128-256M,256-300M。并被放置到不同的节点上去了。在MapReduce任务中,这3个Block会被分给3个MapTask。MapTask并发度MapTask在任务切片时实际上也是分配一个范围,只是这个范围是逻辑上的概念,与block的物理划分没有什么关系。但在实践过程中如果MapTask读取的数据不在运行的本机,则必须通过网络进行数据传输,对性能的影响非常大。所以常常采取的策略是就按照块的存储切分MapTask,使得每个MapTask尽可能读取本机的数据。如果一个Block非常小,也可以把多个小Block交给一个MapTask。所以MapTask的切分要看情况处理。默认的实现是按照Block大小进行切分。MapTask的切分工作由客户端负责。一个切片就对应一个MapTask实例。MapTask并发度 MapTask并发度的决定机制1个job的map阶段并行度由客户端在提交job时决定。而客户端对map阶段并行度的规划的基本逻辑为:将待处理数据执行逻辑切片(即按照一个特定切片大小,将待处理数据划分成逻辑上的多个split),然后每一个split分配一个mapTask并行实例处理。这段逻辑及形成的切片规划描述文件,由FileInputFormat实现类的getSplits()方法完成,其过程如图1所示。MapTask并发度FileInputFormat切片机制1、切片定义在InputFormat类中的getSplit()方法2、FileInputFormat中默认的切片机制:(1) 简单地按照文件的内容长度进行切片;(2) 切片大小,默认等于block大小;(3) 切片时不考虑数据集整体,而是逐个针对每一个文件单独切片。比如待处理数据有两个文件:file1.txt??? 320Mfile2.txt??? 10MFileInputFormat切片机制经过FileInputFormat的切片机制运算后,形成的切片信息如下:file1.txt.split1 0~128file1.txt.split2 128~256file1.txt.split3 256~320file2.txt.split10~10MFileInputFormat切片机制FileInputFormat中切片的大小的参数配置通过分析源码,在FileInputFormat中,计算切片大小的逻辑:Math.max(minSize, Math.min(maxSize, blockSize)); 切片主要由这几个值来运算决定:minsize:默认值:1 配置参数: mapreduce.input.fileinputformat.split.minsize maxsize:默认值:Long.MAXValue 配置参数:mapreduce.input.fileinputformat.split.maxsizeblocksizeFileInputFormat切片机制因此,默认情况下,切片大小=blocksize1. maxsize(切片最大值):参数如果调得比blocksize小,则会让切片变小,而且就等于配置的这个参数的值;2. minsize (切片最小值):参数调的比blockSize大,则可以让切片变得比blocksize还大。选择并发数的影响因素:(1) 运算节点的硬件配置。(2) 运算任务的类型:CPU密集型还是IO密集型。(3) 运算任务的数据量。Thanks
文档评论(0)