I have added a patch that is similar to the FlumeOG regex extractor
FLUME-1657 <https://issues.apache.org/jira/browse/FLUME-1657>

On Thu, Oct 25, 2012 at 10:37 AM, Sergey (JIRA) <[email protected]> wrote:

>
>     [
> https://issues.apache.org/jira/browse/FLUME-1667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13484308#comment-13484308]
>
> Sergey commented on FLUME-1667:
> -------------------------------
>
> It seems that I can't try this on flume-ng because there's no
> RegexExtractor functionality now AFAIK. I use Regex extractor to compose a
> path within HDFS by using the first field of log record message body (date)
> and this is critical for me.
>
> > Errors in source RegexExtractor
> > -------------------------------
> >
> >                 Key: FLUME-1667
> >                 URL: https://issues.apache.org/jira/browse/FLUME-1667
> >             Project: Flume
> >          Issue Type: Bug
> >          Components: Sinks+Sources
> >    Affects Versions: v0.9.4
> >            Reporter: Sergey
> >
> > We are experiencing some problems with Flume that randomly happen on our
> systems 2 or more times per day. Here is what they look like...
> > This is the first sensible message in logs regarding this issue:
> > ...
> > 2012-10-23 15:02:27,021 INFO
> com.cloudera.flume.handlers.debug.StubbornAppendSink: append failed on
> event 'xservice-backend02 [INFO Tue Oct 23 15:02:12
> >  UTC 2012] { AckChecksum : (long)1613444596  (string) '....`+5�'
> (double)7.971475464E-315 } { AckTag :
> 20121023-150211682+0000.2380890497695726.00000068 } {
> > AckType : msg } { ds : 2012-10-23 } { tailSrcFile :
> operation.xservice-backend02.log } 2012-10-23 15:02:12,053
> \tRESP\txaxpxo\tf0bdc8efc9df943380359bc4
> > f5a1058e76\t/0/poster/\tPOST\t\"force_rewrite\": \"1\", \"session_key\":
> \"f0bdc8efc9df943380359bc4f5a1058e76\", \"filesize\": \"73\", \"name\":
> \"/Download/
> > aspect/TRANSITIVE AND ARGUMENT
> STRUCTURE.pdf\"\t6c86d15a5593c90381ef2d0b33fa7aa9\t0.0876088142395\t3\tpc:0.992:en:lan:Virtual
> Drive:\tCloud_Syncer\t' w
> > ith error: Blocked append interrupted by rotation event
> > After a few seconds exceptions appear:
> > ...
> > 2012-10-23 15:02:31,769 INFO
> com.cloudera.flume.handlers.debug.InsistentAppendDecorator: Failed due to
> unexpected runtime exception during append attempt
> > java.lang.RuntimeException: Blocked append interrupted by rotation event
> >         at
> com.cloudera.flume.handlers.rolling.RollSink.append(RollSink.java:215)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.core.MaskDecorator.append(MaskDecorator.java:43)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.InsistentOpenDecorator.append(InsistentOpenDecorator.java:169)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.StubbornAppendSink.append(StubbornAppendSink.java:71)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.InsistentAppendDecorator.append(InsistentAppendDecorator.java:110)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.endtoend.AckChecksumChecker.append(AckChecksumChecker.java:172)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.batch.UnbatchingDecorator.append(UnbatchingDecorator.java:62)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.batch.GunzipDecorator.append(GunzipDecorator.java:81)
> >         at
> com.cloudera.flume.collector.CollectorSink.append(CollectorSink.java:241)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.core.extractors.RegexExtractor.append(RegexExtractor.java:88)
> >         at
> com.cloudera.flume.core.connector.DirectDriver$PumperThread.run(DirectDriver.java:133)
> > 2012-10-23 15:02:31,770 WARN
> com.cloudera.flume.core.connector.DirectDriver: Exception in sink:
> RegexExtractor
> > java.lang.RuntimeException: Blocked append interrupted by rotation event
> >         at
> com.cloudera.flume.handlers.rolling.RollSink.append(RollSink.java:215)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.core.MaskDecorator.append(MaskDecorator.java:43)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.InsistentOpenDecorator.append(InsistentOpenDecorator.java:169)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.StubbornAppendSink.append(StubbornAppendSink.java:71)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.debug.InsistentAppendDecorator.append(InsistentAppendDecorator.java:110)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.endtoend.AckChecksumChecker.append(AckChecksumChecker.java:172)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.batch.UnbatchingDecorator.append(UnbatchingDecorator.java:62)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.handlers.batch.GunzipDecorator.append(GunzipDecorator.java:81)
> >         at
> com.cloudera.flume.collector.CollectorSink.append(CollectorSink.java:241)
> >         at
> com.cloudera.flume.core.EventSinkDecorator.append(EventSinkDecorator.java:60)
> >         at
> com.cloudera.flume.core.extractors.RegexExtractor.append(RegexExtractor.java:88)
> >         at
> com.cloudera.flume.core.connector.DirectDriver$PumperThread.run(DirectDriver.java:133)
> > 2012-10-23 15:02:31,770 WARN
> com.cloudera.flume.core.connector.DirectDriver: Retrying after Error in
> source: RegexExtractor
> > 2012-10-23 15:02:31,770 INFO
> com.cloudera.flume.handlers.rolling.RollSink: closing RollSink
> 'escapedCustomDfs("hdfs://
> cdh-master.domain.com:54310/user/flume/x_backends/ds=%{ds}","x_backends.log%{rolltag}"
> )'
> > 2012-10-23 15:02:31,770 INFO
> com.cloudera.flume.handlers.rolling.RollSink: double close
> 'escapedCustomDfs("hdfs://
> cdh-master.domain.com:54310/user/flume/x_backends/ds=%{ds}","x_backends.log%{rolltag}"
> )'
> > 2012-10-23 15:02:31,771 WARN
> com.cloudera.flume.handlers.endtoend.AckChecksumChecker: partial acks
> abandoned: {20121023-150211682+0000.2380890497695726.00000068=1350995824815}
> > 2012-10-23 15:02:31,771 INFO
> com.cloudera.flume.handlers.rolling.RollSink: opening RollSink
>  'escapedCustomDfs("hdfs://
> cdh-master.domain.com:54310/user/flume/x_backends/ds=%{ds}","x_backends.log%{rolltag}"
> )'
> > 2012-10-23 15:02:31,772 INFO
> com.cloudera.flume.handlers.debug.InsistentOpenDecorator: Opened
> MaskDecorator on try 0
> > 2012-10-23 15:02:31,772 INFO
> com.cloudera.flume.core.connector.DirectDriver: Sink Retry successful
> > 2012-10-23 15:02:31,772 ERROR
> com.cloudera.flume.core.connector.DirectDriver: Closing down due to
> exception during append calls
> > 2012-10-23 15:02:31,772 INFO
> com.cloudera.flume.core.connector.DirectDriver: Connector logicalNode
> flume_master_x_backends.log-20 exited with error: Event already had an
> event with attribute ds
> > java.lang.IllegalArgumentException: Event already had an event with
> attribute ds
> >         at
> com.cloudera.flume.core.EventBaseImpl.set(EventBaseImpl.java:62)
> >         at
> com.cloudera.flume.core.Attributes.setString(Attributes.java:112)
> >         at
> com.cloudera.flume.core.extractors.RegexExtractor.append(RegexExtractor.java:87)
> >         at
> com.cloudera.flume.core.connector.DirectDriver$PumperThread.run(DirectDriver.java:150)
> > 2012-10-23 15:02:31,772 INFO
> com.cloudera.flume.collector.CollectorSource: closed
> > 2012-10-23 15:02:32,773 INFO
> com.cloudera.flume.handlers.thrift.ThriftEventSource: Closed server on port
> 35854...
> > 2012-10-23 15:02:32,773 INFO
> com.cloudera.flume.handlers.thrift.ThriftEventSource: Queue still has 182
> elements ...
> > ...
> > And no service listening on port 35854 anymore.
> > Our Flume configuration:
> > exec map flume-master.domain.com flume_master_x_backends.log
> > exec map xservice-backend02 backend02_x_backends.log
> > exec config backend02_x_backends.log x_backends.log
> 'tail("/mnt/log/operation.xservice-backend02.log")' 'agentSink("
> flume-master.domain.com", 35854)'
> > exec config flume_master_x_backends.log x_backends.log
> 'collectorSource(35854)' '{ regex("^2[0-9]{3}-[0-9]{2}-[0-9]{2}",0,"ds") =>
> collectorSink("hdfs://
> cdh-master.domain.com:54310/user/flume/x_backends/ds=%{ds}",
> "x_backends.log") }'
> > The strange part is that everything worked fine for months using this
> particular configuration. Could you please provide some comments as this
> looks like a bug. We are using Flume 0.9.4-cdh3u5
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA
> administrators
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>



-- 
Thanks

Cameron Gandevia

Reply via email to