Computer Science/Big data

CEP란? - (2)Spark, Storm, Esper 차이

해피단무지 2018. 7. 25. 16:54
  • Esper
    • 1990년대 부터 시작된 전통적인 Event Stream 처리 기술
    • 복합적인 Event를 참조하여 패턴을 알아차리는 기술
    • Data Window, Pattern matching 기능이 핵심
    • Continuous Query EPL 제공


  • Storm
    • 이벤트 스트림 프로세싱(처리)을 위한 분산형 컴퓨팅 프레임워크
    • 스톰은 때때로 실시간 프로세싱 하둡(Hadoop)으로 지칭됨
      • "스톰은 무한대의 데이터 스트림을 하둡의 배치 프로세싱처럼 실시간으로 쉽고 우수하게 처리한다."
      • 이를 위해, 강력한 확장성, '빠른 실패, 자동 재시작(fail fast, auto restart)'이라는 폴트 톨로런스(fault-tolerance, 고장 방지 능력)를 지원하며, 모든 튜플(tuple)의 처리를 보증
    • 주 언어: 클로저(Clojure)
      • 인풋 스트림의 일종인 스파웃(Spouts)과 프로세싱 및 아웃풋 모듈인 볼트(Bolts)를 DAG(Rirected Acyclic Graph)라는 토폴로지로 지원할 수 있도록 설계되어 있음
        • 토폴로지: 데이터 스트림 처리를 위한 작업 단위
    • 즉, 스톰은 확장성이 아주 크고, 빠르며, 내결함성이 강한, 스트림 프로세싱에 초점이 맞춰진 분산형 컴퓨팅을 위한 오픈소스 시스템
    • 출처: http://www.itworld.co.kr/news/91022


  • Spark
    • 스파크는 스톰과 마찬가지로 스트림 지향형 프로세싱을 지원, 하지만 스톰보다는 범용 분산형 컴퓨팅 플랫폼에 가까움


  • Spark or Strom?
    • 스트림 프로세싱, CEP(Complex Event Processing) 스타일의 프로세싱이 중심이 되고, 전용 클러스터를 이용한 독창적인 프로젝트를 추진하는 경우 => Storm
    • 기존의 하둡 또는 메소스 클러스터를 이용하고 있거나, 프로세싱에서 그래프 처리, SQL 액세스, 배치 프로세싱의 비중이 크다면 => Spark