无法在Hadoop多节点集群

时间:2015-10-03 10:57:46

标签: hadoop

我创建了一个hadoop多节点集群,并且还在主节点和从节点中配置了SSH,现在我可以在主节点中连接到没有密码的slave

但是当我尝试在主节点中启动-dfs.sh时,我无法连接到从节点,执行在下面的行停止

日志:

HNname@master:~$ start-all.sh
starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-HNname-namenode-master.out
HDnode@slave's password: master: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-HNname-datanode-master.out

我按了回车

slave: Connection closed by 192.168.0.2
master: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-HNname-secondarynamenode-master.out
jobtracker running as process 10396. Stop it first.
HDnode@slave's password: master: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-HNname-tasktracker-master.out

slave: Permission denied, please try again.
HDnode@slave's password:

输入从属密码后,连接关闭

我已经尝试过但没有结果:

  1. master和amp;中的格式化namenode从节点
  2. 创建了新的ssh密钥并在两个节点中配置
  3. 覆盖this帖子
  4. 的默认HADOOP_LOG_DIR

3 个答案:

答案 0 :(得分:2)

我认为您错过了这一步"将SSH公钥添加到目标主机上的authorized_keys文件"

只需正确重做无密码的ssh步骤即可。请遵循:

  1. 生成公钥和私钥SSH密钥

    ssh-keygen
    
  2. 将SSH公钥(id_rsa.pub)复制到您的帐户上的root帐户 目标主机

    .ssh/id_rsa
    .ssh/id_rsa.pub
    
  3. 将SSH公钥添加到目标上的authorized_keys文件中 主机

    cat id_rsa.pub >> authorized_keys
    
  4. 根据您的SSH版本,您可能需要设置权限 .ssh目录(至700)和authorized_keys文件 目标主机上的目录(至600)。

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  5. 检查连接:

    ssh root@<remote.target.host>
    

    其中<remote.target.host>具有群集中每个主机名的值。

    如果您在第一次显示以下警告消息 连接:您确定要继续连接(是/否)吗?

    输入是。

  6. 参考:Set Up Password-less SSH

    注意:如果您的无密码ssh设置正确,则不会询问密码。

答案 1 :(得分:0)

确保使用名为hadoop的新用户启动hadoop服务。

然后确保使用该新用户将公钥添加到从属服务器。

如果这不起作用,请检查防火墙或iptables

我希望它有所帮助

答案 2 :(得分:0)

这意味着您还没有正确创建公钥。

按照以下顺序。

  1. 创建用户
  2. 向该用户授予所有必需的权限
  3. 使用同一用户生成公钥
  4. 格式名称节点
  5. 启动hadoop服务。
  6. 现在不应该要求密码。