1.创建3台虚拟机并装好系统,这里使用64位CentOS.
2.Ping测试[确保两两能ping通]: [ping xxx.xxx.xxx.xxx]
3.安装SSH:[yum install ssh rsync]
4.按下图重命名主机、修改host文件:
master:
slave1:
slave2:
具体虚拟机的IP地址根据实际情况配置。
5.重启每台机器,检查ip和host配置是否正常,然后使用主机名来进行ping测试:
6.创建hadoop的用户和用户组[每台机器上执行]
sudo groupadd Hadoop
sudo useradd -s /bin/bash -d /home/hadooper -m hadooper -g hadoop -G root
passwd hadooper [密码设置成和用户名相同便于记忆]
7.SSH无验证双向登陆配置
如master上的执行截图:
上述操作生成一对密钥[ssh-keygen -t rsa -P ''],并将公钥保存至文件[cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys]
授权[chmod 600 ~/.ssh/authorized_keys]。
切换至root用户[su root]
取消被注释的公钥字段[vi /etc/ssh/sshd_config]:
文件打开后如下:
将红圈中的三行代码前面的#号去掉,如下:
保存并退出[按Esc后输入 :wq! 命令]
切换到root用户,重启一下SSHD服务:service sshd restart
至此SSH配置完毕,下面可以尝试自身无验证的SSH登陆(注意切换到hadooper用户):
可以看到无论是使用localhost还是IP或者主机名master都是可以无验证登陆的。首次登陆会提示主机无法识别,后面再次使用ssh登陆就不会有提示了(其实可以看到已经在/home/hadooper/.ssh/下生成了一个known_hosts文件)。
同样在slave1和slave2上做类似的配置和验证。
8.接下来开始配置不同主机间的无验证SSH登录:
将master的公钥文件复制到slave1节点的hadooper用户上:[scp ~/.ssh/id_rsa.pub hadooper@192.168.42.133:~/]
拷贝完成之后,去Slave1机上进行,公钥追加授权文件,并赋权限:
然后切换root用户,进行sshd配置,并重启ssh服务:
(即:切换用户、编辑sshd_config文件vi /etc/ssh/sshd_config 重启SSHD服务)
至此,salve1配置完毕,可以去master上无验证ssh登陆salve1了
在master上测试无验证SSH登陆slave1(注意切换到hadooper用户)
重复步骤8,完成master到slave2的无验证SSH登陆。
即:
在master上scp传送id_rsa.pub到132机器[scp ~/.ssh/id_rsa.pub hadooper@192.168.42.132:~/]
去Slave2机上进行,公钥追加授权文件,并赋权限
切换root用户,进行sshd配置,并重启ssh服务。
做完后验证一下master是否可以无验证SSH登陆slave2.
9.接下来反过来,让salve1和slave2可以无验证登陆master
需要分别将slave1的公钥和slave2的公钥scp传输到master,在master上导入,重启sshd服务即可。
去slave1,传输公钥文件到master的/home/hadooper/目录(即hadooper登陆后的~目录)
去master导入这个公钥:
(即在master上追加salve1的公钥到授权文件authorized_keys中,重启SSHD服务(注意使用root用户否则权限不足,囧))
测试一下,slave1可以无验证SSH登陆到master:(注意切换到hadooper用户)
验证成功,下面差最后一步,slave2到master的无验证SSH登陆。
由于已经将salve1的公钥id_rsa.pub文件放在了master的/home/hadooper/下面(即hadooper用户的~目录),接下来要把slave2的id_rsa.pub放到这个位置,所以先删掉slave1的这个文件(在master上,切换到hadooper用户,执行 rm /home/hadooper/id_rsa.pub 即可)
去slave2传输公钥到master,然后在master上执行导入操作并重启sshd服务即可。方法同步骤12。
10.最后做一次“总体验证”即可:
master上自身无验证SSH登陆、master到slave1、master到slave2:
slave1上自身无验证SSH登陆+slave1到master:
slave2上自身无验证SSH登陆+slave2到master:
至此,安装Hadoop框架的基础环境配置完毕,后面记录安装Hadoop过程。