빅데이터에 대해서는 별로 관심을 두려하지 않았는데 나에게 하이프 싸이클의 계몽단계(Slope of Enlightenment)로 다가왔나보다.
어찌됐든 내년에는 실시간 빅데이터 분석 시스템을 만드는 것이 목표중의 하나가 될 것 같다. 그래서 빅데이터 아키텍처에 대하여 살펴보기로 했다.
먼저 빅데이터를 다루는 개발자들이 작성한 글들을 쭈욱 살펴보니 알아두어야 할 용어가 몇가지 있었다.
- CEP (Complex Event Processing)
- ESP (Event Stream Processing)
빅데이터 시스템의 종류라고 하는데 EDA(Event Driven Architecture) 기반의 시스템으로 CEP 는 ESP 의 기능에 패턴 감지 기능이 추가된 것이라고 구분하기도 한다. CEP 와 ESP 를 알아보기전에 EDA 에 대하여 먼저 알아보기로 하였다.
EDA 란 분산된 시스템 간에 이벤트를 생성, 발행하고 발행된 이벤트를 필요로하는 수신자에게 전송, 필요에 따라 처리하는 시스템 아키텍처라고 한다.
잘 정리된 블로그 글이 있어서 처음에 개념을 잡는데 도움을 받았다.
EDA 에는 SEP(Simple Event Processing), ESP(Event Stream Processing), CEP(Complex Event Processing) 가 있으며 Event Generator, Event Channel, Event Processing Engine 로 구성되어 있다.
잘 몰랐던 점은 EDA 가 SOA 와 같이 언급된다는 것이었다. (최근에는 MSA - MicroService Architecture 와 SOA 를 많이 비교한다.) 관련된 자료에서는 Domain EDA 라고 표현하고 있다.
다시 빅데이터 아키텍처로 돌아오면 ESP 는 실시간 빅데이터 분석에 좀 더 특화된 것이고 CEP 는 패턴 감지 기능을 포함하여 ESP 보다 상위개념으로 생각할 수 있다.
최근에 살짝 살펴보고 관심을 두었던 Spring XD 도 CEP 엔진으로 구분하기도 한다. 이외에도 Esper, Drools 가 있고 ESP 에는 Storm, Spark 등이 유명한데 상세한 구분으로 정리한 글이 있으니 참고할 수 있었다.
전반적인 CEP 에 대한 사항과 ESP 를 기준으로 상세하게 설명한 글이 있는데 이것만 살펴봐도 많은 도움이 되었다.
해당 슬라이드에서는 빅데이터 분석 시스템을 만들기 위한 절차도 소개하고 있는데 간단히 요약하면 다음과 같다.
이벤트 정의 -> EPL 정의 -> Output Adapter 개발 및 등록 -> Input Adapter 개발 및 등록
최근에 가장 많은 레퍼런스를 가지고 있는 실시간 빅데이터 분석 아키텍처는 Apache Kafka + Storm 이거나 Apache Kafka + Spark 가 있다고 한다. 개인적으로는 Apache Kafka + Spring XD 를 하고 싶어 비교자료를 찾아보니 다음과 같은 글이 있었다.
성능 비교가 있었으면 좋으련만 비교 자료는 찾지 못했다.
참... 하다보니 Java Logging Framework 까지 찾아보게 되었는데 이건 나중에 정리해 봐야겠다.
실제 개발이 진행되면 개발하는 과정을 상세히 정리해 보도록 해야겠다.
글을 올린후 storm 과 spark 를 비교 설명한 글이 새로 올라왔다.
http://www.itworld.co.kr/news/91022
추가적인 비교 자료
http://www.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming
Spark 의 핵심에 대한 설명
http://www.slideshare.net/yongho/rdd-paper-review
글을 올린후 storm 과 spark 를 비교 설명한 글이 새로 올라왔다.
http://www.itworld.co.kr/news/91022
추가적인 비교 자료
http://www.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming
Spark 의 핵심에 대한 설명
http://www.slideshare.net/yongho/rdd-paper-review
댓글 없음:
댓글 쓰기