반응형
1. 아파치 플럼이란?
- 오픈 소스 프로젝트로 개발된 로그 데이터 수집 기술
- 여러 서버에 산재해 있는 로그들을 하나의 로그 수집서버로 효과적으로 수집
- 스트리밍 지향의 데이터 플로우를 기반
- 로그를 수집하여 중앙 저장소에 적재하여 분석하는 시스템 구축할 때 적합
- 단순하고 유연한 구조로 다양한 유형의 스트리밍 데이터 플로우 아키텍처 구성 가능
- Flume 사용으로 신뢰성, 규모 확장성 및 기능확장성 확보 가능
- 장애시에도 수집된 로그 유실을 방지 가능
- Scale-up / Scale-out 방식의 확장을 모두 지원
- 새로운 기능을 쉽게 커스터마이징 할 수 있음
2. 플럼의 구성요소
1) 소스(Source)
- 외부 데이터 소스에 설치되는 에이전트
- 다양한 원천 시스템의 데이터를 수집하기 위해 Avro, Thrift, JMS, Spool Dir, Kafka 등 여러
- 주요 컴포넌트를 제공
- 수집한 데이터를 Channel 로 전달
- 하나 이상의 채널로 데이터 전달 가능
- 이벤트를 받아 입력된 정보를 sink 로 전달
2) 싱크(Sink)
- 데이터 목적지에 설치되는 에이전트
- 수집데이터를 Channel 로부터 전달받아 최종 목적지에 저장하기 위한 기능
- 채널로 부터 source 가 전달한 event 정보를 하둡에 저장하거나 agent 또는 db로 전달
- HDFS, Hive, Logger, Avro, ElasticSearch, Thrift 등을 제공
3) 채널(Channel)
- 소스와 싱크간 데이터를 받는 통로
- 소스와 싱크를 연결, 데이터를 버퍼링하는 컴포넌트
- 메모리, 파일, 데이터베이스 채널의 저장소로 주로 활용
- 장애에 대비하기 위한 중간 채널 제공
- source는 채널에 이벤트 정보를 저장하 sink 는 채널로부터 정보를 전달받아 처리
3. Flume 의 특징
- 시스템 신뢰성 (Reliability) : 장애가 발생시 로그의 유실없이 전송할 수 있는 기능
- 시스템 확장성 (Scalability) : Agent 의 추가 및 제거가 용이
- 관리 용이성 (Manageability) : 간결한 구조로 관리가 용이
- 기능 확장성 (Extensibility) : 새로운 기능을 쉽게 추가할 수 있음
4. 플럼의 연결 모드
1) 1소스 / 1채널 1싱크
- 가장 단순한 구성
- 원천 데이터를 특별한 처리 없이 단순/수집/적재할대 사용
2) 멀티 에이전트 플로우 (Multi Agent Flow)
- 원천 데이터 수집시, Intercepter 추가해 데이터 가공,
- 데이터의 특성에 따라 Channel 에서 다수의 sink 컴포넌트로 라우팅이 필요
3) Consolidation
- 여러 소스에서 전달된 이벤트를 각 에이전트가 받아서 하나의 에이전트가 통합하여 저장
5. 참고 링크
https://www.nextree.co.kr/p2704/
http://taewan.kim/post/flume_images/
반응형
'Data Engineering > HDFS' 카테고리의 다른 글
[ Zookeeper ] 주키퍼(Zookeeper) 에 대한 간단한 스터디 (0) | 2021.06.11 |
---|---|
[Kafka] 카프카(Kafka) 에 대한 간단 스터디 (0) | 2021.06.11 |
Presto 에 대하여? (0) | 2020.06.30 |
Apache Sentry : 하둡용 허가(Authorization) 모듈 (0) | 2020.04.20 |
하둡 완벽 가이드 스터디 : 챕터 1. 하둡이란? (0) | 2020.04.18 |