假设我有200个输入文件和20个节点,每个节点有10个映射器槽。Hadoop是否总是均匀地分配工作,这样每个节点将获得10个输入文件并同时启动10个映射器?有没有办法强迫这种行为?
使用多少映射器取决于输入—特别是输入分割。在您的例子中,200个文件可以提供给200个映射器。但真正的答案要复杂一些。这取决于
-
文件大小:如果文件大于块大小,则块大小的块被发送到映射器
-
是可分割的文件。例如,gzip压缩文件不能被分割。一个完整的文件到一个映射器(即使文件比块大小大)