Mapreduce切片机制
2017-12-18 16:42
141 查看
为什么:
一个文件比如由200MB,存储再HDFS上,又按HDFS默认块大小128MB进行切块(block)存储,且每个块(block)备份3份,那么这个文件将被切成2块存储到HDFS上。mapreduce程序相当于HDFS的客户端,每个节点上的mapreduce向HDFS拿数据时,如果没有规划好切片大小,导致节点上程序运行,需要从其他节点上拿数据,那么必然经过网络传输,会消耗网络资源,速度慢,那么这样显然不好,所以要好好规划切片。
《Mapreduce&yarn工作机制》
切片机制原理:
客户端根据用户所配置的minsize和maxsize来规划切片,客户端提交任务后,客户端程序就会调用hdfs的方法,判断需要处理的文件大小,然后再根据用户配置的参数minsize和maxsize,参数解释:
通过逻辑splitSize = Math.max(minSize, Math.min(maxSize, blockSize))确定切片的大小。
拿到参数后,就按照splitSize对文件进行切割。通过逻辑splitSize = Math.max(minSize, Math.min(maxSize, blockSize))确定切片的大小。
注意:这里由一段逻辑:
解释:SPLIT_SLOP = 1.1,即当划分后剩余文件大小除splitSize大于1.1时,循环继续,小于1.1时退出循环,将剩下的文件大小归到一个切片上去。
一个文件比如由200MB,存储再HDFS上,又按HDFS默认块大小128MB进行切块(block)存储,且每个块(block)备份3份,那么这个文件将被切成2块存储到HDFS上。mapreduce程序相当于HDFS的客户端,每个节点上的mapreduce向HDFS拿数据时,如果没有规划好切片大小,导致节点上程序运行,需要从其他节点上拿数据,那么必然经过网络传输,会消耗网络资源,速度慢,那么这样显然不好,所以要好好规划切片。
《Mapreduce&yarn工作机制》
切片机制原理:
客户端根据用户所配置的minsize和maxsize来规划切片,客户端提交任务后,客户端程序就会调用hdfs的方法,判断需要处理的文件大小,然后再根据用户配置的参数minsize和maxsize,参数解释:
minsize:默认值:1 配置参数: mapreduce.input.fileinputformat.split.minsize |
maxsize:默认值:Long.MAXValue 配置参数:mapreduce.input.fileinputformat.split.maxsize |
blocksize |
拿到参数后,就按照splitSize对文件进行切割。通过逻辑splitSize = Math.max(minSize, Math.min(maxSize, blockSize))确定切片的大小。
注意:这里由一段逻辑:
while (((double) bytesRemaining)/splitSize > SPLIT_SLOP) { int blkIndex = getBlockIndex(blkLocations, length-bytesRemaining); splits.add(makeSplit(path, length-bytesRemaining, splitSize,blkLocations[blkIndex].getHosts(), blkLocations[blkIndex].getCachedHosts())); bytesRemaining -= splitSize; }
解释:SPLIT_SLOP = 1.1,即当划分后剩余文件大小除splitSize大于1.1时,循环继续,小于1.1时退出循环,将剩下的文件大小归到一个切片上去。
相关文章推荐
- Hadoop生态之Awesome系列
- 详解HDFS Short Circuit Local Reads
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 什么是大数据?大数据能做什么?
- 白话大数据:大数据与机器学习在产品设计中的应用
- 大数据可视化大屏设计经验,教给你!
- 四大模块,带你了解阿里大数据产品技术架构
- 猎豹全球智库执行院长权静:大数据富矿的正确打开方式(附PPT文件下载)
- 单机版搭建Hadoop环境图文教程详解
- 畅想 | 城市级停车场规划的大数据架构
- 个推大数据报告:短视频APP行业研究报告
- 3个月5个版本,这是我在智慧城管大数据平台的经历复盘
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- 大数据导入之MySql设计之空间换时间的设计变更
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 利用Hadoop提供的RPC API实现简单的RPC程序