MapReduce and MachineLearning——笔记二(配置三个结点SSH无密码登录)
这一段参考了网上一些其他作者的思路,主要查看了这篇帖子:http://50059.blog.51cto.com/40059/290460。下面说一下我的具体操作过程。
1.修改三个节点的host文件(三个节点相同):
sudo vi /etc/hosts
加入以下三行:
192.168.1.90 master
192.168.1.91 slave1
192.168.1.92 slave2
2.在三个节点的hadoop用户目录下生成公钥/私钥对:
ssh-keygen -t rsa
每个节点都会生成.ssh目录(用ls -al可以查看到隐藏文件和文件属性)
cd .ssh
ls -al
可以看到下列三个文件(分别代表私钥、公钥、已知主机):
id_rsa id_rsa.pub known_hosts
3.在每个节点的~/.ssh目录下新建authorized_keys文件:
touch authorized_keys
4.将每个节点的公钥都是用scp命令(安全拷贝)传送到另外两个节点:
master结点的命令为:
scp -r id_rsa.pub hadoop@slave1:~/.ssh/pubkey_master
scp -r id_rsa.pub hadoop@slave2:~/.ssh/pubkey_master
slave1结点的命令为:
scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slave1
scp -r id_rsa.pub hadoop@slave2:~/.ssh/pubkey_slave1
slave2结点的命令为:
scp -r id_rsa.pub hadoop@master:~/.ssh/pubkey_slave2
scp -r id_rsa.pub hadoop@slave1:~/.ssh/pubkey_slave2
5.在每个结点的~/.ssh目录下,将另外两个节点传过来的公钥文件的内容附加到本目录下的authorized_keys文件中,并将authorized_keys文件的权限改为600:
master结点命令为:
cat pubkey_slave1>>authorized_keys
cat pubkey_slave2>>authorized_keys
chmod 600 authorized_keys
slave1结点命令为:
cat pubkey_master>>authorized_keys
cat pubkey_slave2>>authorized_keys
chmod 600 authorized_keys
slave2结点命令为:
cat pubkey_master>>authorized_keys
cat pubkey_slave1>>authorized_keys
chmod 600 authorized_keys
至此SSH配置完毕,三个结点可以实现使用ssh不需要密码的相互访问。可以用以下代码测试:
在master上:ssh hadoop@slave1(ssh 用户名@主机名)