Home 빅데이터 수집1 - Flume 설치
Post
Cancel

빅데이터 수집1 - Flume 설치

Flume 구성

graph LR;
A[Source]-->B[Interceptor];
	B-->C[Channel];
	C-->D[Sink];
  • Source : 다양한 원천 시스템에서 데이터를로드
  • Interceptor : 데이터 필터링 및 가공하는 컴포넌트(생략 가능)
  • Channel : Source와 Sink를 연걸(임시저장)
    • Memory channels : 데이터를 메모리 상에 중간 적재하므로 성능이 높지만 안전성이 낮음
    • File Channels : 전송한 데이터를 받아 로컬 파일 시스템인 dataDirs에 임시로 저장했다가 전송. 성능은 낮지만 안전성이 높음
  • Sink : Channel로 부터 받은 데이터를 최종 목적지에 적재
  • agent : 위 전과정으로 구성된 작업단위로 독립된 인스턴스 생성

Flume 설치

1. flume 설치

1
2
3
sudo wget https://downloads.apache.org/flume/1.11.0/apache-flume-1.11.0-bin.tar.gz

sudo tar -xzvf apache-flume-1.11.0-bin.tar.gz -C /usr/local

2. 환경설정

  1. ~/.bashrc
    1
    2
    3
    
    export FLUME_HOME=/usr/local/flume
    export PATH=$PATH:$FLUME_HOME/bin
    export CLASSPATH=$CLASSPATH:$FLUME_HOME/lib/*.jar
    
  2. $FLUME_HOME/conf/flume-env.sh
    1
    
    export JAVA_HOME=/usr/lib/jvm/java
    

3. 에이전트 생성

$FLUME_HOME/conf/flume-conf.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 플럼 에이전트에서 사용할 source, channels, sink 각 리소스 변수 정의
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name

# Source 타입 지정
- spooldir = 특정 디렉터리를 모니터링하다가 새로운 파일이 생기면 이벤트를 감지해서 batchsize 만큼 채널로 전송
- exec = 플럼 외부에서 수행한 명령의 결과를 플럼 Event 로 가져와 수집할 수 있는 기능 제공

# interceptor 추가

# Channel 지정
- memory = Source로부터 받은 데이터를 메모리 중간에 적재하므로 성능이 높지만 안전성이 낮음
- file = Source에서 전송한 데이터를 받아 로컬시스템 경로인 dataDirs에 임시 저장했다가 Sink로 전달. 성능은 낮지만 안전성이 높음

# 소스와 싱크를 채널에 바인딩
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name

4. flume agent 실행

1
flume-ng agent --conf conf --conf-file ../conf/flume-conf-02.properties --name ServiceCarAgent -Dflume.root.logger=INFO, console

🛑 flume-log4j maven 사용시 제외시켜주면 된다고 하는데 maven을 사용하지 않아서 둘중에 하나 삭제했다. 다행히 잘 동작했다.




출처 및 참고자료
⌜실무로 배우는 빅데이터 기술⌟
tutorial

This post is licensed under CC BY 4.0 by the author.