InvalidProtocolBufferException: при подключении Impala к Hadoop 2.x.x

Я установил CDH Hadoop hadoop-2.5.0-cdh5.3.2 и impala 2.1 из http://archive.cloudera.com/impala/ubuntu/precise/amd64/impala/pool/contrib/i/impala./ в 64-битной версии Ubuntu 12.04.

Я настроил и хауп, и импалу.

Я хочу использовать impala для прямого запроса csv на hdfs.

Мой hadoop вместе с hdfs отлично работает.

Но всякий раз, когда я пытаюсь создать Impala, я получаю следующую ошибку.

Сбой при локальном исключении: com.google.protobuf.InvalidProtocolBufferException: в сообщении отсутствуют обязательные поля: callId, статус; Сведения о хосте: локальный хост: "localhost/127.0.0.1"; хост назначения: "localhost":54310;

Я понимаю, что HADOOP 2 использует protobuf версии 2.5, но Impala, которую я установил, использует protobuf версии 2.4.

Помогите пожалуйста как разобраться с этой проблемой.

Как установить версию Hadoop 2.x, работающую с Impala???

Спасибо !!!


person RBanerjee    schedule 23.07.2015    source источник


Ответы (1)


Я решил проблему. Проблема была из-за несоответствия версии protobuf.

Impala использует HDFS напрямую, без помощи фреймворка mapreduce. Таким образом, чтобы общаться друг с другом, им нужно использовать общую версию protobuf, потому что формат сообщения отличается для разных версий protobuf.

Решение:-

  1. Скомпилируйте и impala, и hadoop, используя одну и ту же версию protobuf.
    Или

  2. Используйте Hadoop/Hive/Impala для той же версии CDH.

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

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

person RBanerjee    schedule 07.08.2015