2012-07-03 7 views
7

Uruchomiłem polecenie namenode -format. To jest moje wyjście. Próbowałem zmienić uprawnienia do pliku chmod 777 hadoop.hadoop java.io.IOException: podczas działania polecenia namenode -format

Wierzę, że ta linia jest błąd ERROR namenode.NameNode: java.io.IOException: Nie można utworzyć katalogu/swoje/ścieżka/do/Hadoop/tmp/dir/Hadoop-Hadoop/DFS/nazwisko/prąd

[email protected]:/usr/local/hadoop/bin$ ./hadoop namenode -format 
12/07/03 17:03:56 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = alexander-desktop/127.0.1.1 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 0.20.2 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010 
************************************************************/ 
12/07/03 17:03:56 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop 
12/07/03 17:03:56 INFO namenode.FSNamesystem: supergroup=supergroup 
12/07/03 17:03:56 INFO namenode.FSNamesystem: isPermissionEnabled=true 
12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current 
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:295) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1086) 
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1110) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:856) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:948) 
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 

12/07/03 17:03:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at alexander-desktop/127.0.1.1 


[email protected]:/usr/local$ sudo hadoop/bin/hadoop namenode -format 
sudo: /etc/sudoers is mode 0777, should be 0440 
sudo: no valid sudoers sources found, quitting 
+0

prawdopodobnie będziesz musiał zatrzymać wszystkie swoje demony przed wykonaniem formatu na namenode ..! –

Odpowiedz

13

spróbuj z sudo (zdaję sobie sprawę, że zmieniłeś uprawnienia), ale nadal spróbowałbym sudo i sprawdzić, czy to rozwiąże problem.

+0

Naprawiłem powyższy błąd, zmieniając poziom uprawnień dla sudoers. Oryginalny błąd nie został rozwiązany. ok Mam teraz problem z $ JAVA_HOME czy mogę użyć eksportu $ JAVA_HOME i ścieżki do naprawienia błędu – alex

+0

@alex: Czy ustawiłeś $ JAVA_HOME w conf/hadoop-env.sh? Sprawdź, czy w twoim środowisku jest ustawiony zestaw JAVA_HOME. Należy pamiętać, że środowisko użytkownika sudo i środowisko użytkownika są różne. Użyj poleceń printev i sudo printenv. – FourOfAKind

+0

dzięki, że naprawiłem problem, eksperymentowałem również z ustawieniami różnych zmiennych środowiskowych, więc uznałem, że warto się uczyć. To, co zdezorientowało mnie, to że tutorial powiedział, że możesz ustawić plik hadoop-env.sh lub bash.bashrc. – alex

0

sudo jest uszkodzony w tej sytuacji, ale pkexec (frontend z linii poleceń do PolicyKit) nadal działa, więc można go naprawić za pomocą jednego polecenia. Nie jest konieczne ponowne uruchamianie.

pkexec chmod 0440 /etc/sudoers 

Zakłada się, że zainstalowano PolicyKit. Jeśli jest to system biurkowy (a nie serwer bez GUI), to jest.

1

Sprawdź konfigurację HDFS-site.xml, może ma złą ścieżkę właściwości dfs.namenode.name.dir i dfs.datanode.data.dir w moim przypadku to było przyczyną problemu (katalog był znajduje się w folderze domowym innego niż bieżący użytkownik).

+0

Myślę, że każdy jest jądrowej z sudo - komunikat o błędzie mówi: java.io.IOException: Nie można utworzyć katalogu/twojej/ścieżki/do/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current - nie znaczyłoby to, że kiedykolwiek umieszcza wartość właściciela dla katalogu datadir nie istnieje? Sprawdź najpierw wartości domyślne w pliku core-site.xml pliku hdfs-site.xml? –

11

Poniższe kroki rozwiązać mój problem -

1- sudo su

wprowadzenie hasła.

2-/usr/local/hadoop/bin/hdfs namenode -format.

Zostało to zrobione dla hadoop2.5 w którym "Hadoop namenode -format" został beendeprecated stąd używając "HDFS namenode -format"

+0

Dzięki, zadziałało! –

+0

Pracowałem dla mnie, dziękuję! Przyjęta odpowiedź nie zadziałała w moim przypadku. – randombee

+0

to samo dla mnie .. Przyjęta odpowiedź nie zadziałała w moim przypadku. To zadziałało ~ – MysticForce

2

Jest to problem uprawnienia. Albo można użyć 1. sudo 2. logowanie jako root

Jednak najlepszym rozwiązaniem jest

sudo chown $ HADOOP_HOME

Hadoop namenode -format

Gdzie HADOOP_HOME ma swoją instalację Hadoop katalog

+0

sudo chown $ HADOOP_HOME na jakie pozwolenie? –

Powiązane problemy