Class AvroSource

  extended by org.apache.flume.source.AbstractSource
      extended by org.apache.flume.source.AvroSource
All Implemented Interfaces:
Configurable, EventDrivenSource, LifecycleAware, NamedComponent, Source, org.apache.flume.source.avro.AvroSourceProtocol

public class AvroSource
extends AbstractSource
implements EventDrivenSource, Configurable, org.apache.flume.source.avro.AvroSourceProtocol

A Source implementation that receives Avro events from clients that implement AvroSourceProtocol.

This source forms one half of Flume's tiered collection support. Internally, this source uses Avro's NettyTransceiver to listen for, and handle events. It can be paired with the builtin AvroSink to create tiered collection topologies. Of course, nothing prevents one from using this source to receive data from other custom built infrastructure that uses the same Avro protocol (specifically AvroSourceProtocol).

Events may be received from the client either singly or in batches.Generally, larger batches are far more efficient, but introduce a slight delay (measured in millis) in delivery. A batch submitted to the configured Channel atomically (i.e. either all events make it into the channel or none).

Configuration options

Parameter Description Unit / Type Default
bind The hostname or IP to which the source will bind. Hostname or IP / String none (required)
port The port to which the source will bind and listen for events. TCP port / int none (required)
threads Max number of threads assigned to thread pool, 0 being unlimited Count / int 0(optional)



Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.flume.source.avro.AvroSourceProtocol
Field Summary
Fields inherited from interface org.apache.flume.source.avro.AvroSourceProtocol
Constructor Summary
Method Summary
 org.apache.flume.source.avro.Status append(org.apache.flume.source.avro.AvroFlumeEvent avroEvent)
 org.apache.flume.source.avro.Status appendBatch(List<org.apache.flume.source.avro.AvroFlumeEvent> events)
 void configure(Context context)
           Request the implementing class to (re)configure itself.
 void start()
           Starts a service or component.
 void stop()
           Stops a service or component.
 String toString()
Methods inherited from class org.apache.flume.source.AbstractSource
getChannelProcessor, getLifecycleState, getName, setChannelProcessor, setName
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.flume.Source
getChannelProcessor, setChannelProcessor
Methods inherited from interface org.apache.flume.lifecycle.LifecycleAware
Methods inherited from interface org.apache.flume.NamedComponent
getName, setName

Constructor Detail


public AvroSource()
Method Detail


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


public void start()
Description copied from interface: LifecycleAware

Starts a service or component.

Implementations should determine the result of any start logic and effect the return value of LifecycleAware.getLifecycleState() accordingly.

Specified by:
start in interface LifecycleAware
start in class AbstractSource


public void stop()
Description copied from interface: LifecycleAware

Stops a service or component.

Implementations should determine the result of any stop logic and effect the return value of LifecycleAware.getLifecycleState() accordingly.

Specified by:
stop in interface LifecycleAware
stop in class AbstractSource


public String toString()
toString in class AbstractSource


public org.apache.flume.source.avro.Status append(org.apache.flume.source.avro.AvroFlumeEvent avroEvent)
Specified by:
append in interface org.apache.flume.source.avro.AvroSourceProtocol


public org.apache.flume.source.avro.Status appendBatch(List<org.apache.flume.source.avro.AvroFlumeEvent> events)
Specified by:
appendBatch in interface org.apache.flume.source.avro.AvroSourceProtocol

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