Hadoop:输入"start-all.sh"后需要root密码

Mun*_*ong 13 linux ssh ubuntu sudo hadoop

我在笔记本电脑上安装了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).
Run Code Online (Sandbox Code Playgroud)

它需要密码.我的角色是"munichong".但是munichong的密码在这里不起作用.在这里,我的角色已经变为"root".我不知道我在这里是否遗漏了什么.

有没有人可以帮助我?

谢谢!

KAR*_*N.A 16

解:

1)生成没有密码的ssh密钥

$ ssh-keygen -t rsa -P ""
Run Code Online (Sandbox Code Playgroud)

2)将id_rsa.pub复制到授权密钥

$  cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

3)启动ssh localhost

$ ssh localhost
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

5)密码不问

$ jps 
12373 Jps
11823 SecondaryNameNode
11643 DataNode
12278 NodeManager
11974 ResourceManager
11499 NameNode
Run Code Online (Sandbox Code Playgroud)


小智 6

如上所述,munichong是用户(munichong @ GrindPad)

  1. 在我的情况下:登录为hduser

  2. 首先,删除目录sudo rm -rf ~/.ssh

  3. 用于使用默认设置重新生成/.ssh目录:

    [hduser@localhost ~]$ ssh-keygen
    
    Run Code Online (Sandbox Code Playgroud)
  4. 这里我们将id_rsa.pub的内容复制并粘贴到使用上面命令创建的authorised_keys文件中)

    [hduser@localhost ~]$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
    Run Code Online (Sandbox Code Playgroud)
  5. [hduser @ localhost~] $ chmod -R 750 ~/.ssh/authorized_keys

  6. [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来自localhost.localdomain

  7. [hduser @ localhost~] $ jps
    18531 Jps

  8. [hduser @ localhost~] $ start-all.sh

  9. 所有守护进程都开始了

注意:有时由于日志文件会出现其他问题,在这种情况下,只从/ usr/local/hadoop/logs /中删除dot out(.out)文件.


小智 3

我遇到了同样的问题。正如 Amar 所说,如果您以 sudo hadoop 身份运行,则会要求输入 root 密码。如果您没有 root 密码,您可以使用以下命令设置一个

 sudo passwd
Run Code Online (Sandbox Code Playgroud)

下面的 URL 为您提供了有关用户管理的更多详细信息。

https://help.ubuntu.com/12.04/serverguide/user-management.html