任务描述
Hadoop分布式集群是由多个节点组成,各节点之间需要通过网络访问,如果每次都需要输入密码,非常不方便,所以可以考虑设置各节点之间免密码连接。
任务的内容为在各个节点配置SSH,生成密钥对,然后再将公钥分发到所有节点,这样就可以实现各节点之间的免密码连通了。
任务指导
Hadoop集群中Master类型的节点需要远程管理Slaver类型的节点,所以需要配置集群各节点能够尽心免密码登陆, 在Hadoop集群中通过SSH服务对集群中的节点进行管理。
首先要确定Linux已经安装了SSH服务,在各节点生成相应的密钥将生成的公钥拷贝到各个节点。
任务实现
如果你的Linux没有安装SSH,请首先安装SSH。
- Ubuntu下安装SSH地址为sudo apt-get install openssh-server;
- Fedora下安装SSH地址为yum install openssh-server。
总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器。
1. 网络环境中 CentOS7的 地址和主机名配置
网络环境需要3台CentOS7 64位机器,IP地址和主机名如下:
192.168.1.245 master1
192.168.1.246 slave1
192.168.1.247 slave2
2. 配置SSH免密码
SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,每台服务器都生成公钥,再合并到authorized_keys。
输入命令【ssh-keygen -t rsa】生成密钥对,一直回车,都不输入密码,在/root目录会生成 .ssh 文件夹,每台服务器都要设置。
合并公钥到authorized_keys文件,在【master1】服务器,进入/root/.ssh目录,使用SSH命令合并,如下所示:
# ssh root@master1 cat /root/.ssh/id_rsa.pub >> authorized_keys
# ssh root@slave1 cat /root/.ssh/id_rsa.pub >> authorized_keys
# ssh root@slave2 cat /root/.ssh/id_rsa.pub >> authorized_keys
将master1服务器上/root/.ssh/目录下的authorized_keys、known_hosts复制到其它服务器的/root/.ssh目录中,如使用【scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/】命令将authorized_keys文件拷贝到slave1服务器的/root/.ssh/目录下。
可以使用SSH命令连接其它节点。例如:ssh root@slave1 。
在第一次请求连接时需要输入一次密码,以后就不需要再输入密码了。使用【exit】命令退出SSH连接。