hadoop集群需要使用ssh免密钥登陆,今天需要重新做一次hadoop的时候被卡了下,看来之前做过的事还是应该老老实实做个备忘,不能光依靠自己的记忆力啊。
1.
ssh密钥是为了让master能够无密码地登录到每个slave,以下是在伪分布式下的步骤:
在hadoop用户下:su hadoop (如root下免密钥登陆,则在root下使用下述命令)
$ ssh-keygen –t dsa
$ cd /home/hadoop/.ssh
$ cat id_dsa.pub >> authorized_keys
使用这条命令即可验证是否实现本机免密码登录
$ ssh localhost
此外,为了确保hadoop集群中的网络通信不被阻挠,最好把防火墙关掉:
$ sudo ufw disable
然后重启机器。
2。
在每台slave节点
$ scp hadoop@X.X.X.X:/home/hadoop/.ssh /home/hadoop/.ssh
然后
$ cd /home/hadoop/.ssh
如果提示.ssh不能访问或者不存在,则mkdir .ssh
然后重新scp
然后
$ cd /home/hadoop/.ssh
$ cat id_dsa.pub >> authorized_keys
cat id_rsa.pub >> authorized_keys
OK
最后要注意authorized_keys的权限,可以是600或者644,权限过高反而会失败。