E-MapReduce (EMR) Flumeは複数の方法で起動できます。このトピックでは、EMRコンソールでFlumeの設定を変更し、Flumeエージェントを起動して、監査ログをHDFSにリアルタイムで同期する方法について説明します。
前提条件
EMRデータレイククラスタが作成され、クラスタ作成時にオプションサービスからFlumeが選択されています。クラスタの作成方法の詳細については、「クラスタの作成」をご参照ください。
手順
- [サービス] タブに移動します。
- 上部のナビゲーションバーで、クラスタが存在するリージョンを選択 し、ビジネス要件に基づいてリソースグループを選択します。
- [ECS上のEMR] ページで、管理するクラスタの [アクション] 列にある [サービス] をクリックします。
- [サービス] タブで、構成[flume] サービスセクションの をクリックします。
- core-1-1ノードのFlumeエージェントを構成し、構成を保存します。オープンソースのFlumeの構成に基づいてパラメータを設定します。詳細については、「Apache Flume」をご参照ください。
- [構成] タブで、[flume-conf.properties] サブタブをクリックします。
- ドロップダウンリストから [独立ノード構成] と [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 に設定すると、マシンのすべてのIPアドレスが関連付けられます。 default-agent.sources.default-source.port リスニングポート。必要に応じてこのパラメータを設定します。 default-agent.sources.default-source.channels default-source のチャネルの名前。 default-agent.channels.default-channel.transactionCapacity トランザクションでチャネルが渡すイベントの最大数。デフォルト値: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。
- 構成を保存します。
- 左下隅にある [保存] をクリックします。
- 表示されるダイアログボックスで、実行理由を入力し、[保存] をクリックします。
- 手順 3 を参照して、core-1-2ノードのFlumeエージェントを構成し、構成を保存します。
- マスターノードグループのFlumeエージェントを構成し、構成を保存します。オープンソースのFlumeの構成に基づいてパラメータを設定します。詳細については、「Apache Flume」をご参照ください。
- [構成] タブで、ドロップダウンリストから [独立ノード構成] と [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/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 一度にチャネルに書き込まれるイベントの最大数。例:2000。 default-agent.channels.default-channel.transactionCapacity 各チャネルがソースから取得するか、シンクにプッシュするイベントの最大数。例: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:1 つのシンクのみが使用されます。
- failover:フェールオーバーが許可されます。
- load_balance:負荷分散が許可されます。
default-agent.sinkgroups.g1.processor.priority.default-sink シンクグループ g1 内の default-sink という名前のシンクの重みを指定します。パラメータを高い値に設定すると、default-sink が優先されます。たとえば、このパラメータを 10 に設定できます。 default-agent.sinkgroups.g1.processor.priority.k1 シンクグループ g1 内の k1 シンクの重みを指定します。パラメータを高い値に設定すると、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。 - 構成を保存します。
- 左下隅にある [保存] をクリックします。
- 表示されるダイアログボックスで、実行理由を入力し、[保存] をクリックします。
- Flumeエージェントを起動します。
- 右上隅で、 を選択します。
- 表示されるダイアログボックスで、[実行理由] パラメータを設定し、[OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。監査ログは HDFS に同期されます。
Flumeエージェントのログは、/var/log/emr/flume/default-agent/flume.log ディレクトリの flume.log ファイルに格納されます。