Ubuntu 12.10 +Hadoop 1.2.1版本集群配置(2)

2)配置SSH无密码访问


Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。
以本文中的三台机器为例,现在node1是主节点,他须要连接node2和node3。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。

( 说明:hadoop@hadoop~]$ssh-keygen  -t  rsa
这个命令将为hadoop上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接复制过去就行.)

3)首先设置namenode的ssh为无需密码自动登陆


切换到hadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)

su hadoop
cd /home/hadoop
ssh-keygen -t rsa

最后一个命令输入完成以后一直按回车
完成后会在/home/hadoop/目录下产生完全隐藏的文件夹.ssh

进入.ssh文件夹,然后将id_rsa.pub复制到authorized_keys文件,命令如下

cd .ssh # 进入.ssh目录
cp id_rsa.pub authorized_keys #生成authorized_keys文件

ssh localhost  #测试无密码登陆,第一可能需要密码
ssh node1 #同上一个命令一样

node1无密码登陆的效果:

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

4)配置node1无密码访问node2和node3

首先以node2为例,node3参照node2的方法

在node2中执行以下命令:

su hadoop
cd /home/hadoop
ssh-keygen -t rsa #生成公钥和私钥,一路回车

在node1中进入/home/hadoop/.ssh目录中,复制authorized_keys到node2的.ssh文件夹中

执行以下命令

scp authorized_keys hadoop@node2:/home/hadoop/.ssh #复制authorized_keys到node2的.ssh目录中去

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

修改已经传输到node2的authorized_keys的许可权限,需要root权限

chmod 644 authorized_keys

ssh node2 #测试无密码访问node2

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

node3同上面的执行步骤

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/e7148749ad867cbbf21ff762e0a124f2.html