Ambari搭建Hadoop集群时为了实现集群之间的主机进行快速的联机,我们需要对集群的虚拟机进行免密登录配置。下面来说说具体步骤。
前提:3台虚拟机。
1.修改主机名
a)首先root权限下分别对3台虚拟机进行修改。修改的命令如下:
sudo hostnamectl set-hostname node1
我这里是把3台主机名分别修改为node1、node2、node3。
修改完成后可以用指令 hostname 查询当前主机名确认修改成功。
b)分别在3台虚拟机上编辑 /etc/hosts 文件,添加IP和主机名(每一台都要加这三行,别忘了加自己)
192.169.XX.XX node1
192.169.XX.XX node2
192.169.XX.XX node3
保存并退出(这里简单的指令就不贴出来了)。这里的目的是实现3台虚拟机之间的互联,并且缩短了它们在连接时解析主机名的时间。
2.生成密钥
首先分别在各节点执行指令: ssh-keygen ,然后一直按回车键直到结束。此时你可以发现在 /root/.ssh/ 文件夹下生成了id_rsa(私钥) 、 id_rsa.pub (公钥),这是生成的秘钥对。
3.公钥分享
把自己的公钥发送给其它节点,包括自己。指令如下:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
在每一台虚拟机上执行上面三条命令后,你可以发现每一台虚拟机的 /root/.ssh/ 文件夹下又多了一个文件 authorized_key,这个文件类似于一个’白名单‘,只要这台虚拟机的白名单上有你的公钥信息,你就可以免密登录这台虚拟机。所以cat这个文件你可以看到,需要配置免密的3台虚拟机的公钥(包括自己的)都已经追加到这个文件中了。
到这里,ssh 免密登录的配置完成,你可以登录任意一台虚拟机,然后通过 ssh 命令任意登录到其他虚拟机上。