Выбор внутреннего хранилища и конвейера обработки в масштабируемой архитектуре очистки - PullRequest
0 голосов
/ 25 июня 2019

У меня проблема с хранением и обработкой данных, и мне нужен ваш совет. Мне нужно получить html-файлы URL-адресов, которые поступают в виде потока из очереди RabbitMQ (хорошо, например, это можно сделать с помощью Scrapy). HTML-файлы должны быть сохранены где-то для дальнейшей обработки. Размер каждого файла составляет от 500 КБ до 4 МБ, а одно задание создает от 300 000 до 1 млн. HTML-файлов. Я думал о хранении их в HDFS, но они довольно маленькие. Далее для обработки части. Каждый HTML-файл принадлежит нескольким коллекциям, которые могут выглядеть следующим образом

| html  | collection |
| ----- | ---------- |
| html1 | 1,2,3      |
| html2 | 3,4,5,6    | 

Если я хочу проверить, какова средняя длина заголовка в каждой коллекции, мне нужно будет извлечь текст заголовка из каждого html-файла, подсчитать количество символов и отправить это число нескольким «работникам» для обработки, поскольку один html принадлежит несколько коллекций.

Итак, у меня есть проблемы с этим. Во-первых, где хранить файлы HTML (монго, облачное хранилище, HDFS, другое)? Во-вторых, как спроектировать конвейер обработки данных? Я привел только один пример со средней длиной заголовка в коллекции, но на самом деле у меня будет около 200 различных параметров для обработки, и они могут быть связаны. Например, текст заголовка может быть использован напрямую или сопоставлен с количеством символов или количеством слов. Это будет 3 различных параметра для обработки. Итак, вторая часть должна быть масштабируемой и иметь некоторую поддержку обработки графиков. Он должен быть масштабируемым, так что я могу закончить, скажем, за 5 минут, независимо от того, какой был размер html-файлов заданий (это может быть 300 000 или более миллионов файлов). Должен ли Spark быть хорошим вариантом здесь?

Количество html-файлов не фиксировано. Количество коллекций не фиксировано. Количество html-файлов в коллекции не фиксировано.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...