-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6918/
-----------------------------------------------------------

Review request for Flume.


Description
-------

This patch allows users to customise the format of HDFS SequenceFiles by 
providing a custom FlumeFormatter implementation.

Currently, the user can set hdfs.writeFormat to either "Text" or "Writable", 
corresponding to HDFSTextFormatter and HDFSWritableFormatter respectively.

With this patch, hdfs.writeFormat can also be set to the full class name of a 
Builder implementation, e.g.:
    
agent_foo.sinks.hdfs-sink.writeFormat=com.mycompany.flume.MyCustomFormatter$Builder

They can also pass custom configuration params to the builder, e.g.:
    agent_foo.sinks.hdfs-sink.writeFormat.ignoreHeaders=foo,bar

These params will be passed to the Builder's build() method as a Context object.

I've tried to be as consistent as possible with the design of 
EventSerializerFactory:
* Use an enum for the different formatter types, rather than static strings.
* Use a Builder, rather than constructing a FlumeFormatter directly.


This addresses bug FLUME-1100.
    https://issues.apache.org/jira/browse/FLUME-1100


Diffs
-----

  flume-ng-core/src/main/java/org/apache/flume/sink/FlumeFormatter.java 05d60b7 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java
 9a76ecb 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSFormatterFactory.java
 7b47942 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSFormatterType.java
 PRE-CREATION 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSTextFormatter.java
 5839dbb 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSWritableFormatter.java
 9f03389 
  
flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MyCustomFormatter.java
 PRE-CREATION 
  
flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSFormatterFactory.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/6918/diff/


Testing
-------

Unit tests included in patch.

Using a patched build of Flume in an internal project (not in production).


Thanks,

Chris Birchall

Reply via email to