java.io.EOFException при попытке запуска примеров на автономной основе HBase - PullRequest
3 голосов
/ 23 ноября 2011

Я пытаюсь запустить этот пример: https://github.com/larsgeorge/hbase-book/blob/master/ch03/src/main/java/client/PutExample.java, из этой книги: http://ofps.oreilly.com/titles/9781449396107/, в автономной установке HBase.Запуск HBase работает нормально, и оболочка доступна, но когда я пытаюсь запустить пример, я получаю следующую ошибку:

Exception in thread "main" java.io.IOException: Call to /127.0.0.1:55958 failed on local exception: java.io.EOFException
        at org.apache.hadoop.hbase.ipc.HBaseClient.wrapException(HBaseClient.java:872)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:841)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:141)
        at $Proxy4.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:174)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:295)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:272)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:324)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:228)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1228)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1190)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1177)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:914)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:810)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:784)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1014)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:814)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:778)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:188)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:159)
        at client.CRUDExample.main(CRUDExample.java:26)
    Caused by: java.io.EOFException
        at java.io.DataInputStream.readInt(DataInputStream.java:375)
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.receiveResponse(HBaseClient.java:548)
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.run(HBaseClient.java:486)

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Проблема заключалась в том, что я скомпилировал примеры с более новой версией HBase. Чтобы исправить эту ошибку, в этих примерах отредактируйте pom.xml и убедитесь, что зависимость HBase - это та же версия, что и при запуске, и при сборке. (Также не забудьте удалить chXX / target / cached_classpath.txt, иначе он все равно добавит другую библиотеку в ваш путь к классам)

0 голосов
/ 31 марта 2016

Я встретил эту проблему с точно такими же журналами ошибок, но причиной различий.Это исправлено после того, как я добавил следующие элементы в конфигурацию клиента hbase:

<property>
    <name>hbase.security.authentication</name>
    <value>kerberos</value> 
</property> 
<property>
     <name>hbase.rpc.engine</name>
     <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
...