Flume - 1.7.0 의 설치 와 설정
11979 단어 빅 데이터
Flume 은 클 라 우 드 라 가 개발 한 실시 간 로그 수집 시스템 으로 업계 의 인정 과 광범 위 한 응용 을 받 았 다.플 루 미의 초기 발행 버 전 은 현재 플 루 미 OG (original generation) 로 통칭 되 며 클 라 우 드 에 속한다.그러나 FLume 기능 이 확장 되면 서 Flume OG 코드 공정 이 비대 해 지고 핵심 구성 요소 의 설계 가 불합리 하 며 핵심 구성 이 기준 에 맞지 않 는 다 는 단점 이 드 러 났 다. 특히 Flume OG 의 마지막 발행 버 전 0.94.0 에 서 는 로그 전송 이 불안정 하 다. 이 문 제 를 해결 하기 위해 2011 년 10 월 22 일 에 cloudera 는 Flume - 728 을 완성 했다.Flume 에 대해 획기적 인 변경 을 실 시 했 습 니 다. 핵심 구성 요소, 핵심 구성 과 코드 구 조 를 재 구성 하고 재 구성 한 버 전 을 Flume NG (next generation) 라 고 부 릅 니 다.또 다른 이 유 는 Flume 을 apache 산하 에 포함 시 키 고 클 라 우 드 라 Flume 은 Apache Flume 으로 이름 을 바 꿨 기 때문이다.
Flume 의 특징
Flume 은 분포 식, 신뢰성, 사용 가능 한 대량의 로그 수집, 집적, 전송 시스템 입 니 다.로그 시스템 에서 각종 데이터 전송 자 를 맞 춤 형 으로 만들어 데 이 터 를 수집 하 는 것 을 지원 합 니 다.또한 Flume 은 데 이 터 를 간단하게 처리 하고 각종 데이터 수용 자 (예 를 들 어 텍스트, HDFS, Hbase 등) 에 기록 하 는 능력 을 제공 합 니 다.Flume 의 데이터 흐름 은 이벤트 (Event) 로 일관 되 어 있 습 니 다.이 벤트 는 Flume 의 기본 데이터 단위 로 로그 데이터 (바이트 배열 형식) 를 가지 고 있 으 며 헤더 정 보 를 가지 고 있 습 니 다. 이 이 벤트 는 Agent 외부 Source 에서 생 성 되 며 Source 가 이 벤트 를 캡 처 한 후에 특정한 포맷 을 한 다음 Source 는 이 벤트 를 (단일 또는 여러 개) 채널 에 밀어 넣 습 니 다.채널 을 버퍼 로 볼 수 있 습 니 다. 이 이 벤트 를 Sink 에서 처리 할 때 까지 저장 합 니 다.Sink 은 로 그 를 지속 하거나 이 벤트 를 다른 Source 로 밀어 내 는 일 을 맡 습 니 다.
Flume 의 신뢰성
노드 가 고장 났 을 때 로 그 는 다른 노드 로 전송 되 어 잃 어 버 리 지 않 습 니 다.Flume 은 세 가지 등급 의 신뢰성 보장 을 제공 합 니 다. 강 한 것 부터 약 한 것 까지 는 end - to - end (데이터 에이전트 를 받 으 면 먼저 이 벤트 를 디스크 에 기록 하고 데이터 전송 이 성공 하면 삭제 합 니 다. 데이터 전송 이 실패 하면 다시 보 낼 수 있 습 니 다), Store on failure 입 니 다.(이것 도 scribe 가 사용 하 는 정책 입 니 다. 데이터 수신 자 crash 시 데 이 터 를 로 컬 에 기록 하고 복구 후 계속 보 냅 니 다), Besteffort (데 이 터 를 수신 자 에 게 보 낸 후 확인 하지 않 습 니 다).
Flume 의 회복 가능성:
채널 을 사용 하 는 것 을 추천 합 니 다. FileChannel 을 사용 하 는 것 을 추천 합 니 다. 로 컬 파일 시스템 에서 이벤트 가 오래 지속 되 는 것 을 추천 합 니 다. (성능 이 떨 어 집 니 다)Flume 의 핵심 개념: Agent: JVM 을 사용 하여 Flume 을 실행 합 니 다. 모든 기 계 는 하나의 에이전트 를 실행 하지만 하나의 에이전트 에 여러 개의 sources 와 sinks 를 포함 할 수 있 습 니 다. Client: 데 이 터 를 생산 하고 하나의 독립 된 스 레 드 에서 실 행 됩 니 다. Source: Client 에서 데 이 터 를 수집 하여 Channel 에 전달 합 니 다. Sink: Channel 에서 데 이 터 를 수집 하여 하나의 독립 된 스 레 드 에서 실 행 됩 니 다. Channel: sources 와 sinks 를 연결 합 니 다. 이것 은 대기 열 과 같 습 니 다. Events: 로그 기록, avro 대상 등 이 될 수 있 습 니 다.
준비 하 다.
설치 하 다.
#tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /usr/local/hadoop
#cd /usr/local/hadoop
#mv apache-flume-1.7.0-bin flume-1.7.0
배치 하 다.
#cd /usr/local/hadoop/flume-1.7.0/conf
#mv flume-env.sh.template flume-env.sh
#vim flume-env.sh
자바 환경 변수 추가
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_144
#vim /etc/profile
다음 기록 추가
FLUME_HOME=/usr/local/hadoop/flume-1.7.0
export PATH=$FLUME_HOME/bin:$PATH
export FLUME_CONF_DIR=$FLUME_HOME/conf
프로필 적용
#source /etc/profile
검증 하 다.
[root@Slave1 ~]# flume-ng version
Flume 1.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 511d868555dd4d16e6ce4fedc72c2d1454546707
Compiled by bessbd on Wed Oct 12 20:51:10 CEST 2016
From source with checksum 0d21b3ffdc55a07e1d08875872c00523
[root@Slave1 ~]#
위 와 같이 설치 설정 이 성공 적 임 을 표시 합 니 다.
Fluke 사례
#vim logger.conf
# Name the components on this agent
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1
# Describe/configure the source
agent1.sources.source1.type = netcat
agent1.sources.source1.bind = Slave1
agent1.sources.source1.port = 44444
# Describe the sink
agent1.sinks.sink1.type = logger
# Use a channel which buffers events in memory
agent1.channels.channel1.type = memory
agent1.channels.channel1.capacity = 1000
// event
agent1.channels.channel1.transactionCapacity = 100
// source sink event
# Bind the source and sink to the channel
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1 // channels channel
[root@Slave1 flume-1.7.0]# bin/flume-ng agent --conf conf --conf-file conf/logger.conf --name agent1 -Dflume.root.logger=INFO,console
agent: agent
--conf: ,
--conf-file:
--name: agent
-Dflume.root.logger=INFO,console( )
정보 생 성
[root@Slave2 conf]# telnet Slave1 44444
Trying 192.168.142.131...
Connected to Slave1.
Escape character is '^]'.
luchao
OK
abcdefg
OK
hello world
OK
ABCDEFGHIJKLMNOPQRSTUVWXYZ
OK
정 보 를 받다
2017-09-01 03:15:20,001 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 6C 75 63 68 61 6F 0D luchao. }
2017-09-01 03:15:26,551 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 61 62 63 64 65 66 67 0D abcdefg. }
2017-09-01 03:15:36,170 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 0D hello world. }
2017-09-01 03:16:14,197 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 ABCDEFGHIJKLMNOP }
주: "ABCDEFGHIJKLMNOPQRSTuvWXYZ" 가 완전히 수신 되 지 않 은 이 유 는 netcat 의 기본 수신 길이 제한 때 문 입 니 다.
Over
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.