InvalidProtocolBufferException:关于 Impala 连接到 Hadoop 2.x.x

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

我已经在 ubuntu 12.04 64 位版本中安装了来自 http://archive.cloudera.com/impala/ubuntu/precise/amd64/impala/pool/contrib/i/impala/ 的 CDH Hadoop hadoop-2.5.0-cdh5.3.2 和 impala 2.1。

我配置了 hadoop 和 impala。

我想使用 impala 直接在 hdfs 上查询 csv。

我的 hadoop 和 hdfs 已经完美启动 运行 .

但是每当我试图弥补 Impala 时,我都会收到以下错误。

因本地异常而失败:com.google.protobuf.InvalidProtocolBufferException:消息缺少必填字段:callId、状态;主机详细信息:本地主机是:"localhost/127.0.0.1";目标主机是:"localhost":54310;

我知道 HADOOP 2 使用的是 protobuf 2.5 版,但是我安装的 impala 使用的是 protobuf 2.4 版。

请帮我解决这个问题。

如何安装与 Impala 一起使用的 Hadoop 2.x 版本 ???

谢谢!!!

我解决了这个问题。问题是由于 protobuf 版本不匹配。

Impala是直接使用HDFS,没有借助mapreduce框架。所以为了互相交谈,他们需要使用通用的 protobuf 版本,因为不同的 protobuf 版本的消息格式是不同的。

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/