2014-10-01 1 views
7

다른 프로세스가 파일을 던지는 디렉토리가 있습니다.Apache Storm 스파우트가 서로 통신 할 수 있습니까?

현재 Storm의 구현은이 디렉토리를 읽고 가장 오래된 파일을 선택하고 파일에 판독기를 엽니 다. 이 판독기는 스파우트 내에서 필드로 유지되므로 nextTuple()이 호출되면 파일에서 단일 행이 출력됩니다. 스파우트가 끝나면 판독기가 닫히고 새 파일이 열립니다.

처리량을 늘리려면 한 번에 여러 개의 스파우트를 읽는 것이 좋습니다. 동일한 스파이더가 같은 디렉토리의 동일한 파일에 대해 서로 대결하게되므로 스파우트간에 통신 할 수있는 방법이 있습니다. 읽을 파일? (또는 스파우트에 파일을 할당하는 전체 관리자가 있어야합니다.)

디렉토리와 파일은 HDFS에서 저장되고 읽혀집니다.

+1

파일을 읽을 수 있는지 여부를 결정할 때 읽을 수있는 잠금 파일을 만듭니다. – Leon

+1

동일한 문제와 질문이 있습니다. 마침내 어떻게 문제를 마침내 해결 했습니까? – Sk0prion

답변

3

두 개의 주둥이가 서로 통신 할 수있는 방법이 없다고 생각합니다. 그러나 시도해보십시오. https://github.com/ptgoetz/storm-signals

동물원에 의존하여 폭풍우 구성 요소간에 메시지를 보내는 BaseSignalSpout이 있습니다.

희망이 도움이됩니다.

관련 문제