아파치 스톰
1. 개요
아파치 스톰은 아파치 라이선스 하에 개발된 분산 실시간 컴퓨팅 시스템이다. 님버스와 수퍼바이저 데몬으로 구성된 클러스터 아키텍처를 가지며, 주키퍼를 사용하여 클러스터 상태를 관리한다. 토폴로지, 스트림, 스파우트, 볼트 등의 구성 요소를 가지며, 스트림 처리 엔진 중 하나이다. 경쟁 플랫폼으로는 헤론, 스파크 스트리밍, 플링크 등이 있다.
이미지 준비중입니다.
| 개발사 | Backtype, Twitter |
|---|---|
| 최신 릴리스 버전 | 2.5.0 |
| 최신 릴리스 날짜 | 2023년 8월 4일 |
| 운영체제 | 크로스 플랫폼 |
| 저장소 | Storm Repository |
| 프로그래밍 언어 | Clojure & 자바 |
| 장르 | 분산 스트림 프로세싱 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | 아파치 스톰 공식 웹사이트 |
-
분산 컴퓨팅 구조 -
슈퍼컴퓨터
슈퍼컴퓨터는 일반 컴퓨터보다 훨씬 높은 성능을 가진 컴퓨터로, 복잡한 계산과 시뮬레이션을 수행하며, 프로세서, 메모리, 스토리지, 네트워크 등으로 구성되어 병렬 처리를 통해 높은 성능을 구현하고, 군사, 기상 예측, 과학 기술 분야, 인공지능 등 다양한 분야에서 활용되고 있다. -
분산 컴퓨팅 구조 -
맵리듀스
맵리듀스는 대용량 데이터 처리를 위해 구글에서 개발한 프로그래밍 모델이자 프레임워크로, Map과 Reduce 함수를 사용하여 데이터를 병렬 처리하며 하둡 등의 오픈 소스 구현을 통해 널리 쓰인다. -
자바 플랫폼 -
블루레이
블루레이 디스크는 DVD 후속 매체로, 청색 레이저를 사용하여 고화질 영상과 음향을 제공하며 HD DVD와의 경쟁 후 고밀도 광디스크 표준으로 자리 잡았으나 스트리밍 서비스 성장으로 녹화용 디스크 생산이 중단되는 추세이다. -
자바 플랫폼 -
자바 플랫폼, 마이크로 에디션
자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다. -
아파치 라이선스 소프트웨어 -
안드로이드 (운영체제)
구글이 개발한 리눅스 커널 기반의 모바일 운영체제인 안드로이드는 오픈소스 플랫폼으로 다양한 기기에서 활용되며 세계적으로 널리 사용되지만, 개인정보 보호 문제와 독점적 지위 남용 논란 등의 비판도 존재한다. -
아파치 라이선스 소프트웨어 -
쿠버네티스
쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링, 관리하는 오픈 소스 시스템으로, 구글의 Borg 시스템에서 영감을 받아 설계되었으며 파드, 서비스 등의 기능을 제공하여 클라우드 네이티브 환경에서 중요한 역할을 한다.
2. 개발
아파치 스톰은 아파치 라이선스 하에 개발되어 대부분의 회사에서 자유롭게 사용할 수 있다. 버전 관리는 깃(Git)을 사용하며, 문제 추적에는 아틀라시안 지라(Atlassian JIRA)가 사용된다.
2.1. 주요 릴리스
wikitable
3. 아키텍처
아파치 스톰 클러스터는 마스터 노드와 워커 노드로 구성된다. 마스터 노드는 작업을 워커 노드에 할당하고 성능을 모니터링하는 데몬인 님버스(Nimbus) 를 실행한다. 워커 노드는 작업을 다른 워커 노드에 할당하고 필요에 따라 작동하는 수퍼바이저(Supervisor) 라는 데몬을 실행한다. 스톰은 클러스터의 상태를 자체적으로 모니터링할 수 없기 때문에, 님버스와 수퍼바이저 간의 통신 및 상태 관리를 위해 [[주키퍼 (소프트웨어)|주키퍼(ZooKeeper)]] 를 사용한다.
3.1. 구성 요소
아파치 스톰 클러스터는 마스터 노드와 워커 노드로 구성된다. 마스터 노드는 작업을 워커 노드에 할당하고 성능을 모니터링하는 데몬인 님버스(Nimbus) 를 실행한다. 워커 노드는 작업을 다른 워커 노드에 할당하고 필요에 따라 작동하는 수퍼바이저(Supervisor) 라는 데몬을 실행한다. 스톰은 클러스터의 상태를 자체적으로 모니터링할 수 없기 때문에, 님버스와 수퍼바이저 간의 통신 및 상태 관리를 위해 주키퍼(ZooKeeper) 를 사용한다.
스톰은 토폴로지, 스트림, 스파우트, 볼트 등의 구성 요소를 가진다. 토폴로지는 스트림과 스파우트, 볼트로 구성된 네트워크이다. 스트림은 튜플의 무제한 파이프라인이며, 스파우트는 데이터를 스트림 튜플로 변환하여 처리를 위해 볼트로 보내는 데이터 스트림의 소스이다. 볼트는 스트림으로부터 튜플을 받아 처리하고, 결과를 다른 볼트나 외부 시스템으로 전달한다.