2016-05-15 11 views
2

Ich habe Probleme mit dem Flume-Speicherkanal. Ich lief einen Flume-Agent, der den Speicherkanal überflutete und die Logs begannen zu verschütten "Der Kanal ist voll, und kann jetzt keine Daten schreiben. Die Quelle wird es nach 250 Millisekunden erneut versuchen"Kanalspeicher ist beim Start voll

So weit so gut. Ich stoppe den Agenten, bearbeite die rune.conf, um die Kapazität zu erhöhen und versuche es erneut. Das Problem ist, dass bereits beim Start Flume schwappt die gleiche Botschaft:

`16/05/14 00:21:48 INFO node.Application: Starting new configuration: 
{ sourceRunners:{s1=EventDrivenSourceRunner: { source:Spool 
    Directory source s1: { spoolDir: /home/vagrant/logs } }} 
    sinkRunners:{kafka-avro-sink2=SinkRunner: { 
    policy:[email protected] 
    counterGroup:{ name:null counters:{} } }, kafka-avro- 
    sink1=SinkRunner: { 
    policy:[email protected] 
    counterGroup:{ name:null counters:{} } }} channels: 
    {mem1=org.apache.flume.channel.MemoryChannel{name: mem1}} } 
    16/05/14 00:21:48 INFO node.Application: Starting Channel mem1 
    16/05/14 00:21:48 INFO instrumentation.MonitoredCounterGroup:  
    Monitored counter group for type: CHANNEL, name: mem1: Successfully 
    registered new MBean. 
    16/05/14 00:21:48 INFO instrumentation.MonitoredCounterGroup: 
    Component type: CHANNEL, name: mem1 started 
    16/05/14 00:21:48 INFO node.Application: Starting Sink kafka-avro- 
    sink2 
    16/05/14 00:21:48 INFO node.Application: Starting Sink kafka-avro-sink1 
    16/05/14 00:21:48 INFO node.Application: Starting Source s1 
    16/05/14 00:21:48 INFO source.SpoolDirectorySource: 
    SpoolDirectorySource source starting with directory: 
    /home/vagrant/logs 
    16/05/14 00:21:48 INFO instrumentation.MonitoredCounterGroup: 
    Monitored counter group for type: SOURCE, name: s1: Successfully 
    registered new MBean. 
    16/05/14 00:21:48 INFO instrumentation.MonitoredCounterGroup: 
    Component type: SOURCE, name: s1 started 
    16/05/14 00:21:49 WARN source.SpoolDirectorySource: The channel is 
    full, and cannot write data now. The source will try again after 
    250 milliseconds 
    16/05/14 00:21:49 INFO avro.ReliableSpoolingFileEventReader: Last 
    read was never committed - resetting mark position. 
    16/05/14 00:21:49 WARN source.SpoolDirectorySource: The channel is 
    full, and cannot write data now. The source will try again after 
    500 milliseconds` 

So ist der Kanal bereits voll ist, wenn ich die Agenten starten. Wie kann ich es manuell zurücksetzen oder löschen?

Ich habe stundenlang nach einem ähnlichen Problem vergebens gesucht. Ein leicht aufreizendes Problem ist, dass https://flume.apache.org/ so voller Text ist, dass es im Grunde von Google für so ziemlich alles Gerümpel bezogen wird. So wird zum Beispiel eine Suche nach "Gerinne-Kanal ist immer voll" https://flume.apache.org/ als Nummer-eins-Ergebnis geben.

+0

Hallo haben Sie xms und xmx Optionen versucht, während Speicherkanal über Ihr Agent Start-Skript gestartet? –

Antwort

0

Scheint, dass Sie nicht genügend Speicher Ihrem Kanal zuweisen können. wo Ihre eingehende Ereignisrate höher ist als der für den Speicherkanal verfügbare Speicher.

versuchen Sie mit wie unten Beispiel: xmx ist Beispiel-Option können Sie allmählich erhöhen und sehen, was ist der beste Wert der Speicherzuweisung auf der Grundlage Ihrer Anzahl von Agenten läuft parlely.

Für Ex:

flume-ng agent -n $agentnumber -c ../../config/conf/ -f ../../config/conf/youragentconf.conf -Xmx3g 

Darüber hinaus müssen Sie auch unter Bezugnahme this Memory channel from Flume Guide andere Konfigurationsparameter in Ihrer Agenten-Konfigurationsdatei überprüfen.

+0

"Sie müssen auch andere Konfigurationsparameter in Ihrer Agent-Konfigurationsdatei prüfen" wie was? Es wäre hilfreich, wenn Sie auch angeben würden, welche Parameter zu überprüfen sind und welche Werte sie haben sollten. Wenn der Schwellenwert für den Speicher für Ereignisse erreicht ist, ist diese Information in den Dokumenten oder im Leitfaden nicht gut festgelegt? – sloven

+0

@Nik: das erste Ding, das deine harte Stimme kontrolliert, zweite Sache, es gibt keine harte und schnelle Regel, dass jeder für die gleichen Parameter gehen muss (wie kann ich sagen, dass diese Werte zu verwenden sind?). basierend auf ihren eingehenden Nachrichten und deren Größe können sie erhöhen oder verringern (rein Trail und Fehler basierend auf der Anforderung). Für die Ops haben steigende xmx-Werte geholfen. aber für Ihren Fall könnte es etwas anderes geben ... wie zB Kanalgröße etc ... es gibt keine gemeinsamen Werte für alle. Ich hoffe, Sie verstehen das. Vielen Dank! –