2013-06-13 2 views
0

Пример: У меня есть 100 серверов, каждая из которых имеет часть индекса поиска. Когда клиент делает поиск, я использую hadoop для прохождения этих серверов и выбора результатов. Результаты должны быть отсортированы.Сортировка Hadoop для массивных данных

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

Что такое правильный способ решить эту проблему?

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

благодаря

+1

Я не думаю, что здесь достаточно информации, чтобы ответить. Может быть, вы могли бы описать, что вы делаете на своей карте, и уменьшить количество шагов, а на каком этапе - нехватка памяти? Также может быть полезно описание того, как выглядят ваши данные. – Brabster

+0

Это чисто теоретический вопрос: что, если шаг уменьшения попадет на большой объем данных? –

+0

Hadoop для поиска? Вы серьезно? – Tariq

ответ

0

Hadoop сортирует значения, связанные с ключом после карты процесс завершается & перед потоковой передачей значений в редуктор через OutputKeyComparatorClass. Если вы хотите реализовать свой собственный алгоритм сортировки, вам нужно написать собственный OutputKeyComparatorClass.

+0

Как бы вы выбрали ключ - при условии, что ввод - это большой текстовый файл с одним номером на строку (поэтому результат будет отсортирован один). –

+1

можете ли вы разместить образец входного файла? – Chaos

0

Прежде всего, поймите, что Hadoop предназначен для пакетной обработки (думаю, 18-wheeler not Maserati), поэтому, если этот поиск имеет ограниченный срок для ваших пользователей, Hadoop не является подходящим инструментом для работы.

Это говорит о том, что интенсивность проектирования Hadoop заключается в распределенной сортировке (магия, которая возникает между преобразователем и редуктором), поэтому, если у вас заканчивается память, вы хотите организовать свои данные в парах Key-Value, что позволяет ключи, подлежащие сортировке по распределенной сортировке, которая ограничена памятью и конфигурацией кластерного кластера.

+0

Да, давайте удалим данные сами по себе или напишем ваш собственный метод и переопределим, если вы хотите реализовать настраиваемый вид – Chaos

Смежные вопросы