栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MapReduce切片机制,java架构师课程网盘

MapReduce切片机制,java架构师课程网盘


切片的规则我们需要通过阅读源代码来了解。首先我们来看下hadoop中默认的两个参数配置

1.默认参数

官网地址:http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

mapreduce.job.split.metainfo.maxsize 10000000

mapreduce.input.fileinputformat.split.minsize 0

2. 源码查看

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190404174812689.png?x-oss-process=image/wate

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

rmark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9kcGItYm9ib2thb3lhLXNtLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70)

注意:SPLIT_SLOP = 1.1,即当划分后剩余文件大小除splitSize大于1.1时,循环继续,小于1.1时退出循环,将剩下的文件大小归到一个切片上去。

// 128MB

long blockSize = file.getBlockSize();

// 128MB

long splitSize = computeSplitSize(blockSize, minSize, maxSize);

// 文件的大小 260MB

long bytesRemaining = length;

// 第一次 260/128=2.x > 1.1

// 第二次 132/128=1.03 <1.1 不执行循环

while (((double) bytesRemaining)/splitSize > SPLIT_SLOP) {

// 获取块的索引

int blkIndex = getBlockIndex(blkLocations, length-bytesRemaining);

// 将块的信息保存到splits集合中

splits.add(makeSplit(path, length-bytesRemaining, splitSize,

blkLocations[blkIndex].getHosts(),

blkLocations[blkIndex].getCachedHosts()));

// 260-128=132MB

bytesRemaining -= splitSize;

}

// 将剩余的132MB添加到splits集合中

if (bytesRemaining != 0) {

int blkIndex = getBlockIndex(blkLocations, length-bytesRemaining);

splits.add(makeSplit(path, length-bytesRemaining, bytesRemaining,

blkLocations[blkIndex].getHosts(),

blkLocations[blkIndex].getCachedHosts()));

}

3.切片总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/671588.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号