集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
rpm -qa | grep ssh
如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装:
接着执行如下命令测试一下 SSH 是否可用:
ssh localhost
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了:
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先输入 exit 退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # **若没有该目录,请先执行一次ssh localhost**
ssh-keygen -t rsa # 会有提示,**都按回车**就可以
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限(必须修改权限为600)
将公钥拷贝到要免登陆的机器上
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
接着在 Slave1 节点上,将 ssh 公匙加入授权:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys //加入授权才可以
接着在其他节点上执行相同的操作即可。
到此就可以了