0

thrift/hbase を使用してそこに配置された HDFS から Hive テーブルにデータを抽出しようとしていますが、次のエラー メッセージの解決策を見つけるのに苦労しています。

ERROR client.HConnectionManager$HConnectionImplementation (HConnectionManager.java:checkIfBaseNodeAvailable(751)) 
– Check the value configured in ‘zookeeper.znode.parent’. There could be a mismatch with the one configured in the master.

に続く;

FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException

これらのエラーは、Hive ターミナルから次のクエリを実行した後に Hive ログに表示されます。

create external table d_table (id bigint, date string) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler’ 
with serdeproperties (“hbase.columns.mapping” = “:key,a:date”) 
TBLPROPERTIES (“hbase.table.name” = “demo_table”);

テーブルが存在し、データが取り込まれ、hbase シェル内から見つけることができます。HMASTER プロセスが実行されていることを確認しました。「zookeeper.znode.parent」はデフォルト値に設定されており、hbase はこれを受け入れます (変更された場合、hbase は文句を言うので、それが正しいと確信しています)。問題なく ZK クライアントを確立できました。

この問題を調査する段階に達しましたが、解決策は、使用している HBase のバージョンに対して Hive を再コンパイルすることであると言われました。これは、ディストリビューションを使用するという点に反するものです。ZK と HBase マスターは、HiveQL コマンドを実行している同じマシン上にあります。

別のマシンからクエリを実行すると、次のように表示されます。

ERROR client.HConnectionManager$HConnectionImplementation 
(HConnectionManager.java:checkIfBaseNodeAvailable(751)) 
– Check the value configured in ‘zookeeper.znode.parent’. There could be a mismatch with the one configured in the master.

WARN zookeeper.ClientCnxn (ClientCnxn.java:run(1089)) 
– Session 0×0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
WARN zookeeper.RecoverableZooKeeper (RecoverableZooKeeper.java:retryOrThrow(219)) 
– Possibly transient ZooKeeper exception: 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = 
ConnectionLoss for /hbase/hbaseid

Zookeeper.quorum の hive-site.xml ファイルにプロパティを追加すると、最初のマシンと同じ動作になります。Ambari から Zookeeper.quorum の値を取得しました。

Hortonworks リリース 1.3 ディストリビューションを使用しています。HCatalog を使用して Hive を正常に実行してテーブルなどを作成し、その他のさまざまなシナリオを実行しました。さらに詳しい情報が必要な場合はお知らせください。この投稿をクリーンに保ちたいと思います。

前もって感謝します

4

2 に答える 2

0

JavaでHbaseと通信しているときに同じエラーが発生しました。次のconfを追加すると解決しました。

conf.set("zookeeper.znode.parent", "/hbase-unsecure");

それが役立つことを願っています

于 2014-03-27T13:12:08.220 に答える
0

Zookeeper サービス ポートを確認できます。独立した Zookeeper クラスターを使用しているかどうかはわかりません。そうでない場合、他のプロセスがポート 2181 を占有している可能性があり、hbase はポート 2182 を使用して Zookeeper を開始しようとします。サービス ポートが 2181 でない場合、Hive は特定の構成なしで文句を言います。

于 2013-08-11T05:06:42.257 に答える