2012-01-07 25 views
1

私はubuntu VM上で擬似分散モードでhadoopを実行しています。私は最近、自分のVMで使用できるRAMの数とコアの数を増やすことにしました。これは、完全にhdfsを台無しにしてしまったようです。まず、それはセーフモードにあったと私は手動で使用していることを解放:エラーnamenode.FSNamesystem:FSNamesystemの初期化に失敗しました

のHadoop dfsadminをそれから私は走った

を残す-safemode:

-blocks

のHadoopのfsckをし、実質的にすべてのブロックが破損したか行方不明。だから私は、これは私の学習のためだけだと思った、私は "/ユーザー/ msknapp"と "/var/lib/hadoop-0.20/cache/mapred/mapred/.settings"のすべてを削除した。そのため、ブロックエラーはなくなりました。その後、私は試してみてください。

HadoopのFS -put myfileはmyfileの

と(簡略)を取得:

12/01/07 15:05:29 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/msknapp/myfile could only be replicated to 0 nodes, instead of 1 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1490) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:653) 
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) 
12/01/07 15:05:29 WARN hdfs.DFSClient: Error Recovery for block null bad datanode[0] nodes == null 
12/01/07 15:05:29 WARN hdfs.DFSClient: Could not get block locations. Source file "/user/msknapp/myfile" - Aborting... 
put: java.io.IOException: File /user/msknapp/myfile could only be replicated to 0 nodes, instead of 1 
12/01/07 15:05:29 ERROR hdfs.DFSClient: Exception closing file /user/msknapp/myfile : org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/msknapp/myfile could only be replicated to 0 nodes, instead of 1 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1490) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:653) 
    at ... 

org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/msknapp/myfile could only be replicated to 0 nodes, instead of 1 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1490) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:653) 
    at ... 

をだから私は名前ノードとデータノードを停止して再起動してみました。いいえ運:

のHadoop名前ノード

12/01/07 15:13:47 ERROR namenode.FSNamesystem: FSNamesystem initialization failed. 
java.io.FileNotFoundException: /var/lib/hadoop-0.20/cache/hadoop/dfs/name/image/fsimage (Permission denied) 
    at java.io.RandomAccessFile.open(Native Method) 
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.isConversionNeeded(FSImage.java:683) 
    at org.apache.hadoop.hdfs.server.common.Storage.checkConversionNeeded(Storage.java:690) 
    at org.apache.hadoop.hdfs.server.common.Storage.access$000(Storage.java:60) 
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:469) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:297) 
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:99) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:358) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:327) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:271) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:465) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1239) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1248) 
12/01/07 15:13:47 ERROR namenode.NameNode: java.io.FileNotFoundException: /var/lib/hadoop-0.20/cache/hadoop/dfs/name/image/fsimage (Permission denied) 
    at java.io.RandomAccessFile.open(Native Method) 
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.isConversionNeeded(FSImage.java:683) 
    at org.apache.hadoop.hdfs.server.common.Storage.checkConversionNeeded(Storage.java:690) 
    at org.apache.hadoop.hdfs.server.common.Storage.access$000(Storage.java:60) 
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:469) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:297) 
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:99) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:358) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:327) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:271) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:465) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1239) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1248) 

12/01/07 15:13:47 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1 
************************************************************/ 

誰かがここに私を助けていないしてくださいますか?私はこれを何時間も修正しようとしています。

+0

を持っていない、意味し、 "のHadoop dfsadminの-format"エラー:namenode.NameNode:java.io.IOException:現在のディレクトリを削除できません:/var/lib/hadoop-0.20/cache/hadoop/dfs/name/current – msknapp

+0

私はhadoopをすべてアンインストールして再インストールしました。私はまだこの同じエラーがあります。私はVMを削除し、新しいVMを開始するように強制されるようです。これは一つの厄介なバグです。 – msknapp

答えて

6

hdfsを設定した場所に移動します。そこにあるすべてのものを削除し、namenodeをフォーマットしてください。通常、クラスタを適切にシャットダウンしないと発生します。

+0

これで、hdfsの代わりにローカルファイルシステムを使っているようです。クラスタをシャットダウンする「正しい」方法を私に説明できますか?私は特定の方法でシャットダウンする必要があることを知らなかった。 VMの電源を切ると、クラスタが正常にシャットダウンしないことになりますか? – msknapp

+0

それを起動すると、 "start-all.sh"で、ジョブ・マネージャのnamennodeとクラスタを実行しているすべてのデーモンが起動します。正常にシャットダウンするには、 "stop -all.sh"コマンドを発行する必要があります。これにより、すべてが慎重にシャットダウンされます。私はあなたがそれを閉じることをお勧めします、あなたのhdfsが開始された場所を消去し、 "hadoop namenode -format"を実行し、クラスタを再起動します。これがうまくいけば教えてください! – inquire

+0

私はrootユーザーから誤ってnamenodeプロセスを起動し、hduserから実行して、停止してから、hduserから再度フォーマットを試み、同様の問題に直面した同様の問題を抱えていました。あなたの答えは、ありがとう! 1アップ! – Ouroboros

0

次のエラーがfsimageファイルが

namenode.NameNode: java.io.FileNotFoundException: /var/lib/hadoop-0.20/cache/hadoop/dfs/name/image/fsimage (Permission denied) 

はそうファイルをfsimageする許可を与える権限、方法によって

の$のchmod -R 777 fsimage

関連する問題