Apache Storm 워크플로


작동하는 Storm 클러스터에는 Nimbus와 한 명 이상의 감독자가 있어야 합니다. 또 다른 중요한 노드는 Nimbus와 감독자 간의 조정에 사용되는 Apache ZooKeeper입니다.

이제 Apache Storm의 워크플로를 자세히 살펴보겠습니다. −

  • 처음에 nimbus는 "Storm 토폴로지"가 제출될 때까지 기다립니다.

  • 토폴로지가 제출되면 토폴로지를 처리하고 실행할 모든 작업과 작업이 실행될 순서를 수집합니다.

  • 그런 다음 nimbus는 사용 가능한 모든 감독자에게 작업을 균등하게 분배합니다.

  • 특정 간격으로 모든 감독자는 하트비트를 보내 아직 실행 중임을 알립니다.

  • 감독자가 종료되고 하트비트에 하트비트를 보내지 않으면 Nimbus는 작업을 다른 감독자에게 할당합니다.

  • 후광 자체가 종료되면 감독자는 할당된 작업을 문제 없이 처리하게 됩니다.

  • 모든 작업이 완료되면 감독자는 새로운 작업이 들어올 때까지 기다립니다.

  • 동시에 종료된 nimbus는 서비스 모니터링 도구에 의해 자동으로 다시 시작됩니다.

  • 다시 시작된 네트워크는 중단된 부분부터 계속됩니다. 마찬가지로 감독자를 종료하면 자동으로 다시 시작할 수도 있습니다. 네트워크 관리자와 감독자는 모두 자동으로 다시 시작될 수 있고 둘 다 이전과 같이 계속되므로 Storm은 모든 작업이 최소한 한 번 처리되도록 보장합니다.

  • 모든 토폴로지가 처리되면 네트워크 관리자는 새 토폴로지가 도착할 때까지 기다리며 마찬가지로 관리자도 새 작업을 기다립니다.

기본적으로 Storm 클러스터에는 두 가지 모드가 있습니다.

  • 로컬 모드 - 이 모드는 모든 토폴로지 구성 요소가 함께 작동하는 것을 확인하는 가장 쉬운 방법이므로 개발, 테스트 및 디버깅에 사용됩니다. 이 모드에서는 매개변수를 조정하여 다양한 Storm 구성 환경에서 토폴로지가 어떻게 작동하는지 확인할 수 있습니다. 로컬 모드에서 Storm 토폴로지는 로컬 시스템의 단일 JVM에서 실행됩니다.

  • Production Mode - 이 모드에서는 일반적으로 다른 시스템에서 실행되는 많은 프로세스로 구성된 작동 중인 Storm 클러스터에 토폴로지를 제출합니다. Storm의 워크플로에서 설명한 대로 작업자 클러스터는 종료될 때까지 무기한 실행됩니다.