Apache Storm-클러스터 아키텍처

Apache Storm의 주요 특징 중 하나는 "단일 실패 지점"(SPOF) 분산 응용 프로그램이없는 빠르며 내결함성이 있다는 것입니다. 애플리케이션 용량을 늘리기 위해 필요한만큼 많은 시스템에 Apache Storm을 설치할 수 있습니다.

Apache Storm 클러스터의 설계 방식과 내부 아키텍처를 살펴 보겠습니다. 다음 다이어그램은 클러스터 설계를 보여줍니다.

Apache Storm에는 두 가지 유형의 노드가 있습니다. Nimbus (마스터 노드) 및 Supervisor(작업자 노드). Nimbus는 Apache Storm의 핵심 구성 요소입니다. Nimbus의 주요 작업은 Storm 토폴로지를 실행하는 것입니다. Nimbus는 토폴로지를 분석하고 실행할 작업을 수집합니다. 그런 다음 사용 가능한 감독자에게 작업을 배포합니다.

감독자는 하나 이상의 작업자 프로세스를 갖게됩니다. 감독자는 작업을 작업자 프로세스에 위임합니다. 작업자 프로세스는 필요한만큼 실행기를 생성하고 작업을 실행합니다. Apache Storm은 nimbus와 감독자 간의 통신을 위해 내부 분산 메시징 시스템을 사용합니다.

구성품 기술
후광 Nimbus는 Storm 클러스터의 마스터 노드입니다. 클러스터의 다른 모든 노드는 다음과 같이 호출됩니다.worker nodes. 마스터 노드는 모든 작업자 노드에 데이터를 분배하고 작업자 노드에 작업을 할당하며 실패를 모니터링합니다.
감독자 nimbus가 제공하는 지시를 따르는 노드를 Supervisor라고합니다. ㅏsupervisor 여러 작업자 프로세스가 있으며 작업자 프로세스를 관리하여 nimbus가 할당 한 작업을 완료합니다.
작업자 프로세스 작업자 프로세스는 특정 토폴로지와 관련된 작업을 실행합니다. 작업자 프로세스는 자체적으로 작업을 실행하지 않고 대신executors특정 작업을 수행하도록 요청합니다. 작업자 프로세스에는 여러 실행자가 있습니다.
집행자 실행기는 작업자 프로세스에 의해 생성되는 단일 스레드에 불과합니다. 실행자는 특정 스파우트 또는 볼트에 대해서만 하나 이상의 작업을 실행합니다.
직무 작업은 실제 데이터 처리를 수행합니다. 그래서 그것은 주둥이 또는 볼트입니다.
ZooKeeper 프레임 워크

Apache ZooKeeper는 클러스터 (노드 그룹)에서 강력한 동기화 기술을 사용하여 자신을 조정하고 공유 데이터를 유지하는 데 사용하는 서비스입니다. Nimbus는 상태 비 저장이므로 ZooKeeper에 의존하여 작업 노드 상태를 모니터링합니다.

ZooKeeper는 감독자가 후광과 상호 작용하도록 도와줍니다. 후광 및 감독자의 상태를 유지하는 책임이 있습니다.

폭풍은 본질적으로 무국적 상태입니다. 상태 비 저장 특성에는 자체 단점이 있지만 실제로 Storm이 실시간 데이터를 가장 빠르고 가장 빠른 방법으로 처리하는 데 도움이됩니다.

폭풍은 완전히 무국적 상태 가 아닙니다 . 상태를 Apache ZooKeeper에 저장합니다. 상태는 Apache ZooKeeper에서 사용할 수 있으므로 실패한 nimbus를 다시 시작하고 남은 위치에서 작동하도록 만들 수 있습니다. 일반적으로 다음과 같은 서비스 모니터링 도구monit Nimbus를 모니터링하고 오류가 발생하면 다시 시작합니다.

Apache Storm에는 다음과 같은 고급 토폴로지도 있습니다. Trident Topology상태 유지 관리와 함께 Pig와 같은 고급 API도 제공합니다. 다음 장에서 이러한 모든 기능에 대해 설명합니다.