Hadoop基础-MapReduce的工作原理第二弹
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Split(切片)
1>.MapReduce处理的单位(切片)
想必你在看MapReduce的源码的时候,是不是也在源码中看到了一行注释“//Create the splits for the job”(下图是我跟源码的部分截图),这个切片是MapReduce的最重要的概念,没有之一!因为MapReduce处理的单位就是切片。
2>.逻辑切割
还记得hdfs存储的默认单位是什么吗?没错,默认版本是块(2.x版本的默认大小是128M),在MapReduce中默认处理的单位就是Split。其实切片本质上来说仍然是块,只不过和hdfs中的块是有所不同的。我们知道hdfs在存储一个大于1G的文件,会将文件按照hdfs默认的大小进行物理切割(将一个文件强行拆开,所有文件都是支持物理切割的!),放在不同的DataNode服务器上,而咱们的MapReduce的Split只是逻辑切割。
所谓的逻辑切割会判断切割处是否是行分隔符,换句话说,他在切割文件的时候并不能想物理切割哪有按照指定大小切割,而是选择整行数据。
二.
原文:https://www.cnblogs.com/yinzhengjie/p/9189858.html