입력과 처리 노드
Spout는 외부 원천에서 자료를 받아 스트림을 만든다. Bolt는 입력 스트림을 처리하고 필요하면 새로운 스트림을 내보낸다. 필터와 집계 및 조인처럼 여러 단계가 필요한 작업은 여러 Bolt를 연결해 표현한다.
계속 실행되는 Topology
Topology는 노드의 계산과 노드 사이의 자료 전달을 나타내는 그래프다. 한 번 제출한 뒤 입력을 계속 처리하며 중지할 때까지 실행할 수 있다. 각 노드의 병렬 작업 수와 작업 사이의 자료 분배 방식을 설정한다.
클러스터의 작업 배치
Nimbus는 코드를 배포하고 장비에 작업을 할당하며 장애를 감시한다. 작업 장비의 Supervisor는 할당에 따라 작업 프로세스를 시작하거나 멈춘다. 여러 장비가 Topology의 일부를 나누어 실행하는 구조다.
관련 문서
Apache Samza / Apache Beam / Apache Tez / ZooKeeper / MillWheel 스트림 처리 / Dataflow 처리 모델