然后我们来看看这个FileInputFormat的切片机制。我们可以看到切片实际上是基于文件的长度,切片的大小默认等于块的大小。切片是逻辑切片,不是物理切片,而是文件的单个切片,切片时不考虑整个数据。
一般默认大小就够了。当然你也可以让他打开一个maptask比如1 KB,然后再打开一个1kb的maptask,但是这样的话就有一个问题,就是太消耗性能了。一般打开一个地图任务会消耗1g内存和1个cpu,所以一般需要做一个合适的切片大小。
比如上面提到的一个案例。需要注意的是,当文件大小和块大小是1.1倍时,就会切片,否则就会弄成一片。
然后看切片数的计算公式。要知道,minSize默认为1,1,maxSize默认为long的最大值。
然后你需要知道你要把切片大小调整到大于blockSize,你可以把minSize调整到小于blockSize,你可以调整maxSize。
然后看两个API,它们用于获取切片信息。
标题:spark与mapreduce比较(提供了更多的计算函数)
链接:https://www.52hkw.com/news/rj/63033.html
版权:文章转载自网络,如有侵权,请联系删除!