Search code examples
ubuntuhadoopclouderacloudera-cdhimpala

InvalidProtocolBufferException: on Impala connecting to Hadoop 2.x.x


I have installed CDH Hadoop hadoop-2.5.0-cdh5.3.2 and impala 2.1 from http://archive.cloudera.com/impala/ubuntu/precise/amd64/impala/pool/contrib/i/impala/ in a ubuntu 12.04 64 bit version .

I configured both hadoop and impala.

I want to use impala to query csv on hdfs directly .

My hadoop along with hdfs is perfectly up and running .

But whenever I am trying to make Impala up , I am getting the below error.

Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: callId, status; Host Details : local host is: "localhost/127.0.0.1"; destination host is: "localhost":54310;

I understand that HADOOP 2 is using protobuf version 2.5 but impala that I have installed is using protobuf version 2.4 .

Please help me how sort out this problem .

How to install a Hadoop 2.x version working with Impala ???

Thanks !!!


Solution

  • I resolved the issue . The problem was due to protobuf version mismatch.

    The Impala is using HDFS directly without taking the help of the mapreduce framework . So in order to talk with each other they need to use the common protobuf version , because the message format is different for different protobuf version .

    Solution:-

    1. Compile both impala and hadoop using same protobuf version .
      Or

    2. Use a Hadoop/Hive/Impala for the same CDH version .

    http://archive.cloudera.com/impala/

    http://archive.cloudera.com/cdh4/cdh/4/