org.apache.flume.sink.elasticsearch
Class ElasticSearchSink

java.lang.Object
  extended by org.apache.flume.sink.AbstractSink
      extended by org.apache.flume.sink.elasticsearch.ElasticSearchSink
All Implemented Interfaces:
Configurable, LifecycleAware, NamedComponent, Sink

public class ElasticSearchSink
extends AbstractSink
implements Configurable

A sink which reads events from a channel and writes them to ElasticSearch based on the work done by https://github.com/Aconex/elasticflume.git.

This sink supports batch reading of events from the channel and writing them to ElasticSearch.

Indexes will be rolled daily using the format 'indexname-YYYY-MM-dd' to allow easier management of the index

This sink must be configured with with mandatory parameters detailed in ElasticSearchSinkConstants

It is recommended as a secondary step the ElasticSearch indexes are optimized for the specified serializer. This is not handled by the sink but is typically done by deploying a config template alongside the ElasticSearch deploy

See Also:
://www.elasticsearch.org/guide/reference/api/admin-indices-templates. html

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.flume.Sink
Sink.Status
 
Constructor Summary
ElasticSearchSink()
          Create an ElasticSearchSink configured using the supplied configuration
 
Method Summary
 void configure(Context context)
           Request the implementing class to (re)configure itself.
 Sink.Status process()
          Requests the sink to attempt to consume data from attached channel
 void start()
           Starts a service or component.
 void stop()
           Stops a service or component.
 
Methods inherited from class org.apache.flume.sink.AbstractSink
getChannel, getLifecycleState, getName, setChannel, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ElasticSearchSink

public ElasticSearchSink()
Create an ElasticSearchSink configured using the supplied configuration

Method Detail

process

public Sink.Status process()
                    throws EventDeliveryException
Description copied from interface: Sink

Requests the sink to attempt to consume data from attached channel

Note: This method should be consuming from the channel within the bounds of a Transaction. On successful delivery, the transaction should be committed, and on failure it should be rolled back.

Specified by:
process in interface Sink
Returns:
READY if 1 or more Events were successfully delivered, BACKOFF if no data could be retrieved from the channel feeding this sink
Throws:
EventDeliveryException - In case of any kind of failure to deliver data to the next hop destination.

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

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 AbstractSink

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 AbstractSink


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