2015-04-09 4 views
0

Я изучаю способность выполнять обработку данных в реальном времени в нашей настройке, и у меня есть вопрос о том, как действовать.Совокупные отдельные потоки потоков в 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 или более потока потоков вместе?

Или Кафка более подходит для такого рода сценариев?

Любые идеи были бы оценены.

+0

Сколько клиентов вы планируете иметь? Насколько важна доступность событий? Что вы делаете с этими данными? Чтобы сделать архитектурное предложение, вам действительно нужно очень хорошо понимать как инструменты, так и ваше приложение. –

+0

Около 15 клиентов на данный момент могут (и будут увеличиваться). Доступность событий: должна быть способна повторно отправляться после потери соединения. Данные будут вставлены в базу данных для отображения в приложении. – darkownage

+0

Как быстро вам нужны ваши результаты? Сколько у вас * потребителей? –

ответ

0

Вы можете использовать Kafka с идентификатором клиента в качестве ключа раздела. Поэтому основная идея в Kafka заключается в том, что сообщение может иметь как ключ, так и ценность. Теперь kafka гарантирует, что все сообщения для одного и того же ключа попадают в один и тот же раздел (потоки Spark понимают концепцию разделов в Kafka и позволяют вам иметь отдельный узел, обрабатывающий каждый раздел). Если вы хотите, чтобы вы могли использовать кафку для каминов, чтобы писать сообщения в Kafka.

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