[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