2015-02-12 2 views
1

После делать много чтения и построения ДОУ мы все еще не уверены, является ли Бури Trident или Спарк Streaming может обрабатывать наш случай использования:Сторм Trident и Спарк Streaming: распределенная партия блокировки

  • У нас есть входящий поток данных датчиков для миллионов устройств (которые имеют уникальные идентификаторы).
  • Нам необходимо выполнить агрегацию этого потока на уровне каждого устройства. Агрегация будет считывать данные, которые уже были обработаны (и сохранены) в предыдущих партиях.
  • Ключевой момент. Когда мы обрабатываем данные для определенного устройства, нам необходимо убедиться, что никакие другие процессы не обрабатывают данные для этого конкретного устройства. Это связано с тем, что результат нашей обработки повлияет на последующую обработку для этого устройства. Эффективно нам нужен распределенный замок.
  • Кроме того, данные устройства событий должны обрабатываться в порядке, в котором произошли события.

По существу, у нас не может быть двух партий для обработки одного и того же устройства одновременно.

Может ли трезубец/искрообразование ручкой в ​​использовании?

Любые советы, оцененные.

+0

@ Matthias J. Sax: Вы получили ответ самостоятельно? Если да, то какой из них вы выбрали Trident или Spark Streaming и почему? –

+0

Я не задавал вопрос ... –

ответ

0

Поскольку у вас есть уникальный идентификатор, можете ли вы разделить их? Просто разделите id на 10, например, и в зависимости от остатка, отправьте их в разные поля обработки? Это также должно следить за тем, чтобы события каждого устройства обрабатывались по порядку, поскольку они будут отправлены в один и тот же блок. Я считаю, что Storm/Trident позволяет вам гарантировать обработку заказа. Не уверен в Искры, но я был бы удивлен, если они этого не сделают.

Довольно устрашающая проблема для решения, я должен сказать, хотя.

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