すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:HDFSへの監査ログの同期

最終更新日:Jan 11, 2025

E-MapReduce (EMR) Flumeは複数の方法で起動できます。このトピックでは、EMRコンソールでFlumeの設定を変更し、Flumeエージェントを起動して、監査ログをHDFSにリアルタイムで同期する方法について説明します。

前提条件

EMRデータレイククラスタが作成され、クラスタ作成時にオプションサービスからFlumeが選択されています。クラスタの作成方法の詳細については、「クラスタの作成」をご参照ください。

手順

  1. [サービス] タブに移動します。

    1. 上部のナビゲーションバーで、クラスタが存在するリージョンを選択 し、ビジネス要件に基づいてリソースグループを選択します
    2. [ECS上のEMR] ページで、管理するクラスタの [アクション] 列にある [サービス] をクリックします。
  2. [サービス] タブで、構成[flume] サービスセクションの をクリックします。
  3. core-1-1ノードのFlumeエージェントを構成し、構成を保存します。
    オープンソースのFlumeの構成に基づいてパラメータを設定します。詳細については、「Apache Flume」をご参照ください。
    1. [構成] タブで、[flume-conf.properties] サブタブをクリックします。
    2. ドロップダウンリストから [独立ノード構成][core-1-1] を選択します。
    3. 必要に応じて、[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.pathHDFSパス。
      • 高可用性 (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.batchSizeHDFSにフラッシュされる前にファイルに書き込まれるイベント数を指定します。例:51200。
      default-agent.sinks.default-sink.channeldefault-sink のチャネルの名前を指定します。
      default-agent.sources.default-source.bind関連付けられたIPアドレス。このパラメータを 0.0.0.0 に設定すると、マシンのすべてのIPアドレスが関連付けられます。
      default-agent.sources.default-source.portリスニングポート。必要に応じてこのパラメータを設定します。
      default-agent.sources.default-source.channelsdefault-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。

    4. 構成を保存します。
      1. 左下隅にある [保存] をクリックします。
      2. 表示されるダイアログボックスで、実行理由を入力し、[保存] をクリックします。
  4. 手順 3 を参照して、core-1-2ノードのFlumeエージェントを構成し、構成を保存します。
  5. マスターノードグループのFlumeエージェントを構成し、構成を保存します。
    オープンソースのFlumeの構成に基づいてパラメータを設定します。詳細については、「Apache Flume」をご参照ください。
    1. [構成] タブで、ドロップダウンリストから [独立ノード構成][master-1-1] を選択します。
    2. 必要に応じて、[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.ignoreRenameWhenMultiMatchingFlume 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.hostnamecore-1-1ノードのIPアドレス。
      default-agent.sinks.default-sink.portcore-1-1ノードのFlumeエージェントのポート番号。
      default-agent.sinks.k1.hostnamecore-1-2ノードのIPアドレス。
      default-agent.sinks.k1.portcore-1-2ノードのFlumeエージェントのポート番号。
      default-agent.sinks.default-sink.batch-sizedefault-sink によって一度に送信されるイベントの数。例:2000。
      default-agent.sinks.k1.batch-sizek1 シンクによって一度に送信されるイベントの数。例:2000。
      default-agent.sinks.k1.typeシンクタイプを指定します。例:avro。
      default-agent.sinks.k1.channelシンクのチャネルを構成します。例:default-channel。
    3. 構成を保存します。
      1. 左下隅にある [保存] をクリックします。
      2. 表示されるダイアログボックスで、実行理由を入力し、[保存] をクリックします。
  6. Flumeエージェントを起動します。
    1. 右上隅で、[詳細] > [再起動] を選択します。
    2. 表示されるダイアログボックスで、[実行理由] パラメータを設定し、[OK] をクリックします。
    3. [確認] メッセージで、[OK] をクリックします。
      監査ログは HDFS に同期されます。

      Flumeエージェントのログは、/var/log/emr/flume/default-agent/flume.log ディレクトリの flume.log ファイルに格納されます。