2

Ubuntu 12.04、hadoop-0.23.5、hive-0.9.0 を使用しています。$HIVE_HOME/my_db/metastore_dbhive -site.xmlの別の場所に metastore_db を個別に指定しました

Hadoop は正常に実行され、 jpsResourceManager,NameNode,DataNode,NodeManager,SecondaryNameNode が返されます

Hive は完全に開始され、metastore_db と derby.log も作成され、すべての Hive コマンドが正常に実行され、データベース、テーブルなどを作成できます。しかし、数日後、実行するshow databasesと、またはshow tablesエラーが発生します

FAILED: Error in metadata: MetaException(message:Got exception:  java.net.ConnectException Call to localhost/127.0.0.1:54310 failed on connection exception: java.net.ConnectException: Connection refused) FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
4

4 に答える 4

3

私もこの問題を抱えていましたが、受け入れられた回答は役に立たなかったので、他の人のためにここに私の解決策を追加します:

私の問題は、ハイブがインストールされた疑似分散セットアップを備えた単一のマシンを持っていたことです。ホスト名として localhost で問題なく動作していました。ただし、クラスターに複数のマシンを追加することを決定したとき、マシンに「machine01、machine 02 など」という適切な名前を付けることにしました。

すべての Hadoopconf/*-site.xmlファイルとhive-site.xmlファイルも変更しましたが、それでもエラーが発生しました。徹底的な調査の結果、メタストアの db ハイブが *-site ファイルからではなく、mysql のメタストア テーブルから URI を取得していることに気付きました。すべてのハイブ テーブル メタ データが保存された場所は、SDS と DBS の 2 つのテーブルです。テーブル DBS と SDS の DB_LOCATION_URI 列と LOCATION をそれぞれ最新の namenode URI を指すように変更すると、仕事に戻りました。

これが他の人に役立つことを願っています。

于 2013-04-22T11:35:31.940 に答える
0

この理由

  1. Hadoop/Hive のバージョンを変更した場合、hive -0.9.0/conf/hive-env.sh ファイルで以前の Hadoop バージョン (core-site.xmlにds.default.name=がある) を指定している可能性があります。hdfs://localhost:54310
  2. $HADOOP_HOME は他の場所を指している可能性があります
  3. 特定のバージョンの Hadoop が動作しない
  4. あなたのnamenodeはセーフモード、実行bin/hdfs dfsadmin -safemode leave、またはbin/hadoop dsfadmin -safemode leave
于 2013-01-20T13:57:43.177 に答える
0

新規インストール
の場合、上記の問題は名前ノードの問題の影響である可能性があります

コマンドを使用してnamenodeをフォーマットしてみてください

hadoop namenode -format
于 2013-11-30T10:59:05.377 に答える