Парсеры и инверторы

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

Для минимизации времени записи перед тем, как инверторы свернут данные, каждый парсер записывает свой сегментный файл на свой локальный диск. На этапе свертки главный узел сообщает инвертору расположение соответствующих сегментных файлов (например, г сегментных файлов для раздела “a-f’). Для каждого сегментного файла требуется только одно последовательное считывание, поскольку все данные, предназначенные конкретному инвертору, записываются парсером в отдельный сегментный файл. Такой прием минимизирует объем сетевого трафика во время индексирования.

На рисунке  продемонстрирована общая схема функций архитектуры MapReduce. Ввод и вывод часто представляют собой списки пар “ключ-значение’’, поэтому несколько заданий в рамках архитектуры MapReduce могут выполняться по порядку. Фактически этот подход был разработан для системы индексирования поисковой машины Google в 2004 году. В этом разделе описывается только одна из пятидесяти операций библиотеки MapReduce в этой системе индексирования. Другая операция библиотеки MapReduce преобразует индекс, разделенный по терминам, в индекс, разделенный по документам.

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

tel-icq