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
-
Accédez à la page des services du cluster.
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page Cluster Management, localisez le cluster que vous souhaitez gérer et cliquez sur Services dans la colonne Actions.
Sur la page Services, cliquez sur Configure dans la section du service Flume.
-
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.
Sur la page Configure, cliquez sur l'onglet flume-conf.properties.
Dans les listes déroulantes en haut de la page, sélectionnez Independent Node Configuration et core-1-1.
-
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 = 1000000Paramè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.
-
-
Enregistrez la configuration.
En bas de la page, cliquez sur Save.
Dans la boîte de dialogue, saisissez une raison pour la modification et cliquez sur OK.
Suivez les instructions de l'étape Étape 3 pour configurer l'agent Flume sur le nœud core-1-2 et enregistrer la configuration.
-
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.
Dans les listes déroulantes en haut de la page, sélectionnez Independent Node Configuration et master-1-1.
-
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-channelParamè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.
-
-
Enregistrez la configuration.
En bas de la page, cliquez sur Save.
Dans la boîte de dialogue, saisissez une raison pour la modification et cliquez sur OK.
-
Démarrez l'agent Flume.
Dans le coin supérieur droit, choisissez .
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur OK.
-
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.