3

HDFS とハイブ インスタンスの実行中に HDFS クライアントをシャットダウンしました。Hiveに再ログインすると、「テーブルの表示」や「テーブル名の説明」などのDDLタスクを実行できません。次のようなエラーが表示されます

ERROR exec.Task (SessionState.java:printError(401)) - FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

テーブルを再作成せずに metastore_db をインスタンス化するために何をする必要があるかを誰かが提案できますか? そうしないと、データベース/スキーマ全体をもう一度作成するという作業を繰り返さなければなりません。

4

8 に答える 8

10

問題を解決しました。これらは私が従った手順です:

  1. $HIVE_HOME/bin/metastore_db に移動します
  2. db.lck を db.lck1 に、dbex.lck を dbex.lck1 にコピーしました。
  3. db.lck および dbex.lck からロック エントリを削除しました。
  4. HDFS の実行中のすべてのインスタンスだけでなく、Hive シェルからもログアウトします。
  5. HDFS とハイブ シェルに再ログインします。DDL コマンドを実行すると、「HiveMetaStoreClient エラーをインスタンス化できませんでした」というエラーが再度表示される場合があります。
  6. ここで、db.lck1 を db.lck にコピーし、dbex.lck1 を dbex.lck にコピーします。
  7. すべての Hive シェルと HDFS インスタンスからログアウトする
  8. 再ログインすると、古いテーブルが表示されます

注: ステップ 5 は、ロック エントリを削除した後でも HiveMetaStoreClient エラーが発生するため、少し奇妙に思えるかもしれませんが、私にとってはうまくいきました。

利点: データベース全体を再作成する作業を繰り返す必要はありません。

これが同じエラーに直面している誰かに役立つことを願っています。役に立つと思ったら投票してください。よろしくお願いします

于 2013-04-22T19:46:44.243 に答える
1

たとえば、MySQL を使用してメタデータ db を保持し、コピーしました

mysql-connector-java-5.1.22-bin.jar を $HIVE_HOME/lib フォルダーに

私のエラーは解決しました

于 2015-12-04T09:08:19.943 に答える
1

Hiveサーバーで同様の問題が発生し、以下の手順に従いました
。 1. $HIVE_HOME/bin/metastore_db
に移動し
ます。 db.lck および dbex.lck
4. ハイブ シェルから再ログインします。それは働いてい
ますありがとう

于 2013-10-29T06:32:27.967 に答える
1

参照:ハイブでエラーが発生する

メタデータ データベースの JDBC ドライバーを含む jar を Hive の lib ディレクトリにコピーしましたか?

たとえば、MySQL を使用してメタデータ データベースを保持している場合は、コピーする必要があります。

mysql-connector-java-5.1.22-bin.jar を $HIVE_HOME/lib に追加します。

これにより、同じエラーが修正されました。

于 2013-08-28T22:10:33.033 に答える
1

同じ問題に直面し、メタストア サービスを開始して解決しました。マシンが再起動またはダウンした場合、サービスが停止することがあります。次のコマンドを実行して、サービスを開始できます。

としてログイン$HIVE_USER

nohup hive --service metastore>$HIVE_LOG_DIR/hive.out 2>$HIVE_LOG_DIR/hive.log & 
于 2013-09-27T10:18:43.137 に答える
0

私はこの問題に直面しましたが、私の場合はhiveコマンドラインからコマンドを実行していました。

Kerberos 化されたハイブを使用していたため、 kinitコマンドを実行してこの問題を解決しました。

kinit -kt <your keytab file location> <kerberos principal>
于 2016-10-12T08:43:41.493 に答える
0

私も同じ問題に直面しており、hive-deafult.xml と hive-site.xml (手動で作成) の両方があることがわかりました。

hive-site.xml を hive-site.xml-template に移動し (このファイルは不要だったため)、ハイブを開始し、正常に動作しました。

乾杯、アジマル

于 2015-01-21T07:05:59.407 に答える