据我所知,将为一次拆分分配一个映射器。
但是当我将Split大小放入实际Block大小时会发生什么?
例如:如果我将Block size = 128 Mb和Split Size = 130 Mb,那么在这种情况下将运行多少个映射器。它是一个映射器还是多个映射器?
答案 0 :(得分:0)
可以将分割大小设置为大于块大小。但是在这种情况下,获取一个拆分映射器应该从hdfs读取几个块,这可能导致网络传输,因为块n和块n + 1可能不在一个数据节点中。
在您的示例中,如果您设置splitsize = 130mb并且您的输入数据是一个130mb文件,那么您将拥有1个映射器。
答案 1 :(得分:0)
如果InputSplit超过HDFS块大小,则映射器最终会从多个块中读取数据。
在您的示例中,如果块大小= 128 MB且计算拆分大小= 130 MB,则将生成一个将从两个不同块中读取的Map任务。
如何读取这两个块是由HDFS层提取的。