水路実際のケース(水路は、HDFSにHDFSへのキャプチャファイルをのtelnetデータ収集・カタログを受け入れ、2つのエージェントカスケード)

A、水路はのtelnetデータを受け入れ

最初のステップ設定の開発ファイル

vimの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf/netcat-logger.conf

#各コンポーネントの名前でこのエージェントを定義します

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.52.120
a1.sources.r1.port = 44444

# 描述和配置sink组件:k1
a1.sinks.k1.type = logger

# 描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 描述和配置source  channel   sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

チャネルパラメータは説明しました:

容量:チャンネル内のイベントのデフォルトの最大数を格納することができ

trasactionCapacity:最大は各ソースから、またはイベントシンクの数を取得することができます

ステップ二つ:スタート設定ファイル

プロファイル取得スキーム指定は、対応するノードに水路エージェントを開始します

通常の環境かどうかをテストする最も簡単なプログラム例の一つで初

収集データにスタートエージェント

bin/flume-ng agent -c conf -f conf/netcat-logger.conf -n a1  -Dflume.root.logger=INFO,console

-c confの水路独自の構成ファイルのディレクトリを指定

我々が説明した-f confに/ netcatを-logger.con指定された収集スキーム

-n A1は、私たちのエージェントの名前を指定します

第三段階:テストの準備のtelnetインストール

node02でマシンは、アナログデータを送信するためのTelnetクライアントにその上に取り付けられました

yumをTelnetをインストール-y

Telnetを使用して、telnetのnode03の44444#アナログデータ送信

第二に、HDFSにコレクションカタログ

【図面:

 

コレクションが必要です。特定のディレクトリの下にサーバーを新しいファイルが表示されたときに、それは新しいファイルを生成していきます、私たちは、HDFS、外出先にコレクトファイルに必要

要件によると、すべての最初は、次の3つの主要な要素を定義します

  1. データソースコンポーネント、すなわちソース - モニター・ファイルのディレクトリ:spooldir

spooldirの特徴:

   1、ディレクトリを監視し、限り、新しいファイルがディレクトリに表示される、それはファイルの内容をキャプチャします

   2は、取得文書を完了し、エージェントは自動的にサフィックスを追加するようになります。COMPLETED

   3、監視対象のディレクトリを繰り返し、同じ名前のファイルを許可していません

  1. コンポーネントを沈没、すなわちシンク - HDFSファイルシステム:HDFSシンク
  2. チャネルアセンブリ、すなわちchannel--ファイルの利用可能なチャネルのメモリチャネルを使用することもできます

水路プロファイル開発

書き込み設定ファイル:

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf

ます。mkdir -p /エクスポート/サーバ/ dirfile

私はspooldir.confを来ました

# Name the components on this agent

a1.sources=r1

a1.channels=c1

a1.sinks=k1

# Describe/configure the source

##注意:不能往监控目中重复丢同名文件

a1.sources.r1.type=spooldir

a1.sources.r1.spoolDir=/export/dir

a1.sources.r1.fileHeader = true

# Describe the sink

a1.sinks.k1.type=hdfs

a1.sinks.k1.hdfs.path=hdfs://node01:8020/spooldir/

# Describe the channel

a1.channels.c1.type=memory

a1.channels.c1.capacity=1000

a1.channels.c1.transactionCapacity=100

# Bind the source and sink to the channel

a1.sources.r1.channels=c1

a1.sinks.k1.channel=c1

スタート水路

ビン/水路-ngのエージェント-c ./conf -f ./conf/spooldir.conf -n A1 -Dflume.root.logger = INFO、コンソール

アップロード指定したディレクトリにファイルを

ファイルは一意である必要があります、次のように別のディレクトリにファイルをアップロード

CD /エクスポート/ DIR

HDFSに第三に、キャプチャファイル

コレクションの要件:なログの内容によって生成されたlog4jのログの使用が増加しているとして、業務システム、我々はHDFSにリアルタイムで取得してログファイルにデータを追加する必要があります

要件によると、すべての最初は、次の3つの主要な要素を定義します

  1. 取得源、すなわちsource--モニターファイルのアップデート:幹部「尾部の-Fファイル」
  2. 目標を沈没、すなわちシンク - HDFSファイルシステム:HDFSシンク
  3. ソースとシンクとの間の--channel転送路、利用可能なファイルチャネルのメモリチャネルを使用することもできます

水路のプロファイルの定義

node03の開発プロファイル

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf

vimのテールfile.conf

プロフィールコンテンツ

a1.sources=r1

a1.channels=c1

a1.sinks=k1

# Describe/configure tail -F source1

a1.sources.r1.type=exec

a1.sources.r1.command =tail -F /export/taillogs/access_log



# Describe sink1

a1.sinks.k1.type=hdfs

a1.sinks.k1.hdfs.path=hdfs://node01:8020/spooldir/



# Use a channel which buffers events in memory

a1.channels.c1.type=memory

a1.channels.c1.capacity=1000

a1.channels.c1.transactionCapacity=100



# Bind the source and sink to the channel

a1.sources.r1.channels=c1

a1.sinks.k1.channel=c1

スタート水路

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin

ビン/水路-ngのエージェント-c confに-f confに/テールfile.conf -nエージェント1 -Dflume.root.logger = INFO、コンソール

開発シェルスクリプトは、時限追加のファイルの内容を

ます。mkdir -p /エクスポート/シェル/

CD /エクスポート/シェル/

vimのtail-file.sh

 

フォルダを作成します。

ます。mkdir -p /エクスポート/サーバ/ taillogs

スタートアップスクリプト

SH /export/shells/tail-file.sh

#!/bin/bash

while true

do

 date >> /export/servers/taillogs/access_log;

  sleep 0.5;

done

第四に、2つのカスケードエージェント

 

第二の薬剤にそれらを送信するためにネットワーク経由で収集するエージェントの中から最初のデータファイルは、第2の薬剤は、HDFS上に行くためのセーブデータ、エージェントから送信された最初のデータを受信するための責任があります

最初のステップノード02がインストールされている水路

水路node03のは、マシンとnode02にトップ上のマシンにコピーしたファイルのフォルダを解凍しました

CD /エクスポート/サーバ

SCP -r apacheの-水路-1.6.0-cdh5.14.0-binに/とnode02:$ PWD

ステップ二つ:node02で設定水路コンフィギュレーションファイル

node02でマシンに私たちの水路を設定します

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf

テールアブロ・アブロ-logger.conf

##################

# Name the components on this agent

a1.sources = r1

a1.sinks = k1

a1.channels = c1



# Describe/configure the source

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F /export/taillogs/access_log



# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100



##sink端的avro是一个数据发送者

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = 192.168.52.120

a1.sinks.k1.port = 4141



#Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

第三段階:node02で開発与えられたスクリプトへのファイルの書き込みデータ

node03のは、直接、次のコマンドnode03のマシンに次のnode02でのスクリプトとデータをコピー

CD /エクスポート

SCP -rシェル/ taillogs / node02で:$ PWD

ステップ5:node03の開発水路のプロフィール

node03のマシン上で開発水路プロフィール

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf

アブロ来-hdfs.conf

# Name the components on this agent

a1.sources = r1

a1.sinks = k1

a1.channels = c1



##source中的avro组件是一个接收者服务

a1.sources.r1.type = avro

a1.sources.r1.bind = 192.168.52.120

a1.sources.r1.port = 4141



# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100



# Describe the sink

a1.sinks.k1.type = hdfs

a1.sinks.k1.hdfs.path = hdfs://node01:8020/avro



# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

ステップ6 :スタート順

node03のマシンは、水路のプロセスを開始します

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin

ビン/水路-ngのエージェント-c confに-f confに/アブロ-hdfs.conf -n A1 -Dflume.root.logger = INFO、コンソール   

node02でマシンは、水路のプロセスを開始します

CDの/export/servers/apache-flume-1.6.0-cdh5.14.0-bin/

ビン/水路-ngのエージェント-c confに-f confに/テールアブロ・アブロ・logger.conf -n A1 -Dflume.root.logger = INFO、コンソール    

node02で機械甲斐シェルスクリプトファイルの生成

ます。mkdir /エクスポート/ taillogs /

CD /エクスポート/サーバ/シェル

SH tail-file.sh

以上のソースおよびシンクアセンブリ

水路公式文書

http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.14.0/FlumeUserGuide.html

公開された81元の記事 ウォン称賛21 ビュー2239

おすすめ

転載: blog.csdn.net/qq_44065303/article/details/103440481
おすすめ