빅데이터 수집 개요
"정보 없이 데이터만 가질 수 있다. 하지만 데이터 없이 정보를 가질 수는 없다." - 대니얼 키즈 모란
빅데이터 수집에 활용할 기술
1. 플럼 (Flume)
공식홈페이지 | http://flume.apache.org | |
주요 구성 요소 | Source | 수집한 데이터를 Channel로 전달 |
Sink | 수집한 데이터를 Channel로 전달받아 최종 목적지에 저장하기 위한 기능 | |
Channel | Source와 Sink를 연결하며, 데이터를 버퍼링하는 컴포넌트로 메모리, 파일, 데이터베이스를 채널의 저장소로 활용 | |
Interceptor | Source와 Channel 사이에서 데이터 필터링 및 가공하는 컴포넌트 | |
Agent | Source → (Interceptor) → Channel → Sink 컴포넌트 순으로 구성된 작업 단위로 독립된 인스턴스로 생성 |
플럼 아키텍처의 4가지 방식
1) 가장 단순한 플럼 에이전트 구성으로 특별한 처리 없이 단순 수집/적재
2) Interceptor를 추가해 데이터를 가공하고 데이터의 특성에 따라 Channel에서 다수의 Sink 컴포넌트로 라우팅이 필요할 때 구성
3) 한 개의 플럼 에이전트 안에서 두 개 이상의 Source-Channel-Sink 컴포넌트 구성
4) 수집해야 할 원천 시스템은 한 곳이지만 높은 성능과 안정성이 필요할 때 주로 사용되는 아키텍처
플럼 에이전트 5에서 집계(aggregation)하고 플럼 에이전트 6으로 이중화하여 성능과 안정성을 보장하는 구성
2. 카프카 (Kafka)
MOM(Message Oriented Middleware) 소프트웨어 중 하나로서 대규모로 발생하는 메시지성 데이터를 비동기 방식으로 중계하는 역할
공식 홈페이지 | http://kafka.apache.org | |
주요 구성 요소 | Broker | 카프카의 서비스 인스턴스로서, 다수의 Broker를 클러스터로 구성하고 Topic이 생성되는 물리적 서버 |
Topic | Broker에서 데이터의 발행/소비 처리를 위한 저장소 | |
Provider | Broker의 특정 Topic에 데이터를 전송(발행)하는 역할로서 애플리케이션에서 카프카 라이브러리를 이용해 구현 | |
Consumer | Broker의 특정 Topic에서 데이터를 수신(소비)하는 역할로서 애플리케이션에서 카프카 라이브러리를 이용해 구현 |
카프카 아키텍처 유형 3가지
1) 카프카 서버 1개, Broker 1개 : 업무 도메인이 단순할 때 이용
2) 카프카 서버 1개, Broker 2개 : 메시지 처리를 분리 관리해야 할 때 이용
3) 카프카 서버 2개, 멀티 브로커 : 대규모 발행/소비 데이터 처리에 적합, 물리적으로 나눠진 브로커 간의 데이터 복제가 가능해 안정성이 높음, 업무 도메인별 메시지 그룹을 분류할 수 있어서 복잡한 메시지 송/수신에 활용에 적합
카프카를 활용하는 목적은 플럼이 아주 빠르게 발생하는 데이터를 실시간으로 수집하게 되면 이를 최종 목적지에 전달하기 전 중간에서 안정적인 버퍼링 처리를 위함입니다.
'빅데이터기술' 카테고리의 다른 글
[데이터엔지니어링] 3. 가상 머신 복제 (3개의 서버 구축) (0) | 2021.07.15 |
---|---|
[데이터엔지니어링] 2. CentOs 6 환경 설정 (빅데이터 소프트웨어 설치 준비) (0) | 2021.07.10 |
[데이터엔지니어링] 1. 가상화 환경 구축 (VirtualBox, CentOs 6 설치) (0) | 2021.07.07 |
댓글