Tous les produits
Search
Centre de documentation

E-MapReduce:Synchronize HDFS audit logs to HDFS

Dernière mise à jour :Aug 20, 2026

E-MapReduce (EMR) Flume peut être démarré de plusieurs manières. Cette rubrique explique comment modifier la configuration de Flume et démarrer un agent Flume dans la console E-MapReduce pour synchroniser les journaux d'audit HDFS vers HDFS en temps réel.

Prérequis

Un cluster Data Lake a été créé et le service Flume est sélectionné. Pour plus d'informations, consultez la section Créer un cluster.

Procédure

  1. Accédez à la page des services du cluster.

    1. Connectez-vous à la console E-MapReduce.

    2. Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.

    3. Sur la page Cluster Management, localisez le cluster que vous souhaitez gérer et cliquez sur Services dans la colonne Actions.

  2. Sur la page Services, cliquez sur Configure dans la section du service Flume.

  3. Configurez l'agent Flume sur le nœud core-1-1 et enregistrez la configuration.

    Les paramètres de configuration suivants sont conformes aux normes open source de Flume. Pour plus d'informations, consultez le Guide de l'utilisateur Apache Flume.

    1. Sur la page Configure, cliquez sur l'onglet flume-conf.properties.

    2. Dans les listes déroulantes en haut de la page, sélectionnez Independent Node Configuration et core-1-1.

    3. Modifiez les paramètres dans flume-conf.properties selon vos besoins.

      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

      Paramètre

      Description

      default-agent.sinks

      Noms de tous les sinks. Exemple : default-sink.

      default-agent.sources

      Noms de toutes les sources. Exemple : default-source.

      default-agent.channels

      Noms de tous les canaux. Exemple : default-channel.

      default-agent.sinks.default-sink.hdfs.path

      Chemin HDFS.

      • Pour un cluster haute disponibilité (HA) : hdfs://emr-cluster/path

      • Pour un cluster non-HA : hdfs://master-1-1:9000/path

      default-agent.sinks.default-sink.hdfs.fileType

      Ce paramètre doit être défini sur DataStream.

      default-agent.sinks.default-sink.hdfs.rollSize

      Taille du fichier en octets déclenchant un roulement. Lorsqu'un fichier temporaire atteint cette taille, le sink effectue un roulement vers un fichier de destination.

      Si vous définissez ce paramètre sur 0, aucun roulement n'est effectué en fonction de la taille.

      default-agent.sinks.default-sink.hdfs.rollCount

      Nombre d'événements déclenchant un roulement. Lorsque le nombre d'événements atteint cette valeur, le sink effectue un roulement du fichier temporaire vers un fichier de destination.

      Si vous définissez ce paramètre sur 0, aucun roulement n'est effectué en fonction du nombre d'événements.

      default-agent.sinks.default-sink.hdfs.rollInterval

      Intervalle de temps en secondes entre les roulements de fichiers. Exemple : 86400.

      default-agent.sinks.default-sink.hdfs.batchSize

      Nombre d'événements regroupés avant l'écriture dans HDFS. Exemple : 51200.

      default-agent.sinks.default-sink.channel

      Nom du canal pour default-sink.

      default-agent.sources.default-source.bind

      Adresse IP à laquelle se lier. Définissez cette valeur sur 0.0.0.0 pour vous lier à toutes les interfaces de la machine.

      default-agent.sources.default-source.port

      Port d'écoute. Configurez ce paramètre selon vos besoins.

      default-agent.sources.default-source.channels

      Nom du canal pour default-source.

      default-agent.channels.default-channel.transactionCapacity

      Nombre maximal d'événements que le canal peut traiter en une seule transaction. La valeur par défaut est 10000.

      default-agent.channels.default-channel.dataDirs

      Chemin où le canal stocke les données des événements.

      Ce paramètre est facultatif. Le chemin par défaut est ~/.flume/file-channel/data.

      default-agent.channels.default-channel.checkpointDir

      Chemin où le canal stocke les points de contrôle.

      Ce paramètre est facultatif. Le chemin par défaut est ~/.flume/file-channel/checkpoint.

      default-agent.channels.default-channel.capacity

      Capacité du canal. Configurez ce paramètre en fonction de vos paramètres de roulement HDFS.

      Ce paramètre est facultatif. La valeur par défaut est 1000000.

    4. Enregistrez la configuration.

      1. En bas de la page, cliquez sur Save.

      2. Dans la boîte de dialogue, saisissez une raison pour la modification et cliquez sur OK.

  4. Suivez les instructions de l'étape Étape 3 pour configurer l'agent Flume sur le nœud core-1-2 et enregistrer la configuration.

  5. Configurez l'agent Flume sur le groupe de nœuds master et enregistrez la configuration.

    Les paramètres de configuration suivants sont conformes aux normes open source de Flume. Pour plus d'informations, consultez le Guide de l'utilisateur Apache Flume.

    1. Dans les listes déroulantes en haut de la page, sélectionnez Independent Node Configuration et master-1-1.

    2. Modifiez les paramètres dans flume-conf.properties selon vos besoins.

      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

      Paramètre

      Description

      default-agent.sinks

      Noms de tous les sinks. Exemple : default-sink k1.

      default-agent.sources

      Noms de toutes les sources. Exemple : default-source.

      default-agent.channels

      Noms de tous les canaux. Exemple : default-channel.

      default-agent.sources.default-source.filegroups.f1

      Chemin des fichiers journaux. Le chemin par défaut est /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.*.

      default-agent.sources.default-source.positionFile

      Chemin où Flume stocke le fichier de position.

      Ce paramètre est facultatif. Le chemin par défaut est ~/.flume/taildir_position.json.

      default-agent.channels.default-channel.checkpointDir

      Chemin où le canal stocke les points de contrôle.

      default-agent.channels.default-channel.dataDirs

      Chemin où le canal stocke les données des événements.

      default-agent.channels.default-channel.capacity

      Définissez ce paramètre en fonction de vos paramètres de roulement HDFS.

      default-agent.sources.default-source.batchSize

      Nombre maximal de messages que la source écrit dans le canal en un seul lot. Exemple : 2000.

      default-agent.channels.default-channel.transactionCapacity

      Nombre maximal d'événements qu'un canal peut prendre d'une source ou pousser vers un sink par transaction. Exemple : 2000.

      default-agent.sources.default-source.ignoreRenameWhenMultiMatching

      Lorsqu'une source Flume taildir utilise un caractère générique dans un groupe de fichiers pour faire correspondre des fichiers log4j ayant subi une rotation, des duplications de données peuvent se produire. Définissez ce paramètre sur true pour éviter ce problème.

      default-agent.sinkgroups

      Noms de tous les groupes de sinks. Exemple : g1.

      default-agent.sinkgroups.g1.sinks

      Noms de tous les sinks dans le groupe de sinks g1. Exemple : default-sink k1.

      default-agent.sinkgroups.g1.processor.type

      Type de processeur pour le groupe de sinks g1. Valeurs valides :

      • default : le processeur par défaut.

      • failover : le processeur de basculement.

      • load_balance : le processeur d'équilibrage de charge.

      default-agent.sinkgroups.g1.processor.priority.default-sink

      Priorité de default-sink au sein du groupe de sinks g1. Une valeur plus élevée indique une priorité plus grande. Exemple : 10.

      default-agent.sinkgroups.g1.processor.priority.k1

      Priorité du sink k1 au sein du groupe de sinks g1. Une valeur plus élevée indique une priorité plus grande. Exemple : 5.

      default-agent.sinks.default-sink.hostname

      Adresse IP du nœud core-1-1.

      default-agent.sinks.default-sink.port

      Port de l'agent Flume sur le nœud core-1-1.

      default-agent.sinks.k1.hostname

      Adresse IP du nœud core-1-2.

      default-agent.sinks.k1.port

      Port de l'agent Flume sur le nœud core-1-2.

      default-agent.sinks.default-sink.batch-size

      Nombre d'événements envoyés par default-sink dans chaque lot. Exemple : 2000.

      default-agent.sinks.k1.batch-size

      Nombre d'événements envoyés par k1 dans chaque lot. Exemple : 2000.

      default-agent.sinks.k1.type

      Type de sink. Exemple : avro.

      default-agent.sinks.k1.channel

      Canal pour le sink. Exemple : default-channel.

    3. Enregistrez la configuration.

      1. En bas de la page, cliquez sur Save.

      2. Dans la boîte de dialogue, saisissez une raison pour la modification et cliquez sur OK.

  6. Démarrez l'agent Flume.

    1. Dans le coin supérieur droit, choisissez More > Restart.

    2. Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur OK.

    3. Dans la boîte de dialogue Confirm, cliquez sur OK.

      Une fois le service redémarré, l'agent Flume synchronise les journaux d'audit HDFS vers HDFS.

      Les journaux de l'agent Flume sont stockés dans /var/log/emr/flume/default-agent/flume.log.