Будет ли Hadoop всегда равномерно распределять работу между узлами?


Допустим, у меня есть 200 входных файлов и 20 узлов, и каждый узел имеет 10 слотов mapper. Будет ли Hadoop всегда распределять работу равномерно, так что каждый узел получит 10 входных файлов и одновременно запустит 10 картографов? Есть ли способ заставить себя вести себя подобным образом?

1 3

1 ответ:

Количество используемых картографов определяется входными данными-в частности, входными разбиениями. Таким образом, в вашем случае 200 файлов могут быть переданы 200 картографам. Но реальный ответ немного сложнее. Это зависит от

  • Размер файла: если размер файла больше размера блока, то блок размером с кусок отправляется в картограф

  • Являются ли файлы расщепляемыми. например, сжатые файлы gzip нельзя разделить. И один весь файл переходит к одному картографу (даже если файл больше чем размер блока)