Будет ли Hadoop всегда равномерно распределять работу между узлами?
Скажем, у меня есть 200 входных файлов и 20 узлов, и у каждого узла есть 10 слотов картографа. Будет ли Hadoop всегда распределять работу равномерно, чтобы каждый узел получал 10 входных файлов и одновременно запускал 10 картографов? Есть ли способ заставить это поведение?
1 ответ
Количество используемых картографов определяется входными данными, в частности входными разбиениями. Так что в вашем случае 200 файлов могут быть переданы 200 картографам. Но настоящий ответ немного сложнее. Это зависит от
Размер файла: если файл больше, чем размер блока, то блок размером с блок отправляется в маппер
являются ли файлы разделяемыми. например сжатые файлы gzip не могут быть разделены. И весь файл целиком отправляется одному мапперу (даже если файл больше, чем размер блока)