ApacheFlume-シーケンスジェネレーターソース

前の章では、TwitterソースからHDFSにデータをフェッチする方法を見てきました。この章では、からデータをフェッチする方法について説明しますSequence generator

前提条件

この章で提供されている例を実行するには、インストールする必要があります HDFS に加えて Flume。したがって、先に進む前に、Hadoopのインストールを確認し、HDFSを開始してください。(HDFSを開始する方法については、前の章を参照してください)。

Flumeの構成

の構成ファイルを使用して、ソース、チャネル、およびシンクを構成する必要があります。 confフォルダ。この章の例では、sequence generator sourcememory 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, DataStream そして CompressedStreamこのストリームで使用できる3つのタイプです。この例では、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管理WebUIにアクセスできます-

http://localhost:50070/

名前の付いたドロップダウンをクリックします Utilitiesページの右側にあります。次の図に示すように、2つのオプションが表示されます。

クリック Browse the file system シーケンスジェネレーターによって生成されたデータを保存したHDFSディレクトリのパスを入力します。

この例では、パスは次のようになります /user/Hadoop/ seqgen_data /。次に、シーケンスジェネレーターによって生成され、以下に示すようにHDFSに保存されているログファイルのリストを確認できます。

ファイルの内容を確認する

これらのログファイルにはすべて、連続した形式の番号が含まれています。これらのファイルの内容は、ファイルシステムで次のコマンドを使用して確認できます。cat 以下に示すコマンド。