hbse問題のまとめ


一、クライアントがhbaseにアクセスする時no further informationが現れる
Java apiを使用してhbaseにアクセスすると、接続できません.ログを表示すると、次のエラーが発生します.
java.net.ConnectException: Connection refused: no further information

 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

 at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)

 at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:933)

10/06/25 15:44:23 WARN zookeeper.ClientCnxn: Ignoring exception during shutdown input

java.nio.channels.ClosedChannelException

 at sun.nio.ch.SocketChannelImpl.shutdownInput(Unknown Source)

 at sun.nio.ch.SocketAdaptor.shutdownInput(Unknown Source)

hbaseログを表示すると、クライアント接続情報が検出されますが、応答後もクライアントは上記のエラーを報告し続けます.調べたところ、このエラーは一般的にクライアントがhbase regionServerのIpエラーを取得したため、zookeeperのアドレスを見てlocalhostが保存されていることが分かった.擬似分布式ではhostのデフォルト取得アドレスがlocalhostに設定されていない場合(擬似分布式は一般に自機アクセスであることが考えられるでしょう)、hostではlocalhostをipに構成すればよいことがネット上の資料で分かりました.
二、HBAseは同時にTableNotEnabledExceptionとTableNotDisabledExceptionが現れる
1回のenableテーブルでは時間がかかりすぎて直接ctrl+cが終了し、結果として再操作時にTableNotDisabledExceptionエラーが発生し、disableを試してもTableNotEnabledExceptionが発生し、テーブルを有効にできなくなります.インターネット検索では,中断操作によりzookeeperに記録されたテーブルの状態が一致しないことが分かった.以下の方法で解決する.
1、zookeeperを接続する(hbaseを直接通るツール)
hbase zkcli

2.hbaseで対応するテーブルのデータを削除する(または/hbase/tableパスを直接削除する)
delete /hbase/table/{  }

3、hbaseを再起動する