先假设有3个Linux虚拟机,分别命名为:master、slave1、slave2(方便区分)。并且都已经配置好了静态IP,设置好了hostname没有配置好的点击此处
IP地址与主机名映射,多个虚拟机相互映射
[root@master ~]# vi /etc/hosts
IP地址与主机名映射
先设置master机器
1 | [root@master ~]# vi /etc/hosts |
如图:
slave1、slave2同上
多个Linux虚拟机相互映射
先编辑master,将slave1、slave2中配置的映射填写到master机器中的hosts文件,后再将master机器hosts分别拷贝到slave1、slave2机器
1 | [root@master ~]# vi /etc/hosts |
配置结果如图:
配置slave1
1 | [root@slave1 ~]# vi /etc/hosts |
配置结果如图:
配置slave2
1 | [root@slave2 ~]# vi /etc/hosts |
配置结果如图:
禁用防火墙
1 | /etc/init.d/iptables stop ---关闭 |
或者
1 | service iptables stop ---关闭 |
master机器关闭如下:
slave1、slave2操作同上
多个虚拟机SSH免密码通信的配置
每台机器先生成ssh密钥
master机器,先切换了常用的用户Hadoop2,root账号平时不用;所以生成的SSH免密通信也是在hadoop2账号下
1 | [hadoop2@master ~]$ mkdir .ssh |
将id_rsa.pub的密钥拷贝到authorized_keys文件中;后续要做的内容也是将其他机器id_rsa.pub拷贝到authorized_keys授权密钥中,当每个机器中都相互存好了密钥,ssh登陆时也就无需输入密码了
注:有些虚拟机无法使用ssh命令,则需要安装openssh-clients插件
1 | [root@master ~]# yum -y install openssh-clients |
slave1、slave2机器同上
相互拷贝id_rsa.pub
相互拷贝id_rsa.pub确保每一台机器中authorized_keys都有各自密钥
先将slave1中的id_rsa拷贝到master中authorized_keys
1 | [hadoop2@slave1 .ssh]$ cat id_rsa.pub | ssh hadoop2@master 'cat >> ~/.ssh/authorized_keys' |
slave2机器需要如同slave1中同样的操作。此时master机器authorized_keys便有了所有机器的id_rsa.pub
或者(此方法的优点是简化了拷贝命令)
1 | 在每个机器中生成id_rsa.pub后,master、slave1、slave2 |
将master中的authorized_keys分发到其他机器
1 | [hadoop2@master .ssh]$ scp -r authorized_keys hadoop2@slave1:~/.ssh/ |
验证是否可以免密码通信
1 | [hadoop2@master .ssh]$ ssh slave1 -- ssh 加配置的主机名 |
注:连接成功后,如需退出通信,则输入exit