2016-08-24 4 views
1

Я попытался запустить бережливость Java-клиент, построенный на бережливость 0.9.0TProtocolException: Отсутствует версия в readMessageBegin, старый клиент

Вы можете найти код здесь: https://github.com/apache/hbase/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java

В пути к классам, есть libthrift -0.9.0.jar я получил следующее:

сканирования таблицы ...

Исключение в потоке "основного" java.secu rity.PrivilegedActionException: org.apache.thrift.protocol.TProtocolException: Отсутствует версия в readMessageBegin, старый клиент? на java.security.AccessController.doPrivileged (собственный метод) на javax.security.auth.Subject.doAs (Subject.java:422) на org.apache.hadoop.hbase.thrift.DemoClient.main (DemoClient.java : 81) Вызвано: org.apache.thrift.protocol.TProtocolException: отсутствует версия в readMessageBegin, старый клиент? на org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin (TBinaryProtocol.java:213) на org.apache.thrift.TServiceClient.receiveBase (TServiceClient.java:69) на org.apache.hadoop.hbase. trift.generated.Hbase $ Client.recv_getTableNames (Hbase.java:903) по адресу org.apache.hadoop.hbase.thrift.generated.Hbase $ Client.getTableNames (Hbase.java:891) at org.apache.hadoop .hbase.thrift.DemoClient.run (DemoClient.java:142) на org.apache.hadoop.hbase.thrift.DemoClient.access $ 000 (DemoClient.java:56) на org.apache.hadoop.hbase. thrift.DemoClient $ 1.run (DemoClient.java:85) по адресу org.apache.hadoop.hbase.thrift.DemoClient $ 1.run (DemoClient.java:82)

Может кто-то намек на то, что могло вызвать выше?

Thanks

ответ

0

Версия несоответствие с hbase. Ваша клиентская папка hbase старше, чем к серверу lib, к которому вы подключаетесь. Какую версию HBase вы компилируете?

МВН зависимость: дерево

выведет список зависимостей для проекта.

+0

Не стесняйтесь публиковать результат, если вам нужна помощь. –

+0

DemoClient пришел из того же каталога lib для сборки hbase 1.1.2. Трудно понять, как клиент вышел из синхронизации с сервером, который использует одну и ту же сборку. экономичная версия в pom.xml равна 0.9.0 – Ted

0

Я столкнулся с аналогичной проблемой после обновления сервера до Cloudera Hadoop 5.10 с CDH 5.3. Для меня, ключ меняется это свойство ложным:

<property> 
<name>hbase.regionserver.thrift.http</name> 
<value>false</value> 
</property> 

Похоже, что протокол HTTP был добавлен в CDH5.4.0 и мои настройки сервера был этот параметр в действительности. Это несовместимо с TBinaryProtocol моего клиента.