Я изучаю способность выполнять обработку данных в реальном времени в нашей настройке, и у меня есть вопрос о том, как действовать.Совокупные отдельные потоки потоков в Spark
Таким образом, текущие настройки (или, как мы намерены это делать) выглядит следующим образом:
- Сервер генерирует лога через Rsyslog в папку на каждый клиент.
- Сервер B создает лог-файлы через Rsyslog в папку для каждого клиента.
Оба сервер А и B генерируют до 15 логов (1 на одного клиента) в папке каждого клиента, структура выглядит следующим образом:
/var/log/CUSTOMER/logfile.log
На сервере C мы имеем Подводящий канал раковина работает, что прислушивается к сообщениям Rsyslog tcp с сервера A и сервера B. В настоящее время для тестирования у нас есть только 1 приемник для одного клиента, но я думаю, что нам понадобится 1 сток для каждого клиента.
Этот потолочный слив затем пересылает эти строки в приложение Spark, которое должно собирать результаты для каждого клиента.
Теперь мой вопрос: как я могу убедиться, что Spark (streaming) будет агрегировать результаты для каждого клиента? Итак, скажем, каждый клиент будет иметь собственный приемник Flume, поэтому как я могу убедиться, что Spark объединяет каждый поток дымовых газов отдельно и не смешивает 2 или более потока потоков вместе?
Или Кафка более подходит для такого рода сценариев?
Любые идеи были бы оценены.
Сколько клиентов вы планируете иметь? Насколько важна доступность событий? Что вы делаете с этими данными? Чтобы сделать архитектурное предложение, вам действительно нужно очень хорошо понимать как инструменты, так и ваше приложение. –
Около 15 клиентов на данный момент могут (и будут увеличиваться). Доступность событий: должна быть способна повторно отправляться после потери соединения. Данные будут вставлены в базу данных для отображения в приложении. – darkownage
Как быстро вам нужны ваши результаты? Сколько у вас * потребителей? –