2013-03-04 64 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