1.1.0 rpm + CentOS 6.3 64 + JDK7 搭建全分布式集群的方(2)

(CentOS 6.3默认已经安装了openssh和rsync)

2.2 配置Master无密码登录所有Salve

1)SSH无密码原理

Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在          Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slave的authorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master的公钥,然后用这个公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

以下操作,在  namenode1上面执行

1. 创建 ssh 密钥,就是不用密码登陆 目标主机 ,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub  >>~/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)

2. 密钥生成完成以后,追加namenode的公钥到其他2台 datanode 上面,使得 namenode能访问其它 datanode

cat ~/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat >>~/.ssh/authorized_keys"

cat ~/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat >>~/.ssh/authorized_keys"

3.修改SSH配置文件,启用RSA认证

vim /etc/ssh/sshd_config

authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

设置完之后记得重启SSH服务,才能使刚才设置有效。

service sshd restart

3. 验证ssh 不要密码登陆是否成功

ssh  namenode1

ssh  datanode1

ssh  datanode2

如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 ~/.ssh/authorized_keys

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/350177531b1950163e0a0e4289f4705c.html