我在笔记本电脑上安装了Hadoop和SSH。 “ssh localhost”工作正常。格式化HDFS后,我试图启动hadoop。
munichong@GrindPad:~$ sudo /usr/sbin/start-all.sh
starting namenode, logging to /var/log/hadoop/root/hadoop-root-namenode-GrindPad.out
root@localhost's password:
root@localhost's password: localhost: Permission denied, please try again.
localhost: Permission denied (publickey,password).
需要密码。我的角色是“munichong”。但是munichong的密码在这里不起作用。在这里,我的角色已经变为“root”。我不知道在这里是否遗漏了什么。
有人可以帮助我吗?
谢谢!
答案 0 :(得分:14)
解决方案:
1)生成没有密码的ssh密钥
$ ssh-keygen -t rsa -P ""
2)将id_rsa.pub复制到授权密钥
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
3)启动ssh localhost
$ ssh localhost
4)现在转到hadoop sbin目录并启动hadoop
$./start-all.sh
./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/amtex/Documents/installed/hadoop/logs/hadoop-amtex-namenode-amtex-desktop.out
localhost: starting datanode, logging to /home/amtex/Documents/installed/hadoop/logs/hadoop-amtex-datanode-amtex-desktop.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/amtex/Documents/installed/hadoop/logs/hadoop-amtex-secondarynamenode-amtex-desktop.out
starting yarn daemons
starting resourcemanager, logging to /home/amtex/Documents/installed/hadoop/logs/yarn-amtex-resourcemanager-amtex-desktop.out
localhost: starting nodemanager, logging to /home/amtex/Documents/installed/hadoop/logs/yarn-amtex-nodemanager-amtex-desktop.out
5)密码不询问
$ jps
12373 Jps
11823 SecondaryNameNode
11643 DataNode
12278 NodeManager
11974 ResourceManager
11499 NameNode
答案 1 :(得分:6)
如上所述,munichong是用户(munichong @ GrindPad)
在我的情况下:以hduser身份登录
首先,删除目录sudo rm -rf ~/.ssh
用于使用默认设置重新生成/.ssh目录:
[hduser@localhost ~]$ ssh-keygen
这里我们将id_rsa.pub的内容复制并粘贴到使用上述命令创建的authorised_keys文件中)
[hduser@localhost ~]$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hduser @ localhost~] $ chmod -R 750 ~/.ssh/authorized_keys
[hduser @ localhost~] $ ssh localhost
无法建立主机'localhost(127.0.0.1)'的真实性。 RSA密钥指纹是04:e8:80:64:dc:71:b5:2f:c0:d9:28:86:1f:61:60:8a。 您确定要继续连接(是/否)吗?是的
警告:永久性地将“localhost”(RSA)添加到已知主机列表中。 上次登录时间:2016年1月4日星期一14:31:05 from localhost.localdomain
[hduser @ localhost~] $ jps
18531 Jps
[hduser @ localhost~] $ start-all.sh
所有守护进程开始
注意:有时由于日志文件会出现其他问题,在这种情况下,只删除/ usr / local / hadoop / logs /中的dot out(.out)文件。
答案 2 :(得分:3)
我遇到了同样的问题。正如Amar所说,如果你正在运行sudo hadoop将要求root密码。 如果您没有root密码,可以使用
设置密码 sudo passwd
以下URL为您提供有关用户管理的更多详细信息。
https://help.ubuntu.com/12.04/serverguide/user-management.html
答案 3 :(得分:0)
创建和设置SSH证书 Hadoop需要SSH访问来管理其节点,即远程计算机和本地计算机。对于我们的Hadoop单节点设置,我们需要配置对localhost的SSH访问。
因此,我们需要在我们的计算机上启动并运行SSH,并将其配置为允许SSH公钥身份验证。
Hadoop使用SSH(访问其节点),这通常需要用户输入密码。但是,可以使用以下命令创建和设置SSH证书来消除此要求。如果要求输入文件名,请将其留空,然后按确认键继续。
答案 4 :(得分:0)
似乎您已经以root用户身份登录并调用start-all.sh。
而是以目录$ SPARK_HOME的所有者身份登录并调用spark's
start-all.sh.
(或)
让用户hadoop成为目录$ SPARK_HOME的所有者,当前以root用户身份登录,则命令如下:
sudo -u hadoop -c start-all.sh
假设:
a)PATH引用目录$ SPARK_HOME / bin
b)为用户hadoop配置了基于证书的身份验证
答案 5 :(得分:-1)
登录超级用户或root
:~ su
Password:
授予用户
的权限:~ sudo chown -R <log in user> /usr/local/hadoop/
为您的示例登录用户:munichong
HADOOP_HOME = /usr/local/hadoop/