Apache Flume : 데이터수집기
- 플럼(Flume)는 분산 환경에서 대량의 로그 데이터를 효과적으로 수집하여, 합친 후 다른 곳으로 전송할 수 있는 신뢰할 수 있는 서비스다.
플럼은 단순하며 유연한 스트리밍 데이터 플로우(streaming data flow) 아키텍처를 기반으로 한다.
Apache Kafka : 메시지 저장소
- 분산 메시징 시스템으로써 대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다.
Kafka는 발행-구독(publish-subscribe) 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성된다.
Apache Zookeeper : 분산 코디네이터
- 분산처리 환경에서는 많은 서버가 필요한데 예상치 못하는 네트워크장애, 서비스/기능 장애, 서비스 업그레이드,
서버 확장들의 장애 등에 문제가 발생할 경우 일괄적으로 관리해주는 시스템이다.
Elasticsearch : 검색엔진
- Lucene 기반으로 개발한 오픈소스 실시간 분산 검색 엔진(서버)으로 JSON 기반의 비정형 데이터 분산 검색과 분석을 지원합니다.
설치와 서버확장이 매우 편리하다는 장점과 실시간 검색 서비스 지원, 분산 및 병렬 처리 그리고 멀티테넌시 기능을
제공하며, 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 것이 큰 특징입니다.
Apache Kibana : 데이터 시각화
- Elasticsearch에 저장된 Data를 사용자에게 Dashboard 형태로 보여주는 솔루션이다.
Apache Storm: 실시간 분산 처리
- 실시간 데이타 분석 분산처리를 위한 시스템이다. Hadoop과 비슷하고, Hadoop에서는 Map-Reduce 작업을 실행하는 반면 Storm은 토폴로지 작업을 수행한다.
Map-Reduce 작업과 토폴로지의 차이는, Map-Reduce 작업은 정해진 데이터 세트를 처리한 후 완료되지만 토폴로지는 계속해서 메시지를 처리한다는 점이다.