Posts: 87
Registered: ‎11-12-2015

Re: Flafka selector doesn't work

Yes I tried that. All the fields are set as headers but the message is transformed by:


event.setBody("Message modified by Jsoninterceptor".getBytes());

And it becomes unusefull because I need the log as the original.

I tried to change the file in the .jar using vim but it can't be done, I think that is because the .class file. Also tried to create a java morphline but i can't get it compile correctly.


morphlines : [
    java {
        imports : """
            import java.util.List;
            import java.util.Map;
            import org.apache.flume.Context;
            import org.apache.flume.Event;
            import org.apache.flume.interceptor.Interceptor;
            import org.apache.log4j.Logger;
    code: """ 
         Map<String, String> headers = event.getHeaders();
         // example: add / remove headers
         if (headers.containsKey("product")) {
        headers.put("product", headers.get("product"));
         if (headers.containKey("client")){
        headers.put("client", headers.get("client"));  
         return event;








Cloudera Employee
Posts: 255
Registered: ‎01-09-2014

Re: Flafka selector doesn't work

If you wanted to use the morphline interceptor, you could simply use a grok statement to extract the information you need and set it as a new field that becomes a header:


Here is a grok debugger that you can use to make sure your grok pattern will match your input string:



Posts: 87
Registered: ‎11-12-2015

Re: Flafka selector doesn't work

I solved the problem. I had to created a java custom interceptor (based in the one you sent me), compile it with maven and paste it in the flume-ng dir. 


Thanks pdvorak for all the help :)

New solutions