Apache Flume-NetCat 소스
이 장에서는 이벤트를 생성하고 나중에 콘솔에 로그인하는 방법을 설명하는 예제를 사용합니다. 이를 위해 우리는NetCat 소스와 logger 싱크대.
전제 조건
이 장에 제공된 예제를 실행하려면 다음을 설치해야합니다. Flume.
Flume 구성
소스, 채널 및 싱크를 구성해야합니다. conf폴더. 이 장에 제공된 예는NetCat Source, Memory channel, 및 logger sink.
NetCat 소스
NetCat 소스를 구성하는 동안 소스를 구성하는 동안 포트를 지정해야합니다. 이제 소스 (NetCat 소스)는 지정된 포트를 수신하고 해당 포트에 입력 한 각 라인을 개별 이벤트로 수신하고 지정된 채널을 통해 싱크로 전송합니다.
이 소스를 구성하는 동안 다음 속성에 값을 제공해야합니다.
channels
Source type − 넷캣
bind − 바인딩 할 호스트 이름 또는 IP 주소.
port − 소스가 수신 할 포트 번호.
채널
우리는 memory채널. 메모리 채널을 구성하려면 채널 유형에 값을 제공 해야합니다 . 다음은 메모리 채널을 구성하는 동안 제공해야하는 속성 목록입니다.
type− 채널 유형을 유지합니다. 이 예에서 유형은MemChannel.
Capacity− 채널에 저장된 최대 이벤트 수입니다. 기본값은 100입니다. (선택 사항)
TransactionCapacity− 채널이 수신하거나 전송하는 최대 이벤트 수입니다. 기본값은 100입니다 (선택 사항).
로거 싱크
이 싱크는 전달 된 모든 이벤트를 기록합니다. 일반적으로 테스트 또는 디버깅 목적으로 사용됩니다. 이 싱크를 구성하려면 다음 세부 정보를 제공해야합니다.
Channel
type − 로거
구성 파일 예
다음은 구성 파일의 예입니다. 이 콘텐츠를 복사하고 다른 이름으로 저장netcat.conf Flume의 conf 폴더에 있습니다.
# Naming the components on the current agent
NetcatAgent.sources = Netcat
NetcatAgent.channels = MemChannel
NetcatAgent.sinks = LoggerSink
# Describing/Configuring the source
NetcatAgent.sources.Netcat.type = netcat
NetcatAgent.sources.Netcat.bind = localhost
NetcatAgent.sources.Netcat.port = 56565
# Describing/Configuring the sink
NetcatAgent.sinks.LoggerSink.type = logger
# Describing/Configuring the channel
NetcatAgent.channels.MemChannel.type = memory
NetcatAgent.channels.MemChannel.capacity = 1000
NetcatAgent.channels.MemChannel.transactionCapacity = 100
# Bind the source and sink to the channel
NetcatAgent.sources.Netcat.channels = MemChannel
NetcatAgent.sinks.LoggerSink.channel = MemChannel
실행
Flume 홈 디렉토리를 검색하고 아래와 같이 애플리케이션을 실행합니다.
$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf
--name NetcatAgent -Dflume.root.logger=INFO,console
모든 것이 잘되면 소스는 주어진 포트를 듣기 시작합니다. 이 경우56565. 다음은 포트 56565를 시작하고 수신하는 NetCat 소스의 명령 프롬프트 창의 스냅 샷입니다.
소스에 데이터 전달
NetCat 소스로 데이터를 전달하려면 구성 파일에 지정된 포트를 열어야합니다. 별도의 터미널을 열고 다음을 사용하여 소스 (56565)에 연결합니다.curl명령. 연결에 성공하면“connected" 아래 그림과 같이.
$ curl telnet://localhost:56565
connected
이제 데이터를 한 줄씩 입력 할 수 있습니다 (각 줄 다음에 Enter 키를 눌러야 함). NetCat 소스는 각 라인을 개별 이벤트로 수신하고 수신 된 메시지 "OK”.
데이터 전달을 완료 할 때마다 (Ctrl+C). 아래는 다음을 사용하여 소스에 연결 한 콘솔의 스냅 샷입니다.curl 명령.
위 콘솔에 입력 된 각 행은 소스에 의해 개별 이벤트로 수신됩니다. 우리가 사용했기 때문에Logger 이러한 이벤트는 지정된 채널 (이 경우 메모리 채널)을 통해 콘솔 (소스 콘솔)에 로그온됩니다.
다음 스냅 샷은 이벤트가 기록되는 NetCat 콘솔을 보여줍니다.