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つの主要な要素を定義します
- データソースコンポーネント、すなわちソース - モニター・ファイルのディレクトリ:spooldir
spooldirの特徴:
1、ディレクトリを監視し、限り、新しいファイルがディレクトリに表示される、それはファイルの内容をキャプチャします
2は、取得文書を完了し、エージェントは自動的にサフィックスを追加するようになります。COMPLETED
3、監視対象のディレクトリを繰り返し、同じ名前のファイルを許可していません
- コンポーネントを沈没、すなわちシンク - HDFSファイルシステム:HDFSシンク
- チャネルアセンブリ、すなわち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つの主要な要素を定義します
- 取得源、すなわちsource--モニターファイルのアップデート:幹部「尾部の-Fファイル」
- 目標を沈没、すなわちシンク - HDFSファイルシステム:HDFSシンク
- ソースとシンクとの間の--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