2013-03-04 61 views
5

我在我的筆記本電腦上安裝Hadoop。 SSH工作正常,但我無法啓動hadoop。Hadoop:被拒絕的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). 

我用過「sudo」。但是許可仍然被拒絕。

有沒有人可以幫助我?

在此先感謝!

+3

1.你是否用同一個用戶啓動所有的hadoop守護進程? 2.機器上無密碼的SSH設置是否正確?即你可以在不提示輸入密碼的情況下運行'ssh localhost'? – harpun 2013-03-04 22:08:08

回答

4

嘗試更改文件夾的所有權:/var/log/hadoop/root給用戶:munichong。 與所有系統一樣,LOGS目錄需要由hadoop編輯。所以它需要權限來編輯LOG文件夾及其內容。

sudo在這種情況下將不起作用,因爲即使在此腳本完成其工作後,即需要在後臺啓動HADOOP服務,也需要具有更改文件夾內容的權限。

+1

您可以通過添加以下行來將日誌目錄從默認的/ var/log更改爲您在hadoop-env.sh文件中的自定義位置:export HADOOP_LOG_DIR = <您的位置> – 2013-03-06 11:00:56

1

那麼我現在也面臨着這個問題,在我遇到這個問題之前,我使用下面的方法。

  1. sudo -s -H

使用這種代碼通過使用ssh(如果你只是以root登陸用戶

  • ssh localhost
  • 登錄試圖使用單節點模式)

    1. ./sbin/start-dfs.sh

    ./sbin/start-yarn.sh

    「cd」 命令你的Hadoop的安裝路徑,然後打印代碼啓動HDFS & MapRedude,那麼你就不會再面臨permittion問題。

    我想這個問題的原因:

    我使用root用戶來初始化Hadoop的環境中,所以幾個文件夾被root用戶創建,所以,當我現在用我自己的帳戶像「傑克」 ,我沒有許可證啓動服務(在此期間,系統需要訪問日誌)

    enter image description here

    8

    我面臨同樣的問題,所以試圖連接SSH並得到聲明,如「未找到,「所以我去了ssh的位置進行調試,由以下st EPS:

    cd ~/.ssh

    ssh_keygen -t rsa -p""

    cat id_rsa.pub >> authorized_keys

    ...然後它的工作...

    10

    我被困在最近幾個小時的相同問題,但終於解決了它。 我的hadoop安裝被我用來運行hadoop的用戶提取。所以用戶權限不是問題。
    我的配置是這樣的: Google Cloud上的Ubuntu linux機器。

    Hadoop安裝/ home/ Hadoop數據目錄/ var/lib/hadoop 和目錄訪問位是777,所以任何人都可以訪問。 我做了ssh進入遠程機器對配置文件進行了修改並執行了start-dfs.sh,然後它給了我「權限被拒絕(公鑰)」 所以這裏是解決方案: 在同一個ssh終端:

    1. SSH-凱基

    2.It會要求的文件夾位置,將複製的鑰匙,我進入/home/hadoop/.ssh/id_rsa

    他會要求密碼,爲簡單起見,請保持空白。

    4. CP /home/hadoop/.ssh/id_rsa.pub的.ssh/authorized_keys中 (複製新生成的公鑰認證文件文件在用戶的家/的.ssh directiry

  • SSH本地主機

  • start-dfs.sh (現在它應該工作!)

  • 0

    我認爲問題在於root和用戶的ssh連接。 這裏是我的副本https://askubuntu.com/questions/497895/permission-denied-for-rootlocalhost-for-ssh-connection 解決了我的情況。

    默認情況下,SSH服務器拒絕根用戶的密碼登錄。在/ etc/SSH/sshd_config中,

    變化: 的PermitRootLogin沒有-密碼的PermitRootLogin是

    ,並重新啓動SSH:sudo的服務SSH重啓

    或者,你可以使用SSH密鑰。如果你沒有,用ssh-keygen創建一個(按照默認的鍵,如果你喜歡,可以跳過密碼)。然後執行sudo -s(或任何您首選的成爲root的方法),然後將SSH密鑰添加到/root/.ssh/authorized_keys:

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