오늘은 빅데이터의 여러 가지 단계 중에서도 수집에 관련한 내용을 알아보려고 합니다.



빅데이터에서는 기존 RDBMS로는 방대한 양의 데이터를 처리하는 데 유지보수 비용이 많이 들 뿐만 아니라, 많은 시간과 하드웨어 성능 또한 가장 중요한 비정형 데이터를 처리하는 어려움때문에 잘 쓰이지 않습니다.

 

때문에 기존 RDBMS의 문제를 보완하고 대용량의 데이터를 효과적으로 수집하는 기술들이 무엇이 있는지 자세히 알아보도록 하겠습니다.



*데이터의 흐름은 수집 후 저장이지만 저장소가 없다면 수집기의 동작을 확인할 수 없기 때문에 데이터 저장소 준비가 우선이라고 합니다!!




1. Flume(물 미끄럼틀)


-플럼은 클라우데라에서 2010년에 공개한 오픈 소스 프로그램(로그 수집기)입니다.


-매우 단순한 구조로, 몇가지 설정만으로 구동 가능합니다.

 

-수많은 서버에 분산된 대용량의 로그 데이터를 한곳으로 모을 수 있으며, 안정성과 가용성이 높습니다. 

 

-데이터 흐름


데이터 플로우는 이벤트를 전송하고 수집하는 과정으로 이루어져 있다. agent 하나를 일련의 논리 노드(에이전트)라 칭하고 논리 노드들은 Flume master들에 의해 설정된다.
에이전트는 노드는 일반적으로 로그를 생성하는 곳이며, 로그들을 컬렉터에 보내고 컬렉터에서는 데이터를 모은 후 저장소에 저장한다.

 

에이전트 내부는 Source, Channel, Sink로 구성된다.

Sink는 수집한 데이터를 전송할 대상을 지목하고, Source는 수집할 데이터에 대한 설정이다

Channel은 일시적인 저장소라 생각하면 될 것 같다.

 

*Flume에 대하여 더 정보를 얻고 싶다면 아래 사이트에 들어가 보는 것도 좋은 경험일 것 같다.

http://flume.apache.org/FlumeUserGuide.html

 

 

 

2. Kafka


-카프카는 LinkedIn에서 2010년에 낸 것으로 초기 아파치의 프로젝트입니다.


-실시간 스트리밍 데이터 파이프라인을 안정적으로 시스템 또는 응용 프로그램 간에 데이터를 구축합니다

 

-실시간 스트리밍 응용 프로그램을 변환 또는 데이터의 흐름에 반응합니다

 

-Flume이 push방식이라면 Kafka는 발행-구독(pub- sub)방식입니다.

 

 주요 4개의 API중 Producers API와 Consumers API을 보도록 하겠습니다.

 Producers API는 특정 topicsrecords를 생성한 후 메시지를 카프카 클러스터에 출간합니다.

 Consumers API는 특정 topicsrecords구독하는 소비자가 메시지를 가져가 처리합니다. 

 

-클러스터에서 소비자에게 건네는 과정은 다음 그림과 같습니다

클러스터 안에는 Broker, Zookeeper가 있고, Broker는 topic 기준으로 메시지를 관리합니다. Zookeeper는 이러한 메시지를 분산 처리할 때 사용합니다.

 

 

Flume과 마찬가지로 좀 더 자세하게 알고 싶으신 분은

http://kafka.apache.org 에 접속하여 궁금한 부분을 ctrl+f 해서 찾아보심이 ㅋㅋㅋ
 

 

 

 

 

 

 

 

'Programming > 빅데이터' 카테고리의 다른 글

[빅데이터]수집  (0) 2017.08.10
하둡이란  (0) 2017.07.18
빅데이터란?  (0) 2017.07.09
데이터의 형태  (0) 2017.07.09

+ Recent posts