【问题标题】:Hadoop: require root's password after enter "start-all.sh"Hadoop:输入“start-all.sh”后需要root密码
【发布时间】:2013-03-04 05:20:44
【问题描述】:

我在笔记本电脑上安装了 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).

它需要密码。我的角色是“munich”。但是munichong的密码在这里不起作用。在这里,我的角色已更改为“root”。我不知道我是否在这里遗漏了什么。

有人可以帮助我吗?

谢谢!

【问题讨论】:

  • 如果您使用sudo 执行它,那么它当然希望您是root 并且想要root 的密码而不是您的!或者我在这里错过了什么可怕的东西!
  • @Amar 你没有错,但这不是 OP 所指的问题。 OP所指的问题是由启动Hadoop时连接到localhost的启动脚本引起的。它实际上是通过 SSH 连接到自身,如果未设置 SSH 密钥,则需要输入密码。

标签: linux ubuntu hadoop ssh sudo


【解决方案1】:

解决方案:

1) 生成不带密码的 ssh 密钥

$ ssh-keygen -t rsa -P ""

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

$  cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

3) 启动 ssh 本地主机

$ 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

【讨论】:

  • 我被要求输入 ssh localhost 的密码,但我没有那个密码,用户帐户的密码不正确。
  • 在生成ssh时,密码字段是空的,所以在启动hadoop服务时它会自动一个一个地启动而无需询问任何密码。@PythonNewHand
【解决方案2】:

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

  1. 在我的例子中:以 hduser 身份登录

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

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

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

    [hduser@localhost ~]$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
  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 日/秒

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

  9. 所有守护进程启动

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

【讨论】:

    【解决方案3】:

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

    设置一个
     sudo passwd
    

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

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

    【讨论】:

      【解决方案4】:

      创建和设置 SSH 证书 Hadoop 需要 SSH 访问来管理其节点,即远程机器加上我们的本地机器。因此,对于我们的 Hadoop 单节点设置,我们需要配置对 localhost 的 SSH 访问。

      因此,我们需要在我们的机器上启动并运行 SSH,并将其配置为允许 SSH 公钥身份验证。

      Hadoop 使用 SSH(访问其节点),这通常需要用户输入密码。但是,可以通过使用以下命令创建和设置 SSH 证书来消除此要求。如果要求输入文件名,请将其留空,然后按 Enter 键继续。

      查看this site

      【讨论】:

        【解决方案5】:

        您似乎已以 root 身份登录并调用 start-all.sh。

        而是以目录 $SPARK_HOME 的所有者身份登录并调用 spark 的
        start-all.sh.

        (或)

        让用户 hadoop 成为 $SPARK_HOME 目录的所有者,并且当前以 root 身份登录,那么命令如下:

        sudo -u hadoop -c start-all.sh
        

        假设:
        a) PATH 引用了目录 $SPARK_HOME/bin
        b) 为用户 hadoop 配置基于证书的身份验证

        【讨论】:

          【解决方案6】:

          登录超级用户或root

          :~ su
          
          Password:
          

          授予用户权限

          :~ sudo chown -R <log in user> /usr/local/hadoop/
          

          对于您的示例登录用户:munichong

          HADOOP_HOME = /usr/local/hadoop/

          【讨论】:

            猜你喜欢
            • 2019-12-16
            • 1970-01-01
            • 2019-09-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-06
            • 2019-11-28
            相关资源
            最近更新 更多