输入分裂的数量等于Map器的数量?

qaxu7uf2  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(376)

我正在处理一个带有map reduce的文件,文件大小是1gb,我在hdfs中的默认块大小是64MB,那么对于这个示例,有多少个输入拆分,有多少个Map器?

mlnl4t2r

mlnl4t2r1#

块数=Map器数;如果只有一个文件的1 gb大小和块大小为64 mb,则块(块)数=>1026 mb/64 mb=16。所以Map绘制者的数量=16。默认情况下,我们只会得到一个减速机,如果我们想运行更多的减速机,您可以设置job.setnumreducetasks();

e4yzc0pl

e4yzc0pl2#

Number of splits=Number of mappers.

因此,如果您的文件大小是1gb(1024/64),您将有16个Map器运行。
输入拆分与块大小不同。块是包含实际数据的物理表示,但输入拆分只是包含拆分长度和拆分位置的逻辑表示。
然而,Map绘制者的数量也取决于各种因素。
如果您的文件被压缩,而这又不是一个可拆分的格式,那么您将最终由一个Map器处理整个文件。
如果 issplittable() 如果inputformat类设置为false,那么您的文件是不可拆分的,并且您将运行一个Map程序。
减速器必须在驱动程序代码中明确设置。 job.setNumReduceTasks() 我会的。如果未设置,则默认情况下减速器的数量为1。
我认为输入拆分的数量取决于输入文件的大小。

相关问题