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)
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 guarantees on when configure might be called.
configure
in interface Configurable
public void afterCreate() throws IOException
EventSerializer
afterCreate
in interface EventSerializer
IOException
public void afterReopen() throws IOException
EventSerializer
afterOpenForAppend()
.afterReopen
in interface EventSerializer
IOException
public void write(Event event) throws IOException
EventSerializer
write
in interface EventSerializer
event
- Event to write to the underlying stream.IOException
public void flush() throws IOException
EventSerializer
flush
in interface EventSerializer
IOException
public void beforeClose() throws IOException
EventSerializer
beforeClose
in interface EventSerializer
IOException
public boolean supportsReopen()
EventSerializer
false
if
EventSerializer.beforeClose()
writes a trailer that "finalizes" the file
(this type of behavior is file format-specific).supportsAppend()
.supportsReopen
in interface EventSerializer
Copyright © 2009–2019 Apache Software Foundation. All rights reserved.