Apache-flume-sequence-generator-source

提供:Dev Guides
移動先:案内検索

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

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

前提条件

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

Flumeの構成

*conf* フォルダー内の構成ファイルを使用して、ソース、チャネル、およびシンクを構成する必要があります。 この章の例では、 *sequence generator source* 、 *memory channel* 、および *HDFS sink* を使用します。

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

イベントを継続的に生成するのはソースです。 0から始まり1ずつ増加するカウンターを維持します。 テスト目的で使用されます。 このソースを設定している間、次のプロパティに値を提供する必要があります-

  • チャンネル
  • ソースタイプ-seq

チャネル

*memory* チャネルを使用しています。 メモリチャネルを設定するには、チャネルのタイプに値を提供する必要があります。 以下は、メモリチャネルの設定中に指定する必要があるプロパティのリストです-
  • type -チャネルのタイプを保持します。 この例では、タイプはMemChannelです。
  • 容量-チャネルに保存されるイベントの最大数です。 デフォルト値は100です。 (オプション)
  • TransactionCapacity -チャネルが受け入れるまたは送信するイベントの最大数です。 デフォルトは100です。 (オプション)。

HDFSシンク

このシンクはデータをHDFSに書き込みます。 このシンクを設定するには、次の詳細を提供する必要があります。

  • チャネル
  • タイプ-hdfs
  • hdfs.path -データが保存されるHDFSのディレクトリのパス。

そして、シナリオに基づいていくつかのオプションの値を提供できます。 以下に示すのは、アプリケーションで構成しているHDFSシンクのオプションのプロパティです。

  • fileType -これは、HDFSファイルに必要なファイル形式です。 SequenceFile、DataStream 、および CompressedStream は、このストリームで使用できる3つのタイプです。 この例では、 DataStream を使用しています。
  • writeFormat -テキストまたは書き込み可能。
  • batchSize -HDFSにフラッシュされる前にファイルに書き込まれるイベントの数です。 デフォルト値は100です。
  • rollsize -ロールをトリガーするファイルサイズです。 デフォルト値は100です。
  • rollCount -ロールされる前にファイルに書き込まれたイベントの数です。 デフォルト値は10です。

例–構成ファイル

以下に、構成ファイルの例を示します。 このコンテンツをコピーして、Flumeのconfフォルダーに seq_gen .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管理Web UIにアクセスできます-

http://localhost:50070/

ページの右側にある Utilities という名前のドロップダウンをクリックします。 以下の図に示すように、2つのオプションがあります。

HDFSの検証

[*ファイルシステムの参照]をクリックし、シーケンスジェネレーターによって生成されたデータを保存したHDFSディレクトリのパスを入力します。

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

ファイルシステムの参照

ファイルの内容の検証

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

ファイルの内容の検証