想用三台ECS云主机搭建Hadoop集群,准备工作有使三台机器实现免密登录
三台机器我分别命名为
master slave1 slave2
1.编辑主机映射
vim /etc/hosts
将三台机器的IP地址写入:
000.000.000.000 master
000.000.000.000 slave1
000.000.000.000 slave2
2.SSH本机无密码登录
ECS 的centos系统是默认安装了SSH的,如果没有安装,则可以执行
yum install openssh-service-y
来安装
安装后,在终端输入命令
ssh localhost
这是登陆本机的命令,这时在root路径下会有一个 .ssh 的隐藏文件夹
退出刚才的 ssh localhost 登录
exit
进入到 /root 下后
ls -al
可查询到所有隐藏文件,进入.ssh文件夹,可以看到known_hosts的文件
然后输入命令
ssh-keygen -t rse # 我现在也不懂什么意思
会有提示,一直点击回车即可
此时文件夹会有四个文件 (不要在意那个slave2)
执行
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
即加入授权
此时 ssh localhost 已经不需要密码登陆本机了。
3.互相无密码登录
通过远程复制命令scp将各个节点的公钥追加到其他节点中的authorized_keys 文件中
以 master 为例,把 master 的 id_rsa.pub 文件复制到其他节点,并命名问 id_rsa.pub.master
scp ~/.ssh/id_rsa.pub root@slave1:~/.ssh/id_rsa.pub.master
scp ~/.ssh/id_rsa.pub root@slave2:~/.ssh/id_rsa.pub.master
再到 slave1 和 slave2 终端中的 /root/.ssh 路径下,运行
cat ./id_rsa.pub.master >> ./authorized_keys
即写入公钥
master的文件夹下会有
此时
ssh slave1
ssh salve2
都可实现免密登录。