我创建了一个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:
输入从属密码后,连接关闭
我已经尝试过但没有结果:
答案 0 :(得分:2)
我认为您错过了这一步"将SSH公钥添加到目标主机上的authorized_keys文件"
只需正确重做无密码的ssh步骤即可。请遵循:
生成公钥和私钥SSH密钥
ssh-keygen
将SSH公钥(id_rsa.pub
)复制到您的帐户上的root帐户
目标主机
.ssh/id_rsa
.ssh/id_rsa.pub
将SSH公钥添加到目标上的authorized_keys
文件中
主机
cat id_rsa.pub >> authorized_keys
根据您的SSH版本,您可能需要设置权限
.ssh
目录(至700)和authorized_keys
文件
目标主机上的目录(至600)。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
检查连接:
ssh root@<remote.target.host>
其中<remote.target.host>
具有群集中每个主机名的值。
如果您在第一次显示以下警告消息 连接:您确定要继续连接(是/否)吗?
输入是。
注意:如果您的无密码ssh设置正确,则不会询问密码。
答案 1 :(得分:0)
确保使用名为hadoop的新用户启动hadoop服务。
然后确保使用该新用户将公钥添加到从属服务器。
如果这不起作用,请检查防火墙或iptables
我希望它有所帮助
答案 2 :(得分:0)
这意味着您还没有正确创建公钥。
按照以下顺序。
现在不应该要求密码。