티스토리 뷰
아파치 플룸(Apache Flume)이란?
로그 데이터를 수집하기 위한 분산형 소프트웨어입니다.
여러 대의 서버에서 실시간으로 쌓여가는 많은 양의 로그 데이터를 효율적으로 수집하여 하나의 로그 수집 서버로 모아 로그 데이터들을 관리할 수 있습니다.
플룸은 시스템 확장성(Scalability)과 신뢰성(Reliability)을 주요 특징으로 설계되었습니다.
따라서 수집 데이터 및 서버의 양에 맞게 효율적으로 플룸 시스템을 확장하여 관리할 수 있고 데이터의 유실없이 수집할 수 있도록 해줍니다.
플룸의 0.x 버전을 Flume OG, 1.x 버전은 Flume NG라고 부르며 이 블로그에서의 플룸에 대한 모든 글은 Flume NG를 기준으로 합니다.
플룸 구성요소
플룸은 하나의 Agent로 구성되어있고 Agent는 source, channel, sink 라는 세 개의 구성요소로 이루어져있습니다.
source
- 수집 대상 로그를 수신하고 sink에 전달합니다.
channel
- source와 sink 간의 버퍼로서 dpeendency 제거, 장애 대비를 해줍니다.
- sink가 다음 목적지로 로그를 전달할 때 까지 로그를 보관합니다.
sink
- 수집된 로그를 다음 목적지에 전달합니다.
- 목적지는 HDFS, Hive, ElasticSearch와 같은 외부 저장소 또는 플룸 에이전트일 수 있습니다.
플룸 설계 방식
플룸은 Agent node와 Collect node에 위치합니다.
Agent node
- 로그가 발생하는 서버로 로그를 Collect node에 전달합니다.
Collect node
- Agent node에서 받은 로그를 외부 저장소(HDFS 등)에 저장합니다.
Agent node와 Collect node를 설계하는 다음과 같은 방식이 있습니다.
1. Consolidation
- 여러 대의 서버에서 이벤트를 하나의 플룸에 수집하는 방식입니다.
2. HA(High Availability)
- Consolidation 방식의 장애를 보완하는 방식입니다.
'Development > Big Data' 카테고리의 다른 글
[Cloudera - 10] pyspark 쉘에서 HDFS 파일 wordcount (0) | 2020.01.07 |
---|---|
[Cloudera - 9] pyspark 쉘에서 filter, groupByKey, reduceByKey, countByValue (0) | 2020.01.07 |
[Cloudera - 8] pyspark 쉘에서 RDD 생성과 map, flatmap (0) | 2020.01.07 |
[Cloudera - 7] KBO 한국 야구 데이터를 사용해 Hive에서 간단한 분석 해보기 (0) | 2020.01.03 |
[Hadoop] 아파치 하이브 (0) | 2020.01.02 |
- Total
- Today
- Yesterday
- Sqoop
- 코딩인터뷰 완전분석
- Django
- python
- 삼각형 위의 최대 경로
- microwaving lunch boxes
- Hadoop
- 외발 뛰기
- 백준
- 2225
- 합친 lis
- 팰린드롬 구하기
- 삼각형 위의 최대 경로 수 세기
- pyspark
- 완전탐색
- hive
- 배열과 문자열
- 하이브
- HiveQL
- Jaeha's Safe
- 분할정복
- 종만북
- import
- 하둡
- 스파크
- 두니발 박사의 탈옥
- C++
- 출전 순서 정하기
- 알고스팟
- HDFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |