5

私はhadoopバージョン1.0.1とUbuntulinux11.10を使用してシングルノードクラスターを実行しています。クラッシュしたとき、おそらくコンピューターがスリープ状態になったために、単純なスクリプトを実行していました。を使用してファイルシステムを再フォーマットしようとしました

bin / hadoop namenode -format

次のエラーが発生しました:

エラーnamenode.NameNode:java.io.IOException:ストレージ/ app / hadoop / tmp / dfs/nameをロックできません。ディレクトリはすでにロックされています。org.apache.hadoop.hdfs.server.common.Storage $ StorageDirectory.lock(Storage.java:602)で

次のコマンドを使用して入力ファイルを追加しようとしています。

bin / hadoop fs -copyFromLocal dataDirectory/*。txtinputDirectory

エラーが発生します:

12/04/15 09:05:21警告hdfs.DFSClient:DataStreamer例外:org.apache.hadoop.ipc.RemoteException:java.io.IOException:ファイル/home/hduser/input/book1.txtは次の場所にのみ複製できました1ではなく0ノード

12/04/15 09:05:21警告hdfs.DFSClient:ブロックnullのエラー回復baddatanode[0]ノード==null12/04/15 09:05:21警告hdfs.DFSClient:ブロックの場所を取得できませんでした。ソースファイル"/home/hduser/input/book1.txt"-中止しています...

その後、入力ディレクトリにファイルが表示されますが、サイズは0です。ファイルを追加する方法について何かアイデアはありますか?Hadoopがクラッシュする前にファイルを追加できたので、LinuxとHadoopを再インストールできますが、やり過ぎのようです。ありがとう。

4

4 に答える 4

5

最初にhadoopを停止する必要があります

bin/stop-all.sh

次に、hadoop (名前ノードとデータノードがまだ実行中) がファイルシステムをロックしているため、ファイルシステムをフォーマットしようとすると、そのエラーが発生する可能性があります。

したがって、コマンド bin/stop-all.sh を実行した後、プロセスを強制終了するだけで、シェルで「 jps 」コマンドを実行すると、プロセス (Java プロセス) が表示され、pid が表示されます。各プロセスに関連して、「kill 23232」のようなコマンド「kill processno」を指定できます。このように、すべてのプロセスを強制終了し、指定した hdfs ファイル システム フォルダーを削除します。

また、ディスク容量が十分にあることも確認してください。Windows 内に ubuntu をインストールしたと仮定すると、/host/ 内のファイル システムといくつかのフォルダーを指定することで、より多くの容量を確保できます。

注:hdfsをフォーマットする必要はありません。すべてのnamenodeとdataノードを停止して、hadoopプロセスを再度開始するだけでよく、頻繁に中断されることはありません.hadoopを停止して開始した後、エラーが発生した場合はファイルをフォーマットしますシステム。

これがあなたを助けることを願っています......

于 2012-04-15T16:44:26.443 に答える
3
  1. namenode のデータを格納するディレクトリを手動で削除してみてください。これは、mapred-site.xmlなどのプロパティで構成されます。この後、hadoop を停止し、namenode を再フォーマットして、再試行します。それでも問題が解決しない場合は、手順 2 に進みますmapred.local.dirmapred.system.dir

  2. 現在のパスではなく、他のパスに namenode 構成を設定してみてください。この後、hadoop を停止し、namenode を再フォーマットして、再試行してください。それでも問題が解決しない場合は、手順 3 に進みます

  3. 十分なディスク容量があるかどうかを確認します。そうでない場合は、namenode が構成されているパーティションにスペースを作成します。問題が解決しない場合は、手順 4 に進みます

  4. hdfs.site.xmlで、0 に設定します。dfs.replicationその後、hadoop を停止し、namenode を再フォーマットして、再試行します。

それでも問題が発生する場合は、発生したエラー/例外とともにお知らせください。

于 2012-04-15T15:55:02.693 に答える
2

私は過去にこの種の問題を抱えていました。私にとっては、ディスクパーティションがいっぱいだったことが原因でした。したがって、ディスクをチェックして、それが関連しているかどうかを確認することをお勧めします。

その場合は、スペースを空けてデーモンを再起動し(手動で強制終了する必要がある場合がありますが、これが発生する場合があります)、再起動します。

于 2012-04-15T16:16:48.283 に答える
0

最も重要なことは、/etc/hadoop/conf/hdfs-site.xml をチェックして、次の値に同じ値を指定していないことを確認することです。

dfs.name.dir & dfs.data.dir.

両方とも異なる値を持つ必要があります。

アビー

于 2014-02-07T06:16:54.097 に答える