Flume은 빅데이터를 수집할 때 다양한 수집 요구사항들을 해결하기 위한 기능으로 구성된 소프트웨어다. 플럼은 대량의 로그 데이터를 효율적으로 수집, 집계, 이동하기 위한 신뢰성있는 분산형 소프트웨어다. steaming data 기반으로 유연하고 간단한 아키텍처를 갖추고 있다.
Source
- 데이터가 발생하는 소스로 부터 (로그)데이터 수집하는 역할
: 다양한 원천 시스템의 데이터를 수집하기 위해 Avro, Thrift, JMS, Spool Dir, Kafka등 여러 주요 컴포넌트를 제공하며, 수집한 데이터를 Channel로 전달
Channel
- Source와 Sink 사이의 Queue
: Source와 Sink를 연결하며, 데이터를 버퍼링하는 컴포넌트로 메모리, 파일, 데이터베이스를 채널의 저장소로 활용
Sink
- 수집한 데이터를 외부로 보내는 역할
: 수집한 데이터를 Channel로부터 전달받아 최종 목적지에 저장하기 위한 기능으로 HDFS, Hive, Logger, Avro, ElasticSearch, Thrift 등을 제공
Interceptor
- 데이터의 가공 및 필터링
: Source와 Channel 사이에서 데이터 필터링 및 가공하는 컴포넌트로서 Timestamp, Host, Regex Filtering 등을 기본 제공하며, 필요 시 사용자 정의 Interceptor를 추가
Agent
- 하나의 작업 단위, 독립된 인스턴스
: Source -> (interceptor) -> Channel -> Sink 컴포넌트 순으로 구성된 작업 단위로 독립된 인스턴스로 생성.
[Apache Flume 기본 개념 정리]
https://deep-jin.tistory.com/entry/Apache-Flume-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC?category=1104432?category=1104432