org.apache.flume.source

## Class AvroSource

- java.lang.Object
- - org.apache.flume.source.AbstractSource
  - - 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)

  Metrics

  TODO

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.flume.source.avro.AvroSourceProtocol

      `org.apache.flume.source.avro.AvroSourceProtocol.Callback`

  - ### Field Summary

    - ### Fields inherited from interface org.apache.flume.source.avro.AvroSourceProtocol

      `__PARANAMER_DATA, PROTOCOL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AvroSource()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

      `getLifecycleState`

    - ### Methods inherited from interface org.apache.flume.NamedComponent

      `getName, setName`

- - ### Constructor Detail

    - #### AvroSource

          public AvroSource()

  - ### Method Detail

    - #### 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 guarantees on when configure might be called.

      Specified by:
        `configure` in interface `Configurable`

    - #### start

          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`
      Overrides:
        `start` in class `AbstractSource`

    - #### stop

          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`
      Overrides:
        `stop` in class `AbstractSource`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractSource`

    - #### append

          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`

    - #### appendBatch

          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-2016 Apache Software Foundation. All Rights Reserved.