项目需要搭建大数据hadoop完全分布式环境,涉及到ssh配置无密码登录,于是利用现有主机生产环境,完全记录下详细配置步骤。
本环境采用3台主机,IP、主机名、用户名规划如图所示。
hadoop官网给出了hadoop的安装说明,但是对于ssh的配置只是简单描述了一下,没有给出详细的操作步骤,对于初学者来说不是很好理解。
Hadoop完全分布式安装,原文链接如下。
Apache Hadoop 2.10.1 – Hadoop Cluster Setup
https://hadoop.apache.org/docs/r2.10.1/hadoop-project-dist/hadoop-common/ClusterSetup.html
其他文章有采用cat命令写文件的方式,但我觉得增加了理解难度。在这里我采用了ssh-copy-id命令的方式,简单、高效。(不要问我怎么想到的ssh-copy-id命令)
ssh-copy-id命令的使用详见下面链接,如图所示。
Ssh-copy-id for copying SSH keys to servers
https://www.ssh.com/ssh/copy-id
按照文章说明,详细ssh配置无密码登录步骤如下:
1、修改/etc/hostname和/etc/hosts,如图所示:
2、以hadoop用户分别登录名主机,在每台主机都分别执行下面的命令,目的是为了生成.ssh目录。
ssh localhost
ssh node20
ssh node21
ssh node22
以从node22主机ssh到node21主机为例,第一次需要输入yes及密码,第二次只需要输入密码,如图所示。
3、生成密钥
采用最简单命令ssh-keygen,不需要任何参数,分别在每台主机执行,一路按回车,如图所示。
4、发布密钥
同样,采用最简命令ssh-copy-id,不需要任何参数,分别在每台主机执行下面三条命令,过程中需要输入密码,如图所示。
ssh-copy-id hadoop@node20
ssh-copy-id hadoop@node21
ssh-copy-id hadoop@node22
5、验证
从node20主机ssh node21主机,不需要输入密码了。
怎么ssh node22需要输入密码啊?因为是从node21主机ssh node22的,留给读者自己思考。