用一个小文件拆分hadoop并行任务

pieyvz9o  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(345)

我有一个由3个节点和一些40mb avro文件组成的集群。为了利用多核,我想并行化作业,因为文件的每一行都是通过相同的长时间运行的algo处理的。我读到了 NLineInputFormat 但我想知道是否设置配置
some\u conf.set(“mapred.max.split.size”,some\u value);
有意义吗?

pftdvrlh

pftdvrlh1#

是的,你是对的。如果您想利用集群处理大小为40 mb(假设块大小为64 mb)的文件,并且其中有多个Map器,那么请设置 mapred.max.split.size 默认情况下为long.max\u值。
拆分大小由以下公式计算

max(mapred.min.split.size, min(mapred.max.split.size, blocksize))

因此,在您的情况下,您将得到(假设您将maxsplitsize设置为15mb)。

max(1 byte(by default),min(15MB,64MB))

您的拆分大小将设置为15mb。

相关问题