? ? ? 由于学习hadoop,集群之间需要SSH无密码登录,那么,在安装hadoop之前,就必须得配置好机器之间的无密码的SSH登录。如何配置无密码SSH登录呢?
? ? ? 我们以在A机器上无密码登录到B机器上为例:
? ? ?1、切换到需要用来登录的用户,如,我们用A机器名为hadoop的用户登录B机器的hadoop用户下。
? ? ? ?su hadoop 切换到hadoop 用户。
? ? ?2、给两台机器分别改主机名:这里 A:master B:slave1:
? ? ? ? ?修改这个文件etc/sysconfig/network这个文件里的主机名.
? ? ? ? ?NETWORKING=yes
? ? ? ? ?HOSTNAME=主机名
? ? ? ? ?记得重启!!!
? ? ? ? ?并修改hosts映射:
? ? ? ? vi /etc/hosts
? ? ? ??
192.168.1.60 master 192.168.1.61 slave1 192.168.1.62 slave2
? ? 写上对应的IP 和主机名
? ? ?2、A机器:生成rsa公钥:
? ? ?ssh-keygen -t rsa -f ~/.ssh/id_rsa ? //-t 加密类型 -f 密钥文件存放路径,如果如下:
? ??
[hadoop@master ~]$ ssh-keygen -t rsa -f ~/.ssh/id_rsa Generating public/private rsa key pair. Created directory '/home/hadoop/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hadoop/.ssh/id_rsa. Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub. The key fingerprint is: e9:ab:f0:48:af:2d:d4:98:59:68:bc:3d:52:3e:94:bc hadoop@master The key's randomart image is: +--[ RSA 2048]----+ | | | | | . o . | | + * . | | . % .S | | B E. | | .o. o. | | ..* . | | oo=.. | +-----------------+ [hadoop@master ~]$ cd .ssh
? ?同样在B机器上执行第二部操作。
?
? ? 3、将A机器 /home/hadoop/.ssh/下的 id_rsa.pub 传输到 B机器的?/home/hadoop/.ssh/ 并重命名为master
? ? ?
[hadoop@master .ssh]$ scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/master hadoop@slave1's password: id_rsa.pub 100% 395 0.4KB/s 00:00
? ? ?4、切换到B机器,使用hadoop用户登录,将传过来的master 追加到名为??authorized_keys ?的文件,使用?
? ? ? cat master ?>> authorized_keys ? //不存在,则会自动创建
? ? 5、修改权限,将authorized_keys、id_rsa.pub的权限修改为644
? ? ? ?
[hadoop@slave1 .ssh]$ chmod 644 id_rsa.pub [hadoop@slave1 .ssh]$ chmod 644 authorized_keys
?
? ? 此时,SSH免密码登录配置成功
? ? 测试,此时,在A机器下使用 ?
? ??
[hadoop@master .ssh]$ ssh slave1 Last login: Mon Mar 4 22:23:06 2013 from master [hadoop@slave1 ~]$
? ? 没提示输入密码,配置成功
?