📖 WIPIVERSE

🔍 현재 등록된 정보: 73,192건

아파치 스톰

아파치 스톰(Apache Storm)은 실시간 분산 컴퓨팅 시스템으로, 대량의 스트리밍 데이터를 안정적이고 효율적으로 처리하기 위해 설계된 오픈 소스 프레임워크이다. 네이선 마츠(Nathan Marz)가 백타입(BackType)에서 개발하여 트위터에 인수된 후 아파치 재단에 기증되었으며, 현재는 아파치 최상위 프로젝트로 관리되고 있다.

주요 특징:

  • 실시간 처리: 스톰은 지속적으로 발생하는 데이터 스트림을 거의 실시간으로 처리할 수 있다. 마이크로 배치 처리를 통해 낮은 지연 시간을 보장한다.

  • 분산 처리: 스톰 클러스터는 여러 대의 서버로 구성되어 있어 데이터 처리 작업을 분산하여 처리량을 늘릴 수 있다.

  • 결함 허용: 스톰은 작업자가 실패할 경우 자동으로 작업을 재할당하여 안정성을 유지한다.

  • 확장성: 스톰 클러스터는 필요에 따라 서버를 추가하여 쉽게 확장할 수 있다.

  • 다양한 언어 지원: 스톰은 다양한 프로그래밍 언어(자바, 파이썬, 루비 등)로 토폴로지를 작성할 수 있도록 지원한다.

  • 토폴로지 기반: 스톰은 데이터 처리 로직을 토폴로지(Topology)라는 방향성 비순환 그래프(Directed Acyclic Graph, DAG) 형태로 정의한다. 토폴로지는 স্পআઉট(Spout)과 볼트(Bolt)로 구성된다.

    • 스파우트(Spout): 데이터 스트림의 소스 역할을 한다. 외부 시스템(예: 메시지 큐, 데이터베이스)에서 데이터를 읽어와 볼트로 전달한다.
    • 볼트(Bolt): 데이터 처리 로직을 수행하는 컴포넌트이다. 스파우트 또는 다른 볼트로부터 데이터를 받아 처리하고, 결과를 다른 볼트 또는 외부 시스템으로 전달한다.

활용 분야:

  • 실시간 분석: 웹사이트 클릭 스트림 분석, 소셜 미디어 감성 분석, 네트워크 트래픽 분석 등

  • 사기 탐지: 실시간 거래 데이터를 분석하여 이상 거래를 탐지

  • IoT 데이터 처리: 센서 데이터 스트림을 실시간으로 처리하여 모니터링 및 제어

  • 온라인 광고: 실시간 입찰(Real-Time Bidding, RTB) 시스템 구축

대안 기술:

  • 아파치 플링크(Apache Flink)
  • 아파치 카프카 스트림즈(Apache Kafka Streams)
  • 아파치 샘자(Apache Samza)

참고 자료: