E-MapReduce (EMR) の Flume は、複数の方法で起動できます。このトピックでは、EMR コンソールで Flume の設定を変更し、Flume エージェントを起動して、HDFS の監査ログを HDFS にリアルタイムで同期する方法について説明します。
前提条件
データレイククラスターが作成され、Flume サービスが選択されていること。詳細については、「クラスターの作成」をご参照ください。
操作手順
-
クラスターサービスページに移動します。
-
E-MapReduce コンソールにログインします。
-
上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。
-
Cluster Management ページで、管理するクラスターを見つけ、[操作] 列の Services をクリックします。
-
-
Services ページで、Flume サービスセクションの Configure をクリックします。
-
core-1-1 ノードで Flume エージェントを設定し、設定を保存します。
以下の設定パラメーターは、オープンソースの Flume の標準に準拠しています。詳細については、「Apache Flume ユーザーガイド」をご参照ください。
-
Configure ページで、[flume-conf.properties] タブをクリックします。
-
上部のドロップダウンリストから Independent Node Configuration と [core-1-1] を選択します。
-
要件に応じて flume-conf.properties のパラメーターを変更します。
default-agent.sinks = default-sink default-agent.sources = default-source default-agent.channels = default-channel default-agent.sinks.default-sink.type = hdfs default-agent.sinks.default-sink.channel = default-channel default-agent.channels.default-channel.type = file default-agent.sources.default-source.type = avro default-agent.sinks.default-sink.hdfs.path = hdfs://master-1-1:9000/path default-agent.sinks.default-sink.hdfs.fileType = DataStream default-agent.sinks.default-sink.hdfs.rollSize = 0 default-agent.sinks.default-sink.hdfs.rollCount = 0 default-agent.sinks.default-sink.hdfs.rollInterval = 86400 default-agent.sinks.default-sink.hdfs.batchSize = 51200 default-agent.sources.default-source.bind = 0.0.0.0 default-agent.sources.default-source.port = **** default-agent.sources.default-source.channels = default-channel default-agent.channels.default-channel.transactionCapacity = 10000 default-agent.channels.default-channel.dataDirs = **** default-agent.channels.default-channel.checkpointDir = **** default-agent.channels.default-channel.capacity = 1000000パラメーター
説明
default-agent.sinks
すべてのシンクの名前。例:default-sink。
default-agent.sources
すべてのソースの名前。例:default-source。
default-agent.channels
すべてのチャンネルの名前。例:default-channel。
default-agent.sinks.default-sink.hdfs.path
HDFS パス。
-
高可用性 (HA) クラスターの場合:hdfs://emr-cluster/path
-
非 HA クラスターの場合:hdfs://master-1-1:9000/path
default-agent.sinks.default-sink.hdfs.fileType
このパラメーターは DataStream に設定する必要があります。
default-agent.sinks.default-sink.hdfs.rollSize
ロールをトリガーするファイルサイズ (バイト単位)。一時ファイルがこのサイズに達すると、シンクはそれを送信先ファイルにロールします。
このパラメーターを 0 に設定すると、ファイルはサイズに基づいてロールされません。
default-agent.sinks.default-sink.hdfs.rollCount
ロールをトリガーするイベント数。イベント数がこの値に達すると、シンクは一時ファイルを送信先ファイルにロールします。
このパラメーターを 0 に設定すると、イベント数に基づいてファイルはロールされません。
default-agent.sinks.default-sink.hdfs.rollInterval
ファイルをロールする時間間隔 (秒単位)。例:86400。
default-agent.sinks.default-sink.hdfs.batchSize
HDFS にフラッシュする前にバッチ処理するイベント数。例:51200。
default-agent.sinks.default-sink.channel
default-sink のチャンネル名。
default-agent.sources.default-source.bind
バインドする IP アドレス。マシン上のすべてのインターフェイスにバインドするには、これを 0.0.0.0 に設定します。
default-agent.sources.default-source.port
リッスンするポート。必要に応じてこのパラメーターを設定します。
default-agent.sources.default-source.channels
default-source のチャンネル名。
default-agent.channels.default-channel.transactionCapacity
チャンネルが 1 回のトランザクションで処理できるイベントの最大数。デフォルト値は 10000 です。
default-agent.channels.default-channel.dataDirs
チャンネルがイベントデータを保存するパス。
このパラメーターはオプションです。デフォルトのパスは ~/.flume/file-channel/data です。
default-agent.channels.default-channel.checkpointDir
チャンネルがチェックポイントを保存するパス。
このパラメーターはオプションです。デフォルトのパスは ~/.flume/file-channel/checkpoint です。
default-agent.channels.default-channel.capacity
チャンネルのキャパシティ。HDFS のロール設定に基づいてこのパラメーターを設定します。
このパラメーターはオプションです。デフォルト値は 1000000 です。
-
- 設定を保存します。
- ページ下部の Save をクリックします。
- ダイアログボックスで変更理由を入力し、OK をクリックします。
-
-
ステップ 3 の手順に従って、core-1-2 ノードで Flume エージェントを構成し、構成を保存します。
-
マスターノードグループで Flume エージェントを設定し、設定を保存します。
以下の設定パラメーターは、オープンソースの Flume の標準に準拠しています。詳細については、「Apache Flume ユーザーガイド」をご参照ください。
-
上部のドロップダウンリストから Independent Node Configuration と [master-1-1] を選択します。
-
要件に応じて flume-conf.properties のパラメーターを変更します。
default-agent.sinks = default-sink k1 default-agent.sources = default-source default-agent.channels = default-channel default-agent.sources.default-source.type = taildir default-agent.sinks.default-sink.type = avro default-agent.sinks.default-sink.channel = default-channel default-agent.channels.default-channel.type = file default-agent.sources.default-source.filegroups = f1 default-agent.sources.default-source.filegroups.f1 = /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.* default-agent.sources.default-source.positionFile = ~/.flume/taildir_position.json default-agent.sources.default-source.channels = default-channel default-agent.sources.default-source.batchSize = 2000 default-agent.sources.default-source.ignoreRenameWhenMultiMatching = true default-agent.channels.default-channel.checkpointDir = **** default-agent.channels.default-channel.dataDirs = **** default-agent.channels.default-channel.capacity = **** default-agent.channels.default-channel.transactionCapacity = 2000 default-agent.sinkgroups = g1 default-agent.sinkgroups.g1.sinks = default-sink k1 default-agent.sinkgroups.g1.processor.type = failover default-agent.sinkgroups.g1.processor.priority.default-sink = 10 default-agent.sinkgroups.g1.processor.priority.k1 = 5 default-agent.sinks.default-sink.hostname = **** default-agent.sinks.default-sink.port = **** default-agent.sinks.k1.hostname = **** default-agent.sinks.k1.port = **** default-agent.sinks.default-sink.batch-size = 2000 default-agent.sinks.k1.batch-size = 2000 default-agent.sinks.k1.type = avro default-agent.sinks.k1.channel = default-channelパラメーター
説明
default-agent.sinks
すべてのシンクの名前。例:default-sink k1。
default-agent.sources
すべてのソースの名前。例:default-source。
default-agent.channels
すべてのチャンネルの名前。例:default-channel。
default-agent.sources.default-source.filegroups.f1
ログファイルのパス。デフォルトのパスは /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.* です。
default-agent.sources.default-source.positionFile
Flume がポジションファイルを保存するパス。
このパラメーターはオプションです。デフォルトのパスは ~/.flume/taildir_position.json です。
default-agent.channels.default-channel.checkpointDir
チャンネルがチェックポイントを保存するパス。
default-agent.channels.default-channel.dataDirs
チャンネルがイベントデータを保存するパス。
default-agent.channels.default-channel.capacity
HDFS のロール設定に基づいてこのパラメーターを設定します。
default-agent.sources.default-source.batchSize
ソースが 1 回のバッチでチャンネルに書き込むメッセージの最大数。例:2000。
default-agent.channels.default-channel.transactionCapacity
チャンネルが 1 回のトランザクションでソースから取得したり、シンクにプッシュしたりできるイベントの最大数。例:2000。
default-agent.sources.default-source.ignoreRenameWhenMultiMatching
Flume の taildir ソースがファイルグループでワイルドカードを使用してローテーションされた log4j ファイルを照合すると、データが重複する可能性があります。この問題を回避するには、このパラメーターを true に設定します。
default-agent.sinkgroups
すべてのシンクグループの名前。例:g1。
default-agent.sinkgroups.g1.sinks
g1 シンクグループ内のすべてのシンクの名前。例:default-sink k1。
default-agent.sinkgroups.g1.processor.type
g1 シンクグループのプロセッサタイプ。有効な値:
-
default:デフォルトのプロセッサ。
-
failover:フェールオーバープロセッサ。
-
load_balance:負荷分散プロセッサ。
default-agent.sinkgroups.g1.processor.priority.default-sink
g1 シンクグループ内での default-sink の優先度。値が大きいほど優先度が高くなります。例:10。
default-agent.sinkgroups.g1.processor.priority.k1
g1 シンクグループ内での k1 シンクの優先度。値が大きいほど優先度が高くなります。例:5。
default-agent.sinks.default-sink.hostname
core-1-1 ノードの IP アドレス。
default-agent.sinks.default-sink.port
core-1-1 ノード上の Flume エージェントのポート。
default-agent.sinks.k1.hostname
core-1-2 ノードの IP アドレス。
default-agent.sinks.k1.port
core-1-2 ノード上の Flume エージェントのポート。
default-agent.sinks.default-sink.batch-size
default-sink が各バッチで送信するイベント数。例:2000。
default-agent.sinks.k1.batch-size
k1 が各バッチで送信するイベント数。例:2000。
default-agent.sinks.k1.type
シンクタイプ。例:avro。
default-agent.sinks.k1.channel
シンクのチャンネル。例:default-channel。
-
- 設定を保存します。
- ページ下部の Save をクリックします。
- ダイアログボックスで変更理由を入力し、OK をクリックします。
-
-
Flume エージェントを起動します。
-
右上隅で、 を選択します。
-
表示されたダイアログボックスの Execution Reason フィールドに理由を入力し、OK をクリックします。
-
Confirm ダイアログボックスで OK をクリックします。
サービスが再起動すると、Flume エージェントは HDFS 監査ログを HDFS に同期します。
Flume エージェントのログは /var/log/emr/flume/default-agent/flume.log に保存されます。
-