У меня есть общий вопрос о разделении файлов Hadoop и нескольких картографах. Я новичок в Hadoop и пытаюсь понять, как настроить оптимальную производительность. В настоящее время мой проект обрабатывает файлы WARC, которые являются GZIPed.Hadoop process WARC файлы
Используя текущий файл InputFileFormat, файл отправляется одному картографу и не расщепляется. Я понимаю, что это правильное поведение для зашифрованного файла. Будет ли преимущество в производительности для дешифрования файла в качестве промежуточного шага перед запуском задания, чтобы разрешить разделение задания и, следовательно, использовать больше карт? Это возможно? Имеет ли большее количество мапперов увеличение накладных расходов в латентности или лучше иметь один картограф? Спасибо за вашу помощь.
В основном это зависит от того, где вы его запускаете. если вы используете его на одной машине, тогда я не думаю, что будет значительно улучшена производительность. Но если вы используете его в распределенной среде, тогда да будет. Вы можете разделить свой файл и отправить его нескольким картам, которые в свою очередь запускаются одновременно на других машинах. Чтобы вы ответили быстрее. Предположим, что программа работает в течение 10 часов на одной машине. Теперь, если у вас есть 10 машин и карта для этих 10 машин, при параллельном выполнении 1 часа вы можете просмотреть свои результаты. –
Благодарим за отзыв. Я использую Amazon Elastic Map Reduce для обработки. Используя текущую конфигурацию, я использую только один картограф, который означает, что другие узлы сидят без дела, что кажется мне пустой тратой. В идеале я хотел бы, чтобы файл был разбит на несколько картографов, чтобы воспользоваться всеми узлами, которые я подготовил. Я думаю, вы ответили на мой вопрос о том, следует ли сначала дешифровать файл в локальном хранилище, чтобы его можно было разделить на несколько картографов через систему hadoop. – user1738628