2016-10-14 7 views
0

Ceci est mon fichier de configuration ci-dessous, il a été travaillé avant mais soudainement plus tard en donnant une erreur. Actully ce que je suis en train de faire est de déplacer tous les journaux du local à HDFS les journaux devraient déplacés en un seul fichier à HDFS pas comme pièces:Le script Flume donne Avertissement: Aucun répertoire de configuration défini! Utilisez --conf <dir> pour remplacer

#create source, channels, and sink 

agent1.sources=S1 
agent1.sinks=H1 
agent1.channels=C1 

#bind the source and sink to the channel 

agent1.sources.S1.channels=C1 
agent1.sinks.H1.channel=C1 

#Specify the source type and directory 
agent1.sources.S1.type=spooldir 
agent1.sources.S1.spoolDir=/tmp/spooldir 

#Specify the Sink type, directory, and parameters 
agent1.sinks.H1.type=HDFS 
agent1.sinks.H1.hdfs.path=/user/hive/warehouse 
agent1.sinks.H1.hdfs.filePrefix=events 
agent1.sinks.H1.hdfs.fileSuffix=.log 
agent1.sinks.H1.hdfs.inUsePrefix=processing 
A1.sinks.H1.hdfs.fileType=DataStream 

#Specify the channeltyoe (Memory vs File) 
agent1.channels.C1.type=file 

je lance mon agent de ce script:

flume-ng agent --conf-file /usr/local/flume/conf/spoolingToHDFS.conf --name agent1 

je reçois cet avertissement:

Warning: No configuration directory set! Use --conf <dir> to override. 

également

16/10/14 16:22:37 WARN conf.FlumeConfiguration: Agent configuration for 'A1' does not contain any channels. Marking it as invalid. 
16/10/14 16:22:37 WARN conf.FlumeConfiguration: Agent configuration invalid for agent 'A1'. It will be removed. 

puis juste renommage Création et fermeture même journal à HDFS pour toujours comme ceci:

16/10/14 16:22:41 INFO node.Application: Starting Sink H1 
16/10/14 16:22:41 INFO node.Application: Starting Source S1 
16/10/14 16:22:41 INFO source.SpoolDirectorySource: SpoolDirectorySource source starting with directory: /tmp/spooldir 
16/10/14 16:22:41 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SINK, name: H1: Successfully registered new MBean. 
16/10/14 16:22:41 INFO instrumentation.MonitoredCounterGroup: Component type: SINK, name: H1 started 
16/10/14 16:22:41 INFO instrumentation.MonitoredCounterGroup: Monitored counter group for type: SOURCE, name: S1: Successfully registered new MBean. 
16/10/14 16:22:41 INFO instrumentation.MonitoredCounterGroup: Component type: SOURCE, name: S1 started 
16/10/14 16:22:41 INFO hdfs.HDFSSequenceFile: writeFormat = Writable, UseRawLocalFileSystem = false 
16/10/14 16:22:42 INFO hdfs.BucketWriter: Creating /user/hive/warehouse/processingevents.1476476561961.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Closing /user/hive/warehouse/processingevents.1476476561961.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Renaming /user/hive/warehouse/processingevents.1476476561961.log.tmp to /user/hive/warehouse/events.1476476561961.log 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Creating /user/hive/warehouse/processingevents.1476476561962.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Closing /user/hive/warehouse/processingevents.1476476561962.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Renaming /user/hive/warehouse/processingevents.1476476561962.log.tmp to /user/hive/warehouse/events.1476476561962.log 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Creating /user/hive/warehouse/processingevents.1476476561963.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Closing /user/hive/warehouse/processingevents.1476476561963.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Renaming /user/hive/warehouse/processingevents.1476476561963.log.tmp to /user/hive/warehouse/events.1476476561963.log 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Creating /user/hive/warehouse/processingevents.1476476561964.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Closing /user/hive/warehouse/processingevents.1476476561964.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Renaming /user/hive/warehouse/processingevents.1476476561964.log.tmp to /user/hive/warehouse/events.1476476561964.log 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Creating /user/hive/warehouse/processingevents.1476476561965.log.tmp 
16/10/14 16:22:44 INFO hdfs.BucketWriter: Closing /user/hive/warehouse/processingevents.1476476561965.log.tmp 
: 
: 
: 

Pourquoi flume conserve l'écriture même dossier pour jamais HDFS, comment puis-je déplacer un journal du local à HDFS sans les casser en pièces parce que ma taille de bûche habituellement entre 50 kb à 300 kb.

avertissement Mises à jour:

16/10/18 10:10:05 INFO tools.DirectMemoryUtils: Unable to get maxDirectMemory from VM: NoSuchMethodException: sun.misc.VM.maxDirectMemory(null) 

16/10/18 10:10:05 WARN file.ReplayHandler: Ignoring /home/USER/.flume/file-channel/data/log-18 due to EOF 
java.io.EOFException 
    at java.io.RandomAccessFile.readInt(RandomAccessFile.java:827) 
    at org.apache.flume.channel.file.LogFileFactory.getSequentialReader(LogFileFactory.java:169) 
    at org.apache.flume.channel.file.ReplayHandler.replayLog(ReplayHandler.java:264) 
    at org.apache.flume.channel.file.Log.doReplay(Log.java:529) 
    at org.apache.flume.channel.file.Log.replay(Log.java:455) 
    at org.apache.flume.channel.file.FileChannel.start(FileChannel.java:295) 
    at org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:251) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Répondre

0

Le dossier conf est utilisé par canal pour tirer des propriétés JRE et Tronçonner, vous pouvez corriger le message d'erreur en utilisant l'argument --conf comme indiqué:

flume-ng agent --conf /usr/local/flume/conf --conf-file /usr/local/flume/conf/spoolingToHDFS.conf --name agent1 

L'avertissement à propos de A1 est dû au fait que vous avez probablement une erreur de frappe vers la fin du fichier de configuration de votre agent:

A1.sinks.H1.hdfs.fileType=DataStream

qui devrait lire

agent1.sinks.H1.hdfs.fileType=DataStream

En ce qui concerne les fichiers - vous n'avez pas configuré un désérialiseur pour la source spoolDir et la valeur par défaut est la ligne, de sorte que vous obtenez un fichier HDFS pour chaque ligne dans les fichiers de votre spoolDir. Vous voulez utiliser le BlobDeserializer si vous voulez Flume utiliser le fichier entier comme un événement unique (https://flume.apache.org/FlumeUserGuide.html#blobdeserializer)

agent1.sources.S1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder 
+0

Merci pour la réponse @ Chris, je l'ai fait ce que vous suggérez et corriger la faute de frappe. Cependant, j'ai toujours le même problème en générant des logs sur hdfs même si le répertoire local de spooling est vide !! et autre avertissement que j'ai affronté s'il vous plaît voir les mises à jour ci-dessus. – Alsphere

+0

Vous ne savez pas où vous êtes actuellement bloqué - en utilisant BlobDeserializer, vous devriez obtenir un seul fichier poussé dans Flume en tant qu'événement unique. Que voulez-vous dire par 'le répertoire local de spooling est vide !! '- le spooldir que vous avez configuré devrait renommer les fichiers complétés comme .COMPLETED, pas les supprimer ainsi je suspecte que vous ayez un autre processus supprimant ces fichiers –

+0

Je voulais dire spooldir n'a aucun dossier. mais je reçois toujours des logs aléatoires pour hdfs. Ce problème se produit après avoir installé Hive. Q: Est-ce que Flume 1.6 fonctionne avec Hive 2.0? ou cela n'a pas d'importance? Merci – Alsphere