Apache Flume - Source du générateur de séquence
Dans le chapitre précédent, nous avons vu comment récupérer des données de la source Twitter vers HDFS. Ce chapitre explique comment récupérer des données depuisSequence generator.
Conditions préalables
Pour exécuter l'exemple fourni dans ce chapitre, vous devez installer HDFS de même que Flume. Par conséquent, vérifiez l'installation de Hadoop et démarrez le HDFS avant de continuer. (Reportez-vous au chapitre précédent pour savoir comment démarrer le HDFS).
Configurer Flume
Nous devons configurer la source, le canal et le puits en utilisant le fichier de configuration dans le confdossier. L'exemple donné dans ce chapitre utilise unsequence generator source, une memory channel, Et un HDFS sink.
Source du générateur de séquence
C'est la source qui génère les événements en continu. Il maintient un compteur qui commence à 0 et incrémente de 1. Il est utilisé à des fins de test. Lors de la configuration de cette source, vous devez fournir des valeurs aux propriétés suivantes -
Channels
Source type - seq
Canal
Nous utilisons le memorycanal. Pour configurer le canal mémoire, vous devez fournir une valeur au type du canal. Vous trouverez ci-dessous la liste des propriétés que vous devez fournir lors de la configuration du canal mémoire -
type- Il contient le type de chaîne. Dans notre exemple, le type est MemChannel.
Capacity- C'est le nombre maximum d'événements stockés dans le canal. Sa valeur par défaut est 100. (facultatif)
TransactionCapacity- C'est le nombre maximum d'événements que le canal accepte ou envoie. Sa valeur par défaut est 100. (facultatif).
Évier HDFS
Ce récepteur écrit des données dans le HDFS. Pour configurer ce récepteur, vous devez fournir les détails suivants.
Channel
type - hdfs
hdfs.path - le chemin du répertoire dans HDFS où les données doivent être stockées.
Et nous pouvons fournir des valeurs facultatives basées sur le scénario. Vous trouverez ci-dessous les propriétés facultatives du récepteur HDFS que nous configurons dans notre application.
fileType - C'est le format de fichier requis de notre fichier HDFS. SequenceFile, DataStream et CompressedStreamsont les trois types disponibles avec ce flux. Dans notre exemple, nous utilisons leDataStream.
writeFormat - Peut être texte ou inscriptible.
batchSize- Il s'agit du nombre d'événements écrits dans un fichier avant qu'il ne soit vidé dans le HDFS. Sa valeur par défaut est 100.
rollsize- C'est la taille du fichier pour déclencher un roulement. Sa valeur par défaut est 100.
rollCount- C'est le nombre d'événements écrits dans le fichier avant qu'il ne soit lancé. Sa valeur par défaut est 10.
Exemple - Fichier de configuration
Ci-dessous est un exemple du fichier de configuration. Copiez ce contenu et enregistrez-le sousseq_gen .conf dans le dossier conf de Flume.
# Naming the components on the current agent
SeqGenAgent.sources = SeqSource
SeqGenAgent.channels = MemChannel
SeqGenAgent.sinks = HDFS
# Describing/Configuring the source
SeqGenAgent.sources.SeqSource.type = seq
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream
# Describing/Configuring the channel
SeqGenAgent.channels.MemChannel.type = memory
SeqGenAgent.channels.MemChannel.capacity = 1000
SeqGenAgent.channels.MemChannel.transactionCapacity = 100
# Binding the source and sink to the channel
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.channel = MemChannel
Exécution
Parcourez le répertoire de base de Flume et exécutez l'application comme indiqué ci-dessous.
$ cd $FLUME_HOME
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf
--name SeqGenAgent
Si tout se passe bien, la source commence à générer des numéros de séquence qui seront poussés dans le HDFS sous la forme de fichiers journaux.
Ci-dessous, un instantané de la fenêtre d'invite de commande récupérant les données générées par le générateur de séquence dans le HDFS.
Vérification du HDFS
Vous pouvez accéder à l'interface Web d'administration Hadoop à l'aide de l'URL suivante:
http://localhost:50070/
Cliquez sur le menu déroulant nommé Utilitiessur le côté droit de la page. Vous pouvez voir deux options comme indiqué dans le diagramme ci-dessous.
Cliquer sur Browse the file system et entrez le chemin du répertoire HDFS dans lequel vous avez stocké les données générées par le générateur de séquence.
Dans notre exemple, le chemin sera /user/Hadoop/ seqgen_data /. Ensuite, vous pouvez voir la liste des fichiers journaux générés par le générateur de séquence, stockés dans le HDFS comme indiqué ci-dessous.
Vérification du contenu du fichier
Tous ces fichiers journaux contiennent des nombres au format séquentiel. Vous pouvez vérifier le contenu de ces fichiers dans le système de fichiers en utilisant lecat comme indiqué ci-dessous.