一、引言
当我们启动Hadoop的时候,每启动一个节点就需要我们输入一次密码,但如果有很多台机器一起在跑,可能会多达几百几千个节点,很明显如果在生产环境中,这种操作绝对是不可取的。这个时候就需要我们对Hadoop进行SSH免密登录配置。
二、原理
Hadoop在启动节点的时候,其实都是系统内部在进行SSH登录,而每次进行SSH登录,就会需要我们用密码进行授权。这样解决办法就很简单了,我们只需要把SSH的公钥复制到授权列表即可,这样以后每次需要密码进行登录的时候,系统内部会自动到授权列表里面找公钥,自动将公钥解密之后进行登录。
三、配置步骤
我使用的操作系统是Centos,Ubuntu下的配置跟Centos几乎大同小异,而我这里采用的是伪分布式,暂时只用一台机器进行演示,多台机器跟一台机器的配置方法完全相同。一台机器其实就是自己登陆自己,把自己的公钥配置到自己的授权列表。
1.进入到 .ssh目录
cd .ssh
还没生成公钥和私钥前只有一个known_hosts文件。
2.生成公钥和私钥
ssh-keygen -t rsa
指定特定的加密算法进行生成,其实默认就是 -t rsa
这时可以看到多出了两个文件 id_rsa(密钥),id_rsa.pub(公钥)
3.新建授权列表文件
touch authorized_keys
4.更改授权列表文件的权限
chmod 600 authorized_keys
5.将公钥中的值加入到授权列表
cat id_rsa.pub >> authorized_keys
6.重新启动Hadoop查看是否配置成功
当Linux不再提示输入密码,则说明我们已经配置成功。