使用ssh实现无密码启动hdfs
如果一个集群都使用密码来登录,可想而知是一件十分害怕的事情,所以就很有必要使用ssh来实现无密码登录了
本机的免密码启动hdfs
- 检查本机
.ssh
文件中是否有authorized_keys
文件,没有则创建并且修改权限,修改权限,修改权限
123cd .sshtouch authorized_keyschmod 600 authorized_keys
- 产生密钥对,输入下面命令之后会提示三次,这三次什么提示都不要输入任何字符,
不要输入任何字符
..不要输入任何字符
1ssh-keygen -t rsa
使用ll
命令可以在文件夹中至少看到下面的信息123-rw-------. 1 hadoop hadoop 602 Nov 19 03:08 authorized_keys-rw-------. 1 hadoop hadoop 1675 Nov 19 03:30 id_rsa-rw-r--r--. 1 hadoop hadoop 394 Nov 19 03:30 id_rsa.pub
其中,id_rsa为私钥,id_rsa.pub为公钥。接下来要做的一步就是把id_rsa.pub添加到authorized_keys文件中1cat id_rsa.pub >> authorized_keys
- 启动hdfs,测试是否正确
集群实现免密码登录
准备工作
- 保证每台节点中的用户名相同(例如都为
spark
)。如果没有,则创建。不要直接使用 root 用户。请为集群单独创建用户。
将用户添加至 sudoer 列表
- 切换到 root 用户(
su -
)。 使用
visudo
命令,添加 spark 用户到 sudoer 列表。123# 在 root 用户之后添加(请根据实际情况赋予权限)root ALL=(ALL) ALLspark ALL=(ALL) ALL保存退出。
远程拷贝id_rsa.pub给所有主机
把刚刚生成的id_rsa.pub远程拷贝给所有主机,我们这里另外一台机器名spark01
1scp id_rsa.pub spark01:/home/hadoop/.ssh登录spark01,把id_rsa.pub添加进authorized_keys中
1cat id_rsa.pub >> authorized_keys