Apache Flume-시퀀스 생성기 소스

이전 장에서 트위터 소스에서 HDFS로 데이터를 가져 오는 방법을 살펴 보았습니다. 이 장에서는 데이터를 가져 오는 방법을 설명합니다.Sequence generator.

전제 조건

이 장에 제공된 예제를 실행하려면 다음을 설치해야합니다. HDFS 와 함께 Flume. 따라서 계속 진행하기 전에 Hadoop 설치를 확인하고 HDFS를 시작하십시오. (HDFS 시작 방법은 이전 장을 참조하십시오).

Flume 구성

소스, 채널 및 싱크를 구성해야합니다. conf폴더. 이 장에 제공된 예는sequence generator source, ㅏ memory channel, 그리고 HDFS sink.

시퀀스 생성기 소스

이벤트를 지속적으로 생성하는 소스입니다. 0부터 시작하여 1 씩 증가하는 카운터를 유지합니다. 테스트 목적으로 사용됩니다. 이 소스를 구성하는 동안 다음 속성에 값을 제공해야합니다.

  • Channels

  • Source type − seq

채널

우리는 memory채널. 메모리 채널을 구성하려면 채널 유형에 값을 제공 해야합니다 . 다음은 메모리 채널을 구성하는 동안 제공해야하는 속성 목록입니다.

  • type− 채널 유형을 유지합니다. 이 예에서 유형은 MemChannel입니다.

  • Capacity− 채널에 저장된 최대 이벤트 수입니다. 기본값은 100입니다. (선택 사항)

  • TransactionCapacity− 채널이 수신하거나 전송하는 최대 이벤트 수입니다. 기본값은 100입니다 (선택 사항).

HDFS 싱크

이 싱크는 HDFS에 데이터를 씁니다. 이 싱크를 구성하려면 다음 세부 정보를 제공 해야합니다 .

  • Channel

  • type − hdfs

  • hdfs.path − 데이터가 저장 될 HDFS의 디렉토리 경로.

그리고 시나리오에 따라 몇 가지 선택적 값을 제공 할 수 있습니다. 다음은 애플리케이션에서 구성하는 HDFS 싱크의 선택적 속성입니다.

  • fileType − 이것은 HDFS 파일의 필수 파일 형식입니다. SequenceFile, DataStreamCompressedStream이 스트림에서 사용할 수있는 세 가지 유형입니다. 이 예에서는DataStream.

  • writeFormat − 텍스트 또는 쓰기 가능.

  • batchSize− HDFS로 플러시되기 전에 파일에 기록 된 이벤트 수입니다. 기본값은 100입니다.

  • rollsize− 롤을 트리거하는 파일 크기입니다. 기본값은 100입니다.

  • rollCount− 롤링되기 전에 파일에 기록 된 이벤트 수입니다. 기본값은 10입니다.

예 – 구성 파일

다음은 구성 파일의 예입니다. 이 콘텐츠를 복사하고 다른 이름으로 저장seq_gen .conf Flume의 conf 폴더에 있습니다.

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.channel = MemChannel

실행

Flume 홈 디렉토리를 검색하고 아래와 같이 애플리케이션을 실행합니다.

$ cd $FLUME_HOME 
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf 
   --name SeqGenAgent

모든 것이 잘되면 소스는 로그 파일 형태로 HDFS에 푸시 될 시퀀스 번호를 생성하기 시작합니다.

다음은 시퀀스 생성기에 의해 생성 된 데이터를 HDFS로 가져 오는 명령 프롬프트 창의 스냅 샷입니다.

HDFS 확인

다음 URL을 사용하여 Hadoop 관리 웹 UI에 액세스 할 수 있습니다.

http://localhost:50070/

이름이 지정된 드롭 다운을 클릭합니다. Utilities페이지 오른쪽에 있습니다. 아래 그림과 같이 두 가지 옵션을 볼 수 있습니다.

클릭 Browse the file system 시퀀스 생성기에서 생성 한 데이터를 저장 한 HDFS 디렉토리의 경로를 입력합니다.

이 예에서 경로는 /user/Hadoop/ seqgen_data /. 그러면 아래와 같이 HDFS에 저장된 시퀀스 생성기에 의해 생성 된 로그 파일 목록을 볼 수 있습니다.

파일 내용 확인

이러한 모든 로그 파일에는 순차적 형식의 숫자가 포함됩니다. 다음을 사용하여 파일 시스템에서 이러한 파일의 내용을 확인할 수 있습니다.cat 아래와 같이 명령.