Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以自定义FileInputFormat的InputSplit大小吗 让我们考虑一个MapReduce作业,生成1000个地图任务。 块大小:128MB 最小分割大小:1MB 最大分割大小:256MB_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 我们可以自定义FileInputFormat的InputSplit大小吗 让我们考虑一个MapReduce作业,生成1000个地图任务。 块大小:128MB 最小分割大小:1MB 最大分割大小:256MB

Java 我们可以自定义FileInputFormat的InputSplit大小吗 让我们考虑一个MapReduce作业,生成1000个地图任务。 块大小:128MB 最小分割大小:1MB 最大分割大小:256MB,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,块大小似乎是限制值。我们可以将分割大小增加到块大小之外吗 这是FileInputFormat.java中的函数 protected long computeSplitSize(long goalSize, long minSize, long blockSize) { return Math.max(minSize, Math.min(goalSize, blockSize)); } 基于上述函数,大于块大小的最小分割大小将满足我的要求。有人能解释一下这样设置最小分割大小的任何副作用吗

块大小似乎是限制值。我们可以将分割大小增加到块大小之外吗

这是FileInputFormat.java中的函数

protected long computeSplitSize(long goalSize, long minSize, long blockSize) {
    return Math.max(minSize, Math.min(goalSize, blockSize));
}

基于上述函数,大于块大小的最小分割大小将满足我的要求。有人能解释一下这样设置最小分割大小的任何副作用吗?

为此,您必须了解
goalSize
是指总输入大小除以
JobConf.getNumMapTasks()
。这个计算意味着:


  • 拆分将不小于文件中的剩余数据或
    minSize
  • 拆分将不大于
    goalSize
    blockSize
    中的较小值
有鉴于此,您可以理解理想的分割大小正好是1个块大小,因为它允许框架为处理分割的任务提供数据局部性。(来源:)


如果要将分割大小增加到块大小之外,这意味着每个映射器都需要进行远程读取以读取非本地数据,因此这可能会降低效率。但除非您试图创建巨大的拆分,否则我怀疑这将对性能产生关键影响。我仍然建议尽可能保持默认拆分大小,除非您有一个可靠的用例,该用例不起作用。

“拆分将不小于文件中的剩余数据或minSize。”什么是“文件中的剩余数据”?还有mapred.max.split.size的用途是什么