2016-05-01 1 views
0

Предположим, что у меня есть данные с 25 блоками, а коэффициент репликации равен 1. Для чтения и обработки одного блока данных картографу требуется около 5 минут. Тогда как я могу рассчитать время для одного рабочего узла? Что примерно 15 узлов? Будет ли изменено время, если мы изменим коэффициент репликации на 3? Мне действительно нужна помощь.Сколько времени требуется для обработки файла Если у меня есть только один рабочий узел?

ответ

0

Прежде всего, я бы посоветовал прочитать некоторые научные статьи по этой проблеме (Google Scholar - хорошая отправная точка).

Теперь немного обсуждения. Из моих последних экспериментов я пришел к выводу, что время обработки очень сильно зависит от количества данных, которые вы хотите обработать (имеет смысл). В нашем кластере в среднем требуется около 7-8 секунд, чтобы Mapper считывал блок размером 128 Мбайт. В настоящее время существует несколько факторов, которые нужно учитывать для того, чтобы предсказать общее время выполнения:

  1. сколько данных Mapper производит, который будет определять большеменьше время Hadoop требуется выполнить шаркая
  2. Что Редуктор делает ? Выполняет ли он итеративную обработку? (может быть медленным!)
  3. Какова конфигурация ресурсов? (сколько Mappers и Reducers разрешено запускать на одном компьютере)
  4. И, наконец, есть ли другие задания одновременно? (это может значительно замедлить работу, так как слоты вашего редуктора могут быть заняты в ожидании данных вместо того, чтобы делать полезные вещи).

Итак, для одной машины вы видите сложность задачи прогнозирования времени выполнения задания. В основном во время моего исследования я смог сделать вывод, что в среднем одна машина способна обрабатывать от 20 до 50 Мбайт/с (скорость рассчитывается по следующей формуле: общий размер ввода/общее время работы). Скорость обработки включает время постановки (когда ваше приложение запускает и загружает необходимые файлы в кластер, например). Скорость обработки отличается для разных вариантов использования и в значительной степени зависит от размера ввода и, что более важно, от количества данных, созданных Mappers (в очередной раз это значения для нашей инфраструктуры и при различной конфигурации машины вы увидите совершенно другое время выполнения).

Когда вы начнете масштабировать свои эксперименты, вы увидите среднюю улучшенную производительность, но еще раз из моего исследования я мог бы сделать вывод о том, что он не линейный, и вам нужно будет поместиться самостоятельно, для вашей собственной инфраструктуры модель с соответствующими переменные, которые будут приближаться к времени выполнения задания.

Просто, чтобы дать вам представление, я поделюсь некоторыми результатами. Скорость при выполнении определения варианта использования на 1 узле была ~ 46 Мбайт/с, для двух узлов она составляла ~ 73 Мбайт/с, а для 3 узлов - ~ 85 Мбайт/с (в моем случае коэффициент репликации был равен числу узлов) ,

Задача сложная требует времени, терпения и некоторых аналитических навыков для ее решения. Повеселись!