我正在处理带有map的一个文件reduce文件大小是1Gb而我在HDFS中的默认块大小是64 MB所以对于这个例子,有多少输入拆分和有多少映射器?
答案 0 :(得分:0)
Number of splits=Number of mappers.
因此,如果您的文件大小为1GB(1024/64),则将运行16个映射器。
您的输入拆分与块大小不同。块是包含实际数据的物理表示,但输入拆分只是一个逻辑表示,它只包含拆分长度和拆分位置。
然而,地图绘制者的数量也取决于各种因素。
issplittable()
设置为false,那么您的文件不可拆分,那么您也将运行一个映射器。job.setNumReduceTasks()
会这样做。如果未设置,则默认情况下减速器的数量为1。我认为输入拆分的数量取决于输入文件的大小。
答案 1 :(得分:-1)
没有块=没有Mappers; 如果只有一个文件的大小为1 GB,块大小为64 MB,则没有块(块)=> 1026 MB / 64 MB = 16。所以没有mappers = 16。 默认情况下,我们只会获得一个Reducer,如果我们想运行更多的reducer,你可以设置job.setNumReduceTasks();