Support Questions
Find answers, ask questions, and share your expertise
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

Flafka selector doesn't work

Solved Go to solution

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;









Re: Flafka selector doesn't work

Super Collaborator

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:



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 :)

View solution in original post

Don't have an account?
Coming from Hortonworks? Activate your account here