一个小文件的hadoop并行任务
hadoop parallel tasks with one small file
我有一个由 3 个节点和一些 40Mb avro 文件组成的集群。我想并行化作业以利用多核,因为文件的每一行都是通过相同的 long-运行 算法处理的。我读到 NLineInputFormat
但我想知道是否设置配置
some_conf.set("mapred.max.split.size",some_value);
有意义吗?
是的,你是对的。如果你想通过使用你的集群处理你的文件大小为 40 MB(假设 64Mb 块大小)超过 1 个映射器,然后将 mapred.max.split.size
设置为你使用的值,默认情况下是 Long.MAX_VALUE .
拆分大小由公式计算
max(mapred.min.split.size, min(mapred.max.split.size, blocksize))
所以在你的情况下你会得到(假设你将 maxsplitsize 设置为 15MB。
max(1 byte(by default),min(15MB,64MB))
您的拆分大小将设置为 15MB。
我有一个由 3 个节点和一些 40Mb avro 文件组成的集群。我想并行化作业以利用多核,因为文件的每一行都是通过相同的 long-运行 算法处理的。我读到 NLineInputFormat
但我想知道是否设置配置
some_conf.set("mapred.max.split.size",some_value);
有意义吗?
是的,你是对的。如果你想通过使用你的集群处理你的文件大小为 40 MB(假设 64Mb 块大小)超过 1 个映射器,然后将 mapred.max.split.size
设置为你使用的值,默认情况下是 Long.MAX_VALUE .
拆分大小由公式计算
max(mapred.min.split.size, min(mapred.max.split.size, blocksize))
所以在你的情况下你会得到(假设你将 maxsplitsize 设置为 15MB。
max(1 byte(by default),min(15MB,64MB))
您的拆分大小将设置为 15MB。