[실시간 분석 시스템] 데이터 수집 #1 오픈 소스 수집기 비교

 

데이터 분석을 하기 위해서는 가장 먼저 고려해야 할 시스템이 수집 시스템, 즉, Data Collector 이다. 수집은 간단해 보이지만, 데이터 처리 플랫폼 전체의 아키텍처에 있어서 가장 중요한 요소이며 이후 구축할 여러가지 판단요소의 기준점이 될 수 있다. 수집은 현재 시스템의 다양한 곳에 존재하는 로그, 데이터 등이 대상이다.

수집 시스템을 구성하기 위한 다양한 오픈 소스들이 존재한다. 이번 글에서는 수집을 위한 오픈 소스들의 종류와 간단한 특징에 대해서 알아보고, 다음 글에서는 여러 오픈 소스 중에서 선택한 두 가지 오픈소스에 대해 상세한 설명을 하는 것으로 수집에 대해 풀어보고자 한다. 미리 얘기하자면 해당 두 가지 오픈 소스는 Apache Sqoop과 Apache Flume이다. 그리고, 수집할 데이터를 저장할 Data Store 은 분산 파일 시스템인 HDFS, 즉, Apache Hadoop FileSystem을 사용한다는 전제를 둔다. 이 오픈 소스들은 kth 의 대용량 실시간 분석 솔루션인 DAISY(Data Intelligence System)의 수집 시스템의 일부로서 실제 서비스에도 현재 적용되어 안정적으로 운용되어지고 있는 것들이다. 물론, 대부분의 플랫폼에서 선택한 오픈 소스이기도 하다.

새롭게 만드는 서비스,시스템이라면 로그 포맷, 생성 위치 등을 정하겠지만, 대부분 기존 서비스에서는 이미 어떤 형식으로든 분석의 대상이 될 로그가 생성되어 있을 것이다. 어떤 시스템은 RDBMS에 로그 테이블을 만들어 파티션하고 샤딩 등을 해서 저장하는 경우도 있을 것이고, 어떤 시스템은 웹서버, WAS의 Access Log 형태로 파일을 Disk에 롤링해가며 저장하는 경우도 있을 것이고, 전사적인 로그 포맷이 정해져 있어 JSON 또는 CSV 등의 형태로 특정 폴더에 특정 조건으로 잘 정의되어 저장하는 경우도 있을 것이다.

 

RDBMS로 부터 수집 : Apache Sqoop


 

RDBMS에 저장되어 있는 경우라면 쉽고 유용한 오픈 소스가 Apache Sqoop 이다. Sqoop은 Sql to Hadoop 의 약자로, 간단한 CLI(Command Line Interface)로 Oracle, MySQL 등의 RDBMS의 특정 테이블 또는 특정 조건에 맞는 데이터를 HDFS로 쉽게 옮길 수 있으며, Hive, Pig, HBase 등으로 바로 옮겨 확인 할 수 있다. 반대로 HDFS에 저장되어 있는 데이터를 RDBMS로 옮길 수도 있다. 로그 뿐 아니라 분석할 때 필요한 메타성 데이터를 가져올 때도 유용하다. Apache Sqoop에 대해서는 다음 글에서 보다 상세히 다룰 예정이다.
 

로그 파일 수집하기 : Apache Flume, Facebook Scribe, Apache Chukwa

로그 파일이 서비스의 특정 서버의 특정 위치에 파일을 생성하고 있는 경우나 RPC로 로그를 전달할 경우에 적용이 가능한 여러가지 오픈 소스들이 있다. 그러나, 그 이전에 먼저 명확히 해야 할 것은 로그를 실시간으로 수집,분석해야할 사항이 있는가? 아니면, 배치성의 분석만 필요한 것이가? 그리고, 수집과 동시에 실시간 분석을 할 것인가? 아니면 우선 저장하고 이후에 분석할 것인가에 따라 여러가지 경우의 수가 발생하게 된다. 선택한 수집 오픈소스의 활용, 옵션등이 달라지게 될 것이다. 이후에 언급하겠지만, RabbitMQ, ZeroMQ 와 같은 메시징 큐가 필요 할 수 도 있고, Apache Kafka 와 같은 또 다른 Layer가 필요하게 될 것이다.

우선 가장 많이 알려져 있는 수집기 오픈소스는 Apache Flume, Facebook Scribe, Apache Chukwa, 최근에 Netflix에서 공개한 suro 등등이 있다. 수집기 오픈소스에 대해 알아보기 전에, 대용량의 고속의 이벤트 데이터(로그)를 수집하는 시스템에 필요한 요건은 아래와 같다.

- 확장성 : 수집대상 서버는 무한대로 확장된다. 수십에서 수천, 수만대로 수집대상 서버는 늘어 날 것이다.
- 안정성 : 수집되는 데이터가 유실되지 않고 안정적으로 저장되어야 한다.
- 유연성 : 다양한 포맷의 데이터, 다양한 프로토콜을 지원해야 한다.
- 실시간성 : 수집된 데이터를 실시간으로 반영해야 한다.

위에서 언급한 수집기 오픈 소스중 3가지 Flume, Scribe, Chukwa를 간단 비교요약하면 아래와 같다.



위 간단 비교는 개인적인 의견이 포함되어 있다. 하지만, 최근의 빅데이터 플랫폼에서 수집 부분에 사용되는 오픈 소스중 가장 많이 사용이 언급되어지고, 발전이 보여지는 오픈소스는 단연 Apache Flume이라 할 수 있을 것이다. 하지만, 현재 서비스, 시스템의 상황에 맞게 위 오픈 소스 뿐 아니라 다양한 오픈 소스를 검토해서 적합한 것을 적용해야 한다.

빅데이터 분석 플랫폼의 가장 첫 관문인 수집부분은 위에서도 잠시 언급하였지만, 서비스 특성에 따라 위 수집기 이외에도 메시징 큐 등의 여타 Layer도 필요할 수 있으므로 다양한 검토가 필요한 부분이다.

다음 글에선 위에서 언급한 Apache Sqoop, Apache Flume에 대해 자세히 살펴볼 예정이다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net

 

[출처] http://www.dbguide.net/knowledge.db?cmd=specialist_view&boardUid=176130&boardConfigUid=108&boardStep=0&categoryUid=

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86114
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78624
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95339
18 TensorFlow Lite 101 - MoblieNet 맛보기 file 졸리운_곰 2018.05.30 1089
17 Apache MXNet에서 사전 트레이닝된 모델을 사용해 보세요. 졸리운_곰 2018.05.30 988
16 MXNet을 활용한 이미지 분류 앱 개발하기 file 졸리운_곰 2018.05.30 1424
15 세상에 있는 (거의) 모든 머신러닝 문제 공략법 file 졸리운_곰 2018.05.30 1119
14 sklearn 내부의 pickle lib 를 통해 모델을 저장하고 다시 로드하여 재사용할 수 있다. 졸리운_곰 2018.05.30 1636
13 텐서플로우 기반 딥러닝 훈련 모델 파일 저장, 로딩 및 재활용 file 졸리운_곰 2018.05.30 1765
12 TensorFlow 모델을 저장하고 불러오기 (save and restore) 졸리운_곰 2018.05.30 1637
11 텐서플로우(TensorFlow)를 이용해서 글자 생성(Text Generation) 해보기 – Recurrent Neural Networks(RNNs) 예제 – Char-RNN file 졸리운_곰 2018.05.13 1121
10 외장형 그래픽카드로 우분투에서 텐서플로우 사용 How to setup an eGPU on Ubuntu for TensorFlow file 졸리운_곰 2018.05.09 1426
9 Keras and NLTK 케라스를 이용한 NLTK 자연어처리 졸리운_곰 2018.05.08 1600
8 Windows7에서 "처음 심층 학습 프로그램」을 사경 보면 (1-2) 제 1 장 후반 file 졸리운_곰 2018.05.08 1138
7 CSLAIER CSLAIER에 의한 LSTM file 졸리운_곰 2018.05.08 1661
6 Tensorboard 사용하기 1 file 졸리운_곰 2018.05.08 1410
5 텐서보드 사용법 file 졸리운_곰 2018.05.08 1407
4 Ubuntu 18.04 Settings for TensorFlow 설치 file 졸리운_곰 2018.05.08 1181
3 딥러닝용 서버 설치기 file 졸리운_곰 2018.05.07 1391
2 Installing Tensorflow GPU on Ubuntu 18.04 LTS file 졸리운_곰 2018.05.06 1215
1 TensorFlow Lite 101 - MoblieNet 맛보기 file 졸리운_곰 2018.04.07 1272
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED