2012-02-21 6 views
8

Я читал около Storm и играл с примерами от штормового стартера.Хорошо использовать шторм?

Я думаю, что у меня есть концепция, и это очень хорошо подходит ко многим случаям. У меня есть тестовый проект, который я хочу сделать, чтобы узнать больше об этом, но мне интересно, подходит ли Storm для этого.

Концептуальная проблема, с которой я сталкиваюсь, - это определение «потокового». Кажется, что Storms будет работать как очарование, подписывающееся на поток и обрабатывающее его в реальном времени, но у меня действительно нет потока, а скорее конечный набор данных, которые я хочу обработать.

Я знаю, что для этого существует хаоп, но меня интересуют возможности Шторма в реальном времени, а также другие интересные моменты, которые Натан, который написал Шторм, упоминает в своих беседах.

Так что мне было интересно, люди пишут Spouts, которые опросили API без потоковой передачи, а затем, возможно, результаты могут быть эмулированы потоком?

Второй важный момент, похоже, что топология Storm никогда не заканчивает обработку до тех пор, пока не прервется, что опять не относится к моему делу. Я хотел бы, чтобы моя топология узнала, что как только мой конечный список исходных данных будет завершен, обработка может завершиться, и конечный результат может быть испущен.

Итак, все это имеет смысл в условиях Шторма или я смотрю на неправильную вещь? Если да, то какие альтернативы вы предлагаете для такого рода параллельных вычислений в реальном времени?

Спасибо!

ответ

6

Нашел ответ в storm google group. Похоже, что топологии DRCP будут генерировать кортеж с параметрами, которые принимаются носителем DRCP в качестве потока, а затем укажут назад, когда обработка завершится (используя уникальный идентификатор, называемый Request ID).

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

0

Возможно использовать Storm для обработки конечного набора данных и остановки после обработки всех элементов. Топологии DRPC - это один из способов сделать это, но катить ваше собственное решение не сложно.

Идея состоит в том, чтобы отслеживать, какие элементы в вашем конечном наборе данных были обработаны или нет, , что легко сделать в Spout с использованием методов ack() и fail().

0

Если вы ищете быстрое, интерактивно используемое и совместимое с разработчиками решение для пакетной обработки, вы можете посмотреть на Apache Spark вместо Storm.

Trident/DRPC более полезен, когда вы хотите запускать запросы при непрерывном вычислении.