2012-02-21 3 views
8

나는 폭풍 - 시동기의 예를 가지고 Storm에 대해 읽고 계속 놀았습니다.폭풍우를 잘 사용합니까?

나는 개념을 가지고 있다고 생각하며 많은 경우에 매우 잘 적용됩니다. 나는 이것에 대해 더 많은 것을 배우기 위해하고 싶은 테스트 프로젝트를 가지고 있지만 Storm이 실제로 이것에 적합한 지 궁금합니다.

내가 가진 개념적 문제는 '스트리밍'정의입니다. Storms는 스트림을 구독하고 실시간으로 처리하는 매력으로 작동하지만 실제로는 스트림이 아니라 처리하려는 데이터의 한정된 컬렉션을 가지고있는 것으로 보입니다.

나는 이것에 대해서만 알고 있지만, 스톰의 실시간 기능뿐만 아니라 폭풍을 쓴 Nathan이 그의 이야기에서 언급 한 다른 흥미로운 점에도 관심이있다.

그래서 사람들이 비 스트림 API를 폴링 한 다음 스트림을 에뮬레이트하기 위해 결과를 비교하는 스파우트를 작성하는지 궁금합니다.

두 번째 중요한 점은 스톰 토폴로지가 중단 될 때까지 절대로 처리를 완료하지 못하는 것인데 이는 다시 내 사례에는 적용되지 않습니다. 내 토폴로지에서 원본 데이터의 유한 목록이 완성되면 처리를 종료하고 최종 결과를 내보낼 수 있음을 알고 싶습니다.

그래서 폭풍으로는 의미가 있습니까? 아니면 잘못된 것을보고 있습니까? 그렇다면 이러한 종류의 실시간 병렬 컴퓨팅 요구 사항에 대해 어떤 대안을 제안합니까?

감사합니다.

답변

6

storm google group에 답변을 찾았습니다. DRCP 토폴로지는 DRCP 스파우트에 의해 스트림으로 수신 된 매개 변수가있는 튜플을 생성 한 다음 처리가 완료되면 (요청 ID라는 고유 ID 사용) 다시 나타냅니다.

동일한 스레드에서 데이터가 충분히 크지 않고 항상 완전히 처리 될 수있는 경우가 아니라면 hadoop이 이러한 경우에 가장 적합하다고 말합니다.

0

스톰을 사용하여 유한 데이터 수집을 처리하고 모든 요소가 처리되면 중지 할 수 있습니다. DRPC 토폴로지는이를 수행하는 한 가지 방법이지만 자체 솔루션을 구사하는 것은 어렵지 않습니다.

아이디어는 유한 데이터 집합의 어떤 요소가 처리되었는지 여부를 추적하는 것입니다. ack() 및 fail() 메소드를 사용하여 Spout에서 쉽게 수행 할 수 있습니다.

0

신속하고 대화식으로 사용할 수있는 개발자 친화적 인 일괄 처리 솔루션을 찾고 계신다면 폭풍 대신 Apache Spark을 확인하실 수 있습니다.

Trident/DRPC는 연속 계산에 대해 쿼리를 실행할 때 유용합니다.