在配置hadoop集群的时候,需要在master主机和slave主机之间进行无密钥通信,我的两个机器上的用户名都是hadoop,通信是在两台机器的hadoop用户之间通信,而不是root用户。

先查看在两台机器上/home/hadoop下有没有.ssh文件夹,这是一个隐藏文件夹,用命令ls -a查看,如果没有,需要mkdir -p .ssh新建

分别在两台机器上的hadoop用户下输入命令ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa     这个命令会在.ssh文件夹下生成两个文件,id_dsa和id_dsa.pub,分别是一个私钥和一个公钥

输入命令cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys把公钥加到用于认证的公钥文件中,注意这其中.ssh文件夹和authorized_keys文件的权限都需要是可执行才能修改成功,用命令

chmod -fR 700 .ssh和chmod -fR 700 authorized_keys

将master主机上的authorized_keys文件复制到slave主机上:scp ~/.ssh/authorized_keys hadoop@slave:/home/hadoop/.ssh/           但是要注意,这里面复制到slave主机上时本来是要和hadoop用户交互,但是第一次需要提供hadoop的密码,而你可能怎么输入hadoop的密码都无法连接,这时,就需要用root用户通信:scp ~/.ssh/authorized_keys root@slave:/home/hadoop/.ssh/记得要改权限

但是在这之前,你一点要给slave机器设置好主机名slave,否则上述命令不认slave主机,在两个机器的/home/hadoop/hadoop安装目录/conf下分别有一个masters和slaves文件

conf/masters:

master

conf/slaves:

slave

在这之前要分别在/etc/sysconfig/network和 /etc/hosts文件以root身份修改主机名

然后ssh -version查看ssh是否安装成功

ssh -localhost查看是否能与本机通信

在master上ssh slave进行验证

posted on 2012-01-06 19:59  shengxinge  阅读(905)  评论(0编辑  收藏  举报