MapReduce или пакетная работа? - PullRequest
3 голосов
/ 12 июля 2011

У меня есть функция, которую нужно вызывать для большого количества файлов (1000). Каждый из них не зависит от другого и может работать параллельно. Вывод функции для каждого из файлов не требуется (в настоящее время) объединять с другими. У меня много серверов, на которых я могу это масштабировать, но я не уверен, что делать:

1) Запустите MapReduce на нем

2) Создайте 1000 рабочих мест (у каждого есть свой файл, над которым он работает).

Будет ли одно решение предпочтительнее другого?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 12 июля 2011

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

Итак, я бы предпочел запустить несколько динамически создаваемых пакетных файлов.

Или, в качестве альтернативы, используйте диспетчер кластеров и планировщик заданий, например SLURM https://computing.llnl.gov/linux/slurm/

SLURM: очень масштабируемый менеджер ресурсов

SLURM - менеджер ресурсов с открытым исходным кодом, разработанный для кластеров Linux всех размеров. Он обеспечивает три ключевые функции. Сначала он выделяет эксклюзивный и / или неисключительный доступ к ресурсам (узлам компьютера) пользователи на некоторое время, чтобы они могли выполнять работу. Во-вторых, это обеспечивает основу для запуска, выполнения и мониторинга работы (обычно параллельная работа) на множестве выделенных узлов. Наконец, это разрешает конфликт за ресурсы, управляя очередью ожидания работа.

2 голосов
/ 21 июля 2011

Поскольку это всего 1000 файлов (а не 1000000000 файлов), полная установка HADOOP, вероятно, излишня.GNU Parallel пытается заполнить пробел между последовательными сценариями и HADOOP:

ls files | parallel -S server1,server2 your_processing {} '>' out{}

Возможно, вы захотите узнать о --sshloginfile.В зависимости от того, где хранятся файлы, вы также можете узнать --trc.

Посмотрите вступительное видео, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ

...