上一章节介绍了配置master、node1、node2的主机名以及IP地址之间的映射,可以通过ssh ip地址并输入密码来登录。
今天这一章节介绍创建Hadoop用户,并且配置ssh免密码登录,让后续我们的master节点可以通过ssh无须输入密码来进行登录。
1、创建Hadoop用户。
sudo groupadd hadoop #建立一个hadoop的组
sudo useradd -s /bin/bash -d /home/hadoop -m hadoop -g hadoop #添加一个hadoop的用户, 并且在home下面创建hadoop的用户目录, 并添加到hadoop组里
sudo passwd hadoop #为hadoop设置密码
以上命令需要在master、node1、node2上执行一遍,每台节点都必须创建这个hadoop的用户。
2.配置ssh免密码登录
使用root用户
vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并重启sshd执行命令:systemctl restart sshd.service
在master节点切换到hadoop用户: su hadoop
执行命令:ssh-keygen -t rsa
然后cd /home/hadoop/.ssh目录下,会发现有两个文件:id_rsa id_rsa.pub
接着执行:cat id_rsa.pub>> authorized_keys
然后执行:ssh hadoop@master
第一次登录需要输入密码,以后就不需要输入密码了。
这样就可以通过ssh使用hadoop用户登录master节点。
重复以上操作再node1和noode2节点,注意要使用hadoop用户来创建ssh免登录密码。
然后使用hadoop用户进入到node1节点
cd /home/hadoop/.ssh
接着执行下面的命令:ssh hadoop@master cat ~/.ssh/id_rsa.pub>> authorized_keys
将生成的密钥写入authorized_keys文件
这样从master登录到node1就可以不用密码了。
重复上面步骤在node1节点
现在将node1和node2机器 .ssh/ 文件夹权限改为700,authorized_keys文件权限改为600(or 644)
chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/authorized_keys
最后回到master机器,使用ssh hadoop@node1登录node1节点就不需要密码了,同样ssh hadoop@node2也不需要密码了
关闭防火墙:
能使用ssh登录之后,还需要做关闭防火墙的操作。
执行命令查看防火墙状态:systemctl status firewalld.service
如果是开启状态则执行以下命令进行关闭并禁止。
注:如果用于生产环境,直接关闭防火墙是存在安全隐患的,我们可以通过配置防火墙的过滤规则,即将hadoop需要监听的那些端口配置到防火墙接受规则中。
systemctl stop firewalld.service
systemctl disable firewalld.service
同时,也需要关闭SELinux,可修改 /etc/selinux/config 文件,将其中的 SELINUX=enforcing 改为 SELINUX=disabled即可。