2013-03-04 16 views
5

Instaluję Hadoop na moim laptopie. SSH działa dobrze, ale nie mogę uruchomić hadoop.Hadoop: Odmowa zgody na start-dfs.sh

[email protected]:~$ ssh localhost 
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-25-generic x86_64) 

* Documentation: https://help.ubuntu.com/ 

0 packages can be updated. 
0 updates are security updates. 

Last login: Mon Mar 4 00:01:36 2013 from localhost 

[email protected]:~$ /usr/sbin/start-dfs.sh 
chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
starting namenode, logging to /var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out 
/usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-namenode.pid: Permission denied 
usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out: Permission denied 
head: cannot open `/var/log/hadoop/root/hadoop-munichong-namenode-GrindPad.out' for reading: No such file or directory 
localhost: chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
localhost: starting datanode, logging to /var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out 
localhost: /usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out: Permission denied 
localhost: /usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-datanode.pid: Permission denied 
localhost: head: cannot open `/var/log/hadoop/root/hadoop-munichong-datanode-GrindPad.out' for reading: No such file or directory 
localhost: chown: changing ownership of `/var/log/hadoop/root': Operation not permitted 
localhost: starting secondarynamenode, logging to /var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out 
localhost: /usr/sbin/hadoop-daemon.sh: line 136: /var/run/hadoop/hadoop-munichong-secondarynamenode.pid: Permission denied 
localhost: /usr/sbin/hadoop-daemon.sh: line 135: /var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out: Permission denied 
localhost: head: cannot open `/var/log/hadoop/root/hadoop-munichong-secondarynamenode-GrindPad.out' for reading: No such file or directory 

[email protected]:~$ sudo /usr/sbin/start-dfs.sh 
[sudo] password for munichong: 
starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-GrindPad.out 
localhost: Permission denied (publickey,password). 
localhost: Permission denied (publickey,password). 

Użyłem "sudo". Ale pozwolenie nadal jest zabronione.

Czy ktoś może mi pomóc?

Z góry dziękuję!

+3

1. Czy uruchamiasz wszystkie demo maoopów u tego samego użytkownika? 2. Czy konfiguracja SSH bez haseł jest poprawna na urządzeniu? np. czy możesz uruchomić 'ssh localhost' bez pytania o hasło? – harpun

Odpowiedz

4

Spróbuj zmienić właściciela folderu: /var/log/hadoop/root na użytkownika: munichong. Tak jak we wszystkich systemach, katalog LOGS musi być edytowany przez hadoop. Dlatego wymaga uprawnień do edycji folderu LOG ​​i jego zawartości.

sudo nie będzie działać w tym przypadku, ponieważ wymaga to uprawnienia do zmiany zawartości folderu nawet po zakończeniu działania skryptu, tj. W celu uruchomienia usług HADOOP w tle.

+1

możesz zmienić katalog dzienników z domyślnego/var/log na niestandardową lokalizację w pliku hadoop-env.sh, dodając wiersz: 'export HADOOP_LOG_DIR = ' –

1

Cóż, mam teraz do czynienia z tym problemem, i zanim dostałem w tym pytaniu, używam poniższej metody.

  1. sudo -s -H

użyć tego kodu, aby zalogować się jako użytkownik root

  1. ssh localhost

logowanie przez ssh (jeśli tylko próbując użyć trybu pojedynczego węzła)

  1. ./sbin/start-dfs.sh

./sbin/start-yarn.sh

"cd" do Hadoop instalacji trasie następnie wydrukować ten kod, aby rozpocząć HDFS & MapRedude, wtedy nie będzie ponownie zmierzyć się z problemem permittion.

Chyba przyczyny tego problemu:

używam użytkownika root init środowiska Hadoop, więc kilka folderów, tworzenie przez użytkownika root, tak, że kiedy teraz używając własny rachunek jak „Jake” , nie mam pozwolenia, aby uruchomić usługę (w tym czasie system potrzebę dostępu do rejestrów)

enter image description here

8

wychodził sam problem, więc starał się połączyć SSH i dostał oświadczenie jak "nie znaleziono , "więc poszedłem do lokalizacji ssh do debugowania przez następujące st EPS:

cd ~/.ssh

ssh_keygen -t rsa -p""

cat id_rsa.pub >> authorized_keys

... wtedy to działało ...

10

Utknąłem w tym samym numerze przez ostatnie kilka godzin, ale w końcu rozwiązałem go. Miałem instalację hadoop wyodrębnioną przez tego samego użytkownika, którego używam do uruchamiania hadoop. Tak więc przywilej użytkownika nie jest problemem.
Moja kofiguracja wygląda tak: Ubuntu linux w Google Cloud.

Instalacja Hadoop/home/ Katalog danych Hadoop/var/lib/hadoop i bity dostępu do katalogów to 777, więc każdy może uzyskać do nich dostęp. Zrobiłem ssh na zdalnej maszynie dokonałem zmian w plikach konfiguracyjnych i wykonałem start-dfs.sh, następnie dało mi "Odmowa uprawnień (klucz publiczny)" Oto rozwiązanie: W tym samym terminalu ssh:

  1. ssh-keygen

2.It zapyta o lokalizację folderu, w którym będzie on kopiować klucze, wszedłem /home/hadoop/.ssh/id_rsa

3.it poprosi o hasło, pozostaw puste dla uproszczenia.

4. cp /home/hadoop/.ssh/id_rsa.pub .ssh/authorized_keys (Aby skopiować nowo wygenerowanego klucza publicznego do pliku auth w swoich użytkowników home/.ssh directiry

  1. ssh localhost

  2. start-dfs.sh (teraz powinno działać!)

0

Myślę, że problem polega na tym, że root i użytkownik ssh połączenie. tutaj jest mój egzemplarz https://askubuntu.com/questions/497895/permission-denied-for-rootlocalhost-for-ssh-connection Rozwiązałem moją sprawę.

Domyślnie serwer SSH odmawia logowania root dla hasła. W/etc/ssh/sshd_config,

zmiana: PermitRootLogin bez-hasła do PermitRootLogin tak

I ponownie uruchomić ssh: sudo service ssh restart

Albo można użyć kluczy SSH. Jeśli go nie masz, utwórz je za pomocą ssh-keygen (trzymaj się domyślnego klucza i pomiń hasło, jeśli masz na to ochotę). Następnie wykonaj sudo -s (lub inną preferowaną przez ciebie metodę zostania rootem) i dodaj klucz SSH do /root/.ssh/authorized_keys:

cat /home/user/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys

Powiązane problemy