나는 Storm의 초보자입니다. 나는 그것을 대학 프로젝트에 사용하고 있습니다.Storm에서 튜플 처리를 중지하고 다른 코드를 실행하는 방법
Spout이 MySql 데이터베이스에 링크되어 있고 토폴로지가 2 개 있고 볼트가 2 개 있습니다. 스파우트에 연결된 첫 번째 볼트는 튜플에 필요하지 않은 정보를 준비하고 제거합니다. 두 번째는 튜플을 필터링합니다.
로컬 모드에서 작업하고 있습니다.
내 질문 : 토폴로지를 실행 한 후 내 콘솔에 다음과 같은 출력이 표시되는 이유는 무엇입니까?
38211 [Thread-14-movie-SPOUT] INFO backtype.storm.daemon.executor - Processing received message source: __system:-1, stream: __tick, id: {}, [30]
67846 [Thread-10-__acker] INFO backtype.storm.daemon.executor - Processing received message source: __system:-1, stream: __metrics_tick, id: {}, [60]
67846 [Thread-8-cleaning-genre-bolt] INFO backtype.storm.daemon.executor - Processing received message source: __system:-1, stream: __metrics_tick, id: {}, [60]
67852 [Thread-10-__acker] INFO backtype.storm.daemon.task - Emitting: __acker __metrics [#<TaskInfo [email protected]> [#<DataPoint [__emit-count = {}]> #<DataPoint [__process-latency = {}]> #<DataPoint [__receive = {read_pos=0, write_pos=1, capacity=1024, population=1}]> #<DataPoint [__ack-count = {}]> #<DataPoint [__transfer-count = {}]> #<DataPoint [__execute-latency = {}]> #<DataPoint [__fail-count = {}]> #<DataPoint [__sendqueue = {read_pos=-1, write_pos=-1, capacity=1024, population=0}]> #<DataPoint [__execute-count = {}]>]]
67853 [Thread-8-cleaning-genre-bolt] INFO backtype.storm.daemon.task - Emitting: cleaning-genre-bolt __metrics [#<TaskInfo [email protected]> [#<DataPoint [__emit-count = {default=1680}]> #<DataPoint [__process-latency = {}]> #<DataPoint [__receive = {read_pos=1621, write_pos=1622, capacity=1024, population=1}]> #<DataPoint [__ack-count = {}]> #<DataPoint [__transfer-count = {default=1680}]> #<DataPoint [__execute-latency = {movie-SPOUT:default=0.15476190476190477}]> #<DataPoint [__fail-count = {}]> #<DataPoint [__sendqueue = {read_pos=1680, write_pos=1680, capacity=1024, population=0}]> #<DataPoint [__execute-count = {movie-SPOUT:default=1680}]>]]
67854 [Thread-13-filtering-genre-BOLT] INFO backtype.storm.daemon.executor - Processing received message source: __system:-1, stream: __metrics_tick, id: {}, [60]
67855 [Thread-13-filtering-genre-BOLT] INFO backtype.storm.daemon.task - Emitting: filtering-genre-BOLT __metrics [#<TaskInfo [email protected]> [#<DataPoint [__emit-count = {}]> #<DataPoint [__process-latency = {}]> #<DataPoint [__receive = {read_pos=1681, write_pos=1682, capacity=1024, population=1}]> #<DataPoint [__ack-count = {}]> #<DataPoint [__transfer-count = {}]> #<DataPoint [__execute-latency = {cleaning-genre-bolt:default=0.08333333333333333}]> #<DataPoint [__fail-count = {}]> #<DataPoint [__sendqueue = {read_pos=-1, write_pos=-1, capacity=1024, population=0}]> #<DataPoint [__execute-count = {cleaning-genre-bolt:default=1680}]>]]
는 I 처리의 마지막 튜플 후 다음 행을 정상으로 간주되도록 읽었다. 그렇지 않니?토폴로지를 제출 한 후에 다른 코드를 어떻게 실행할 수 있습니까? 예를 들어, HashMap에 저장된 두 번째 볼트에서 수행 된 필터링 결과를 인쇄하려고합니다. submitTopology() 메서드가 포함 된 줄 뒤에 코드를 삽입하면 코드는 튜플 완료 전에 실행됩니다.
두 번째와 마지막 질문은 왜 스톰의 모든 예에서 나는 르네
"(1000)에 Thread.sleep"에서 볼?
아마 내 첫 번째 질문에 연결되어 있습니다.
제 질문에 대한 답변을 드리겠습니다. 미리 감사드립니다.
철저한 답장을 보내 주셔서 감사합니다. –
이 질문에 대한 답변을 보내 주시면 답변을 수락하고/또는 upvote 해주십시오. –