基于CentOS7系统
新建用户
1、使用“su-”命令切换到root用户,然后执行命令:adduser zonkidd
2、执行以下命令,设置用户zonkidd的密码:passwd zonkidd
修改用户权限
1、 切换到root用户,然后修改sudoers:vi /etc/sudoers
2、在文本root ALL = (ALL)ALL的下方加入代码,使hadoop用户可以使用sudo命令:hadoop ALL=(ALL)
3、执行sudo命令默认五分钟后密码过期,下次使用需重新输入密码,若不想输入,改为:hadoop ALL=(ALL) NOPASSWD:ALL
关闭防火墙
1、执行以下命令关闭防火墙:sudo systemctl stop firewalld.service
2、禁止防火墙开机启动sudo systemctl disable firewalld.service
3、若需要查看防火墙是否已经关闭,可以执行以下命令,查看防火墙的状态sudo firewall-cmd --state
4、开启防火墙命令如下sudo systemctl start firewalld.service
设置固定IP (略去)
修改主机名
1、使用hadoop用户登录系统,输入命令,查看主机名:hostname
2、执行命令,设置主机名为centos01:sudo hostname centos01
3、永久修改主机名,需要修改/etc/hostname文件
配置集群各节点的SSH无密钥登录
无密钥登录原理
从A服务器无密钥登录到B服务器的具体流程如下:
1)在A服务器中生成密钥对,包括公钥和私钥。
2)将公钥复制到B服务器的授权文件(authorized_keys)中
3)A服务器将访问数据用私钥加密,然后发送给B服务器
4)B服务器接收到数据以后,到授权文件中查找A服务器的公钥,并使用该公钥将数据解密
5)B服务器将需要返回的数据用A服务器的公钥加密后,返回给A服务器
6)A服务器接收到数据后,用私钥将其解密总结来说,判定是否允许无密钥登录,关键在于登录节点的密钥信息是否存在于被登录节点的授权文件中,如果存在,则允许登录。
无密钥登录步骤
具体的配置方式有两种:手动复制和命令复制
1)手动复制方式
1、将各节点的公钥加入到同一个授权文件中
a、 在centos01节点中,生成密钥文件,并将公钥信息加入到授权文件中,命令如下:
cd ~/.ssh/ #若没有该目录,先执行一次ssh localhost命令ssh-keygen -t rsa #生成密钥文件,会有提示输入加密信息,都按回车键即可cat ./id_rsa.pub >> ./authorized_keys #将密钥内容加入到授权文件中
b、在centos02节点中,生成密钥文件,并将公钥文件远程复制到centos01节点的相同目录,且重命名为id_rsa.pub.centos02,命令如下:
cd ~/.ssh/ #若没有该目录,先执行一次ssh localhost命令ssh-keygen -t rsa #生成密钥文件,会有提示输入加密信息,都按回车键即可scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos02 #远程复制
c、在centos03节点中,执行与centos02相同的操作,命令如下:
cd ~/.ssh/ #若没有该目录,先执行一次ssh localhost命令ssh-keygen -t rsa #生成密钥文件,会有提示输入加密信息,都按回车键即可scp ~/.ssh/id_rsa.pub hadoop@centos01:~/.ssh/id_rsa.pub.centos03 #远程复制
d、回到centos01节点,将centos02和centos03节点的密钥文件信息都加入到授权文件中,命令如下:
cat ./id_rsa.pub.centos02 >> ./authorized_keys #将centos02的密钥加入到授权文件cat ./id_rsa.pub.centos03 >> ./authorized_keys #将centos03的密钥加入到授权文件
2、复制授权文件到各节点
将centos01节点中的授权文件远程复制到其他节点的相同目录,命令如下:
scp ~/.ssh/authorized_keys hadoop@centos02:~/.ssh/scp ~/.ssh/authorized_keys hadoop@centos03:~/.ssh/
3、测试无密钥登录
使用ssh命令测试从一个节点无密钥登录到另一个节点,如:从centos01节点无密钥登录到centos02节点
ssh centos02
如果登录失败,可能是授权文件authorized_key的权限分配问题,命令如下:
chmod 700 ~/.ssh #只有拥有者有读、写权限chmod 600 ~/.ssh/authorized_keys #只有拥有者有读、写、执行权限
2)命令复制方式
ssh-copy-id命令可以把本地主机的公钥复制并追加到远程主机的authorized_keys文件中,该命令也会给远程主机的用户主目录(home)、~/.ssh目录和~/.ssh/authorized_keys设置合适的权限。
1、分别在三个节点执行以下命令,生成密钥文件
cd ~/.ssh/ #若没有该目录,请先执行一次ssh localhost命令ssh-keygen -t rsa #生成密钥文件,会有提示输入加密信息,都按回车即可
2、分别在三个节点中执行以下命令,将公钥信息复制并追加到对方节点的授权文件authorized_keys中:
ssh-copy-id centos01ssh-copy-id centos02ssh-copy-id centos03
命令执行过程中需要输入当前用户的密码
3、测试ssh无密钥登录