ОШИБКА namenode.FSNamesystem: сбой инициализации системы FSNames - PullRequest
1 голос
/ 08 января 2012

Я запускаю hadoop в псевдо-распределенном режиме на виртуальной машине с Ubuntu Недавно я решил увеличить объем оперативной памяти и количество ядер, доступных для моей виртуальной машины, и это, похоже, полностью испортило hdfs. Во-первых, он был в безопасном режиме, и я вручную выпустил его, используя:

hadoop dfsadmin -safemode оставить

Тогда я побежал:

hadoop fsck -blocks

и практически каждый блок был поврежден или отсутствует. Поэтому я решил, что это только для моего обучения, я удалил все в "/ user / 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 namenode

    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
************************************************************/

Кто-нибудь, пожалуйста, помогите мне здесь? Я пытался это исправить часами.

Ответы [ 2 ]

6 голосов
/ 08 января 2012

Перейдите туда, где вы настроили hdfs.удалите все там, отформатируйте наменоде и все готово.Обычно это происходит, если вы не выключили кластер должным образом!

0 голосов
/ 07 сентября 2014

Следующая ошибка означает, что файл fsimage не имеет разрешения

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

дайте разрешение на файл fsimage,

$ chmod -R 777 fsimage

...