24

我正在笔记本电脑上安装 Hadoop。SSH 工作正常,但我无法启动 hadoop。

munichong@GrindPad:~$ 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

munichong@GrindPad:~$ /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

munichong@GrindPad:~$ 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).

我用了“须藤”。但是权限仍然被拒绝。

有没有人可以帮助我?

提前致谢!

4

10 回答 10

37

在过去的几个小时里,我被困在同一个问题上,但最终解决了。我的 hadoop 安装由与我用来运行 hadoop 的用户相同的用户提取。所以用户权限不是问题。
我的配置是这样的:Google Cloud 上的 Ubuntu linux 机器。

Hadoop安装/home/ Hadoop数据目录/var/lib/hadoop,目录访问位为777,所以任何人都可以访问。我做了 ssh 到远程机器对配置文件进行了更改并执行了 start-dfs.sh,然后它给了我“权限被拒绝(公钥)”所以这是解决方案:在同一个 ssh 终端中:

  1. ssh-keygen

2.它会询问复制密钥的文件夹位置,我输入/home/hadoop/.ssh/id_rsa

3.它会要求输入密码,为简单起见保持空白。

4. cat /home/hadoop/.ssh/id_rsa.pub >> .ssh/authorized_keys (将新生成的公钥复制到用户home/.ssh目录下的auth文件)

  1. ssh 本地主机

  2. start-dfs.sh (现在它应该可以工作了!)

于 2015-04-21T16:14:56.547 回答
22

我遇到了同样的问题,所以尝试连接 SSH 并得到类似“未找到”的语句,所以我通过以下步骤前往 ssh 位置进行调试:

cd ~/.ssh

ssh-keygen -t rsa -p""

cat id_rsa.pub >> authorized_keys

...然后它起作用了...

于 2014-12-08T18:25:18.183 回答
5

尝试将文件夹的所有权:/var/log/hadoop/root更改为用户:munichong。与所有系统一样,LOGS 目录需要由 hadoop 编辑。因此,它需要编辑 LOG 文件夹及其内容的权限。

sudo在这种情况下将不起作用,因为即使在此脚本完成其工作(即在后台启动 HADOOP 服务)之后,也需要具有更改文件夹内容的权限。

于 2013-03-05T12:03:53.383 回答
3

您正在尝试 ssh 到您自己的机器(本地主机)并且缺少authorized_keys允许登录的文件。

SSH 中的此文件指定可用于登录配置该文件的用户帐户的 SSH 密钥。

请按照以下两个步骤正确配置它。

在终端中使用以下命令生成新的密钥生成器:

ssh-keygen

按回车键保留默认名称 id_rsa.pub

现在注册生成的密钥文件:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
于 2018-09-20T06:32:33.620 回答
1

那么我现在也面临这个问题,在我回答这个问题之前,我使用下面的方法。

  1. sudo -s -H

使用此代码以 root 用户身份登录

  1. ssh localhost

使用 ssh 登录(如果您只是尝试使用单节点模式)

  1. ./sbin/start-dfs.sh

./sbin/start-yarn.sh

“cd”到您的 Hadoop 安装路径,然后打印该代码以启动 HDFS&MapRedude,那么您将不会再遇到许可问题。

我猜这个问题的原因:

我使用root用户来初始化Hadoop环境,所以几个文件夹是由root用户创建的,所以当我现在使用我自己的账户比如'Jake'时,我没有权限启动服务(在那段时间系统需要访问LOGS)

在此处输入图像描述

于 2014-10-20T03:38:27.917 回答
0

尝试更改存储 hdfs namenode 和 datanode 的位置的权限。

hdfs-site.xml 中提到的位置

那个位置应该有755的许可。-rwxr-xr-x 与您运行 hadoop 的用户一起使用。

还为日志位置设置相同的权限。

希望它会有所帮助!

于 2020-05-19T10:31:41.040 回答
0

我认为问题在于root和用户的ssh连接。这是我的副本https://askubuntu.com/questions/497895/permission-denied-for-rootlocalhost-for-ssh-connection 解决了我的问题。

默认情况下,SSH 服务器拒绝基于密码的 root 登录。在 /etc/ssh/sshd_config 中,

更改: PermitRootLogin without-password to PermitRootLogin yes

并重启 SSH: sudo service ssh restart

或者,您可以使用 SSH 密钥。如果您没有,请使用 ssh-keygen 创建一个(坚持默认的密钥,如果您愿意,可以跳过密码)。然后执行 sudo -s(或任何您喜欢的成为 root 的方法),并将 SSH 密钥添加到 /root/.ssh/authorized_keys:

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

于 2015-07-21T02:42:37.820 回答
0

R hadoop安装权限被拒绝问题,下面的命令适用于start-all.sh

sudo chown -R hadoop /usr/local/hadoop/ 
于 2019-05-27T16:03:22.230 回答
0

必须这样做,就像上面的每个人一样:

cd ~/.ssh

ssh-keygen -t rsa -p""

cat id_rsa.pub >> authorized_keys

但这是关键:

chmod 400 ~/.ssh/id_rsa
于 2021-02-12T02:37:04.007 回答
-2

我通过将所有文件的权限设置为777

sudo chmod 777 /usr/local/hadoop-2.7.6/* -R
于 2018-12-12T10:05:31.127 回答