Hadoop使用ssh来通信。所以操作系统上必须安装ssh,本人采用的是Ubuntu 14,安装ssh后要保证sshd处于运行状态,如果没有安装ssh的话,
结点信息:(分布式集群架构:master为主节点,其余四个为从节点)
机器名 | IP | 作用 |
master | 122.205.135.53 | NameNode |
hadoop | 122.205.135.212 | DataNode |
hadoop1 | 122.205.135.213 | DataNode |
hadoop2 | 122.205.135.214 | DataNode |
hadoop3 | 122.205.135.215 | DataNode |
使用以下命令来安装:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
这里注意:如果提示安装不了,说明我们的apt-get需要更新下,更新的命令如下:
sudo apt-get update
安装完成后出现如下图:
在Hadoop启动以后,namenode是通过SSH(Secure
namenode生成密钥:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
执行上述命令后会出现如下图:
这时候会在~/.ssh/目录下生成
如果slave结点的~/.ssh/authorized_keys这个文件不存在,可以直接将~/.ssh/id_dsa.pub文件复制过去并重命名为authorized_keys:
$ scp ~/.ssh/id_dsa.pub hadoop@122.205.135.212:~/.ssh/authorized_keys
这时,我们在122.205.135.212这个slave的机器中登陆进去看下,这个文件是否复制过去了,命令如下:
cd ~/ssh
ls
也可以先将master结点的~/.ssh/id_dsa.pub文件复制到slave结点的~/.ssh/目录下,例如:
$ scp ~/.ssh/id_dsa.pub hadoop@122.205.135.212:~/.ssh
或用
$ scp ~/.ssh/id_dsa.pub hadoop@hadoop:~/.ssh
然后在slave结点上执行下面的命令:
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
最后,我们验证是否可以无密码登陆:在master结点上使用ssh连接slave结点,例如:
$ ssh hadoop@hadoop
如果未提示输入密码直接登录,则表明设置成功。