public class AvroEventSerializer extends Object implements EventSerializer, Configurable
This class serializes Flume events into Avro data files. The
Flume event body is read as an Avro datum, and is then written to the
EventSerializer's output stream in Avro data file format.
The Avro schema is determined by reading a Flume event header. The schema may be
specified either as a literal, by setting AVRO_SCHEMA_LITERAL_HEADER (not
recommended, since the full schema must be transmitted in every event),
or as a URL which the schema may be read from, by setting AVRO_SCHEMA_URL_HEADER. Schemas read from URLs are cached by instances of this
class so that the overhead of retrieval is minimized.
| Modifier and Type | Class and Description |
|---|---|
static class |
AvroEventSerializer.Builder |
| Modifier and Type | Field and Description |
|---|---|
static String |
AVRO_SCHEMA_LITERAL_HEADER |
static String |
AVRO_SCHEMA_URL_HEADER |
CTX_PREFIX| Modifier and Type | Method and Description |
|---|---|
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.
|
void |
flush()
Hook to flush any internal write buffers to the underlying stream.
|
boolean |
supportsReopen()
Specify whether this output format supports reopening files for append.
|
void |
write(Event event)
Serialize and write the given event.
|
public static final String AVRO_SCHEMA_LITERAL_HEADER
public static final String AVRO_SCHEMA_URL_HEADER
public void configure(Context context)
ConfigurableRequest 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 guarantees on when configure might be called.
configure in interface Configurablepublic void afterCreate()
throws IOException
EventSerializerafterCreate in interface EventSerializerIOExceptionpublic void afterReopen()
throws IOException
EventSerializerafterOpenForAppend().afterReopen in interface EventSerializerIOExceptionpublic void write(Event event) throws IOException
EventSerializerwrite in interface EventSerializerevent - Event to write to the underlying stream.IOExceptionpublic void flush()
throws IOException
EventSerializerflush in interface EventSerializerIOExceptionpublic void beforeClose()
throws IOException
EventSerializerbeforeClose in interface EventSerializerIOExceptionpublic boolean supportsReopen()
EventSerializerfalse if
EventSerializer.beforeClose() writes a trailer that "finalizes" the file
(this type of behavior is file format-specific).supportsAppend().supportsReopen in interface EventSerializerCopyright © 2009-2022 Apache Software Foundation. All Rights Reserved.