org.apache.flume.serialization
Class AbstractAvroEventSerializer<T>

java.lang.Object
  extended by org.apache.flume.serialization.AbstractAvroEventSerializer<T>
Type Parameters:
T - Data type that can be written in the Schema given below.
All Implemented Interfaces:
Configurable, EventSerializer
Direct Known Subclasses:
FlumeEventAvroEventSerializer

public abstract class AbstractAvroEventSerializer<T>
extends Object
implements EventSerializer, Configurable

This is a helper class provided to make it straightforward to serialize Flume events into Avro data.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.flume.serialization.EventSerializer
EventSerializer.Builder
 
Field Summary
 
Fields inherited from interface org.apache.flume.serialization.EventSerializer
CTX_PREFIX
 
Constructor Summary
AbstractAvroEventSerializer()
           
 
Method Summary
 void afterCreate()
          Hook to write a header after file is opened for the first time.
 void afterReopen()
          Hook to handle any framing needed when file is re-opened (for write).
Could have been named afterOpenForAppend().
 void beforeClose()
          Hook to write a trailer before the stream is closed.
 void configure(Context context)
           Request the implementing class to (re)configure itself.
protected abstract  T convert(Event event)
          Simple conversion routine used to convert an Event to a type of your choosing.
 void flush()
          Hook to flush any internal write buffers to the underlying stream.
protected abstract  OutputStream getOutputStream()
          Returns the stream to serialize data into.
protected abstract  org.apache.avro.Schema getSchema()
          Returns the parsed Avro schema corresponding to the data being written and the parameterized type specified.
 boolean supportsReopen()
          Specify whether this output format supports reopening files for append.
 void write(Event event)
          Serialize and write the given event.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractAvroEventSerializer

public AbstractAvroEventSerializer()
Method Detail

getOutputStream

protected abstract OutputStream getOutputStream()
Returns the stream to serialize data into.


getSchema

protected abstract org.apache.avro.Schema getSchema()
Returns the parsed Avro schema corresponding to the data being written and the parameterized type specified.


convert

protected abstract T convert(Event event)
Simple conversion routine used to convert an Event to a type of your choosing. That type must correspond to the Avro schema given by getSchema().


configure

public void configure(Context context)
Description copied from interface: Configurable

Request the implementing class to (re)configure itself.

When configuration parameters are changed, they must be reflected by the component asap.

There are no thread safety guarrantees on when configure might be called.

Specified by:
configure in interface Configurable

afterCreate

public void afterCreate()
                 throws IOException
Description copied from interface: EventSerializer
Hook to write a header after file is opened for the first time.

Specified by:
afterCreate in interface EventSerializer
Throws:
IOException

afterReopen

public void afterReopen()
                 throws IOException
Description copied from interface: EventSerializer
Hook to handle any framing needed when file is re-opened (for write).
Could have been named afterOpenForAppend().

Specified by:
afterReopen in interface EventSerializer
Throws:
IOException

write

public void write(Event event)
           throws IOException
Description copied from interface: EventSerializer
Serialize and write the given event.

Specified by:
write in interface EventSerializer
Parameters:
event - Event to write to the underlying stream.
Throws:
IOException

flush

public void flush()
           throws IOException
Description copied from interface: EventSerializer
Hook to flush any internal write buffers to the underlying stream. It is NOT necessary for an implementation to then call flush() / sync() on the underlying stream itself, since those semantics would be provided by the driver that calls this API.

Specified by:
flush in interface EventSerializer
Throws:
IOException

beforeClose

public void beforeClose()
                 throws IOException
Description copied from interface: EventSerializer
Hook to write a trailer before the stream is closed. Implementations must not buffer data in this call since EventSerializer.flush() is not guaranteed to be called after beforeClose().

Specified by:
beforeClose in interface EventSerializer
Throws:
IOException

supportsReopen

public boolean supportsReopen()
Description copied from interface: EventSerializer
Specify whether this output format supports reopening files for append. For example, this method should return false if EventSerializer.beforeClose() writes a trailer that "finalizes" the file (this type of behavior is file format-specific).
Could have been named supportsAppend().

Specified by:
supportsReopen in interface EventSerializer


Copyright © 2009-2012 Apache Software Foundation. All Rights Reserved.