用户SSH免密登录
环境:SUSE 11 64位
系统的结构:两台服务器A、B;A为主机,主机名为namenode,有个用户hadoop;B为从机,主机名为datanode,有个用户hadoop。
在A机、B机的/etc/hosts中把对方的机器名写好,确保ping机器名能ping通,如下:
A机的IP地址 namenode
B机的IP地址 datanode
配置SSH免密码登录步骤:
1、在A机使用hadoop用户。参考命令:su - hadoop
2、在hadoop的home目录下。参考命令:cd ~
3、建立.ssh文件夹,不要漏了ssh前的.号。参考命令:mkdir ~/.ssh
4、在.ssh文件夹中,运行ssh-keygen,生成id_rsa和id_rsa.pub。
系统询问存放路径(Enter file in which to save the key)、输入口令(Enter passphrase)、再次输入口令(Enter same passphrase again),都可以直接回车采用默认。在.ssh文件夹中就会生成id_rsa、id_rsa.pub两个文件。这两个文件含有秘钥信息。
参考命令:ssh-keygen
5、秘钥文件id_rsa.pub拷贝到.ssh目录下的authorized_keys文件夹。参考命令:cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
6、在A机上运行ssh localhost,免密码登录自己。参考命令:ssh localhost
7、在B机hadoop用户的home目录下也建立.ssh文件夹。
8、把A机的秘钥文件拷贝到B机的.ssh文件夹中,将A机的密码传给B机。参考命令:在A机上运行 scp ~/.ssh/authorized_keys hadoop@datanode:~/.ssh/
9、在A机上尝试免密码登录B机,如果不需要输入密码就 登录,则表示成功。参考命令:在A机上运行 ssh datanode
10、A机到B机的免密码登录已经完成,但不意味着B机到A机的可以免密码登录。如果需要B机到A机,需要在B机上重复1-9步骤。在hadoop集群中,如果集群规模不大,可以把所有的namenode与dataNode做双向SSH免密码登录。hadoop文档上说,只需要namenode与dataNode单向免密码登录(即主机往从机可以免密码登录),但实践情况来看,单向通会有各种各样麻烦的问题。