Apache-flume-configuration
Apache Flume-構成
Flumeをインストールしたら、* key-valueペア*を持つJavaプロパティファイルである構成ファイルを使用して構成する必要があります。 ファイルのキーに値を渡す必要があります。
Flume構成ファイルでは、次のことが必要です-
- 現在のエージェントのコンポーネントに名前を付けます。
- ソースを説明/構成します。
- シンクを説明/構成します。
- チャネルを説明/構成します。
- ソースとシンクをチャネルにバインドします。
通常、Flumeには複数のエージェントを配置できます。 一意の名前を使用して、各エージェントを区別できます。 そして、この名前を使用して、各エージェントを構成する必要があります。
コンポーネントの命名
まず最初に、以下に示すように、エージェントのソース、シンク、チャネルなどのコンポーネントに名前を付けてリストする必要があります。
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name
Flumeは、さまざまなソース、シンク、およびチャネルをサポートしています。 それらは以下の表にリストされています。
Sources | Channels | Sinks |
---|---|---|
|
|
|
どれでも使用できます。 たとえば、Twitterソースを使用してメモリチャネルを介してTwitterデータをHDFSシンクに転送し、エージェント名idが TwitterAgent の場合、
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
エージェントのコンポーネントを一覧表示した後、プロパティに値を指定して、ソース、シンク、およびチャネルを説明する必要があります。
ソースの説明
各ソースには、プロパティの個別のリストがあります。 「type」という名前のプロパティはすべてのソースに共通であり、使用しているソースのタイプを指定するために使用されます。
以下に示すように、プロパティ「type」とともに、特定のソースのすべての*必須*プロパティの値を提供して設定する必要があります。
agent_name.sources. source_name.type = value
agent_name.sources. source_name.property2 = value
agent_name.sources. source_name.property3 = value
たとえば、* twitterソース*を検討する場合、設定する値を提供する必要があるプロパティは次のとおりです。
TwitterAgent.sources.Twitter.type = Twitter (type name)
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
シンクの説明
ソースと同様に、各シンクにはプロパティの個別のリストがあります。 「type」という名前のプロパティはすべてのシンクに共通であり、使用しているシンクのタイプを指定するために使用されます。 以下に示すように、プロパティ "type"と共に、特定のシンクのすべての*必須*プロパティに値を提供して構成する必要があります。
agent_name.sinks. sink_name.type = value
agent_name.sinks. sink_name.property2 = value
agent_name.sinks. sink_name.property3 = value
たとえば、* HDFSシンク*を検討する場合、設定する値を提供する必要があるプロパティは次のとおりです。
TwitterAgent.sinks.HDFS.type = hdfs (type name)
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data
チャンネルの説明
Flumeは、ソースとシンク間でデータを転送するためのさまざまなチャネルを提供します。 したがって、ソースおよびチャネルとともに、エージェントで使用されるチャネルを記述する必要があります。
各チャネルを説明するには、以下に示すように、必要なプロパティを設定する必要があります。
agent_name.channels.channel_name.type = value
agent_name.channels.channel_name. property2 = value
agent_name.channels.channel_name. property3 = value
たとえば、*メモリチャネル*を考慮する場合、設定する値を提供する必要があるプロパティは次のとおりです。
TwitterAgent.channels.MemChannel.type = memory (type name)
ソースとシンクをチャネルにバインドする
チャネルはソースとシンクを接続するため、以下に示すように、両方をチャネルにバインドする必要があります。
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name
次の例は、ソースとシンクをチャネルにバインドする方法を示しています。 ここでは、* twitterソース、メモリチャネル*、および* HDFSシンク*を検討します。
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel
Flumeエージェントの開始
構成後、Flumeエージェントを開始する必要があります。 それは次のように行われます-
$ bin/flume-ng agent --conf ./conf/-f conf/twitter.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
ここで-
- agent -Flumeエージェントを開始するコマンド
- *-conf、-c <conf> *-confディレクトリの構成ファイルを使用
- -f <file> -欠落している場合、構成ファイルのパスを指定します
- *-name、-n <name> *-twitterエージェントの名前
- -D property = value -Javaシステムプロパティ値を設定します。