hadoop部署中遇到ssh设置的问题

尽管hadoop和一些培训视频课程上讲分布式部署比较详细,但是在部署时仍遇到了一些小问题,在此mark一下:

1.linux的namenode主机上安装了ssh,也启动了ssh,并且执行了:

 /etc/init.d/iptables status

显示:

  Firewall is stopped.

但是,执行ssh localhost时仍然报“ssh: connect to host localhost port 22: Connection refused”这个错误;

解决方法

  联系系统管理员,确定该主机开的ssh服务端口是多少,hadoop默认是22端口,如果系统安装时ssh服务修改了服务端口,hadoop启动当然会报错;

  假如你知道了你主机ssh启动的服务端口是222,则可以在etc/hadoop-env.sh文件中增加环境变量:

  export HADOOP_SSH_OPTS="-p 222"

  再次启动后,master和slave相互之间就可以ssh通了;

2.已经按照教材或者课程的方法修改了authorized_keys,并且master和slave主机的authorized_keys都已经包含所有各自的authorized_keys中密钥,但是执行start-all.sh后,仍然提示输入密码;

解决方法:

  如果确认密钥生成的没问题,而且authorized_keys中都已正确配置了各自的密钥,则可以尝试修改一下master和各个slave下的.ssh和authorized_keys的权限:

  chmod 644 authorized_keys

  chmod 700 ../.ssh

  如果权限不正确则当启动start-all.sh时,仍需要输入密码,修改权限后,就不需要输入密码了;

原文地址:https://www.cnblogs.com/coderxiaocai/p/4675107.html