Имеет ли смысл использовать Hadoop для операций импорта и Solr для предоставления веб-интерфейса? - PullRequest
1 голос
/ 16 августа 2010

Я смотрю на необходимость импортировать много данных в реальном времени в индекс Lucene. Он будет состоять из файлов различных форматов (Doc, Docx, Pdf и т. Д.).

Данные будут импортированы в виде пакетных сжатых файлов, поэтому их необходимо будет распаковать и проиндексировать в отдельный файл и каким-то образом связать с пакетом файлов в целом.

Я все еще пытаюсь понять, как этого добиться, но я думаю, что могу использовать Hadoop для обработки и импорта в lucene. Затем я могу использовать Solr в качестве веб-интерфейса.

Я слишком усложняю, так как Solr уже может обрабатывать данные? Поскольку загрузка ЦП для импорта очень высока (из-за предварительной обработки), я считаю, что мне нужно разделить импорт и случайный поиск независимо от реализации.

В: «Пожалуйста, определите много данных и в реальном времени»

«Много» данных - это 1 миллиард сообщений электронной почты в год (или более), со средним размером 1 КБ, с вложениями от 1 КБ до 20 Мегабайт и небольшим объемом данных от 20 Мегабайт до 200 Мегабайт Обычно это вложения, для которых требуется индексирование, указанное выше.

Режим реального времени означает, что он поддерживает поиск в течение 30 минут или раньше после того, как он будет готов к импорту.

ОАС:

Я бы хотел предоставить поисковый SLA на 15 секунд или меньше для поисковых операций.

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

Если вам нужна обработка, выполняемая в режиме реального времени (или почти в реальном времени), то Hadoop может оказаться не лучшим выбором для вас.

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

1 голос
/ 23 августа 2010

1 миллиард документов в год переводится примерно в 32 документа в секунду равномерно.

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

Я выполнил индексацию небольших структурированных документов в диапазоне 100 миллионов без особых проблем на одном ядре. Вы должны иметь возможность масштабировать до нескольких миллионов документов с помощью одного экземпляра Solr. (Служба извлечения текста может использовать другую машину.)

Читайте о широкомасштабном поиске в блоге Hathi Trust , где вы найдете информацию о различных проблемах и решениях Они используют Lucene / Solr.

1 голос
/ 17 августа 2010

Я предлагаю вам использовать Solr Replication для облегчения загрузки путем индексации на одном компьютере и получения с других.Hadoop не подходит для обработки в реальном времени.

...