[Moscow.pm] Идеальный Map-ер и Reduce-ер
Ruslan Zakirov
ruslan.zakirov на gmail.com
Вт Янв 20 23:38:24 PST 2009
2009/1/21 Михаил Монашёв <postmaster на softsearch.ru>:
> Здравствуйте, Павел.
>
> ПТ> Здравствуйте, Михаил.
> ПТ> А вот это сильно.
> ПТ> Сорри за оффтоп.
>
> В каком смысле "сильно"? Грибы у меня забористые или идея понравилась?
> Можно поняснить.
Сильно было "Здравствуйте, Михаил."
>
> Я просто тут пытаюсь людей спровоцировать на диалог. Тема, видимо не
> всем понятна, а потому любое обсуждение ИМХО полезно.
>
> Есть например большой вопрос об эффективности использовании ssh как
> транспорта. Но при этом Disco и Parallel::MapReduce их используют. Мы
> же не MapReduce-ботнет делаем. А во внутренней сетке всё это
> запускаем. Шифрование там лишнее ИМХО.
Без шифрования можно. Поднимите сервер со своим протоколом. ssh проще
и наверное так делают по этому. Ведь транспорт не самое главное в
задаче и пока это не камень предкновения можно использовать ssh.
>
> Также есть мысль, что перед мапером должен запускаться какой-то
> итератор, который поставляет маперу данные в формате хэша. Также
> должно быть какое-то хранилище, чтобы складывать результаты работы
> маперов, потом агркгировать их по ключам и раздавать редьюсерам.
Я так понимаю, что нужно иметь несколько компонентов:
Dispatcher, Mappper, Combiner, Reducer, Reporter
И однозначно нужно иметь расшареное хранилище с локальным куском на
каждой работающей машине. Для эффективности нужно знать куда попал
кусок, когда мы его запихнули в хранилище.
Например: у нас есть результат мапинга и комбинирования (key1 =>
[val1, val1, val1]) вот мы его и запихиваем это в хранилище под ключом
taks-123-mapped-<key1>. Если мы знаем алгоритм распределения в
хранилище, то мы знаем, что все результаты необходимые для reducer'ов
собрались на одной ноде и можем ее определить и отдать задачу на
reduce конкретно данной ноде.
Мне кажется, что dispatcher тоже должен складывать задачи в хранилище.
И когда к нему приходят ноды и говорят, что им нужна задача, то
диспетчер по возможности выдает ключ от задачки с этой ноды. Простоя
быть не должно и если на этой ноде нет ничего, то можно выдать любой
другой ключик и тогда будет перенос данных по сети.
>
> Ещё есть ощущение, что редьюсеры особенно лично мне и не нужны. И
> потому MapReduce вырождается просто в запускалку в параллель на
> нескольких серверах каких-то скриптов. Хотя возможно просто не хватает
> практики, чтобы понять всю мощь MapReduce и начать использовать его.
Я заинтересовался темой потому что у меня есть задачка, которая может
стать реальным кандидатом на решение подобным алгоритмом. И
получается, что редьюсеры тоже вроде не нужны. Тогда можно не
запихивать обратно рельтат и сразу направлять reporter'у.
>
> --
>
> С уважением,
> Михаил Монашёв, SoftSearch.ru
> mailto:postmaster на softsearch.ru
> ICQ# 166233339
> http://michael.mindmix.ru/
> Без бэкапа по жизни.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
--
Best regards, Ruslan.
Подробная информация о списке рассылки Moscow-pm