最近准备搭建hadoop集群,把想整个经过记录一下。首先安装了4台虚拟机作为服务器。操作系统是CentOS 6.5. 今天先解决,ssh免密访问。由于hadoop要设置一个master namenode一个secondary namenode,还有两个datanode。他们之间如果需要访问,特别是namenode需要访问datanode需要通过ssh,如果每次都要输入密码是有点麻烦的所以先把免密访问的问题解决再说。
准备条件
四个服务器实现互相通过ssh无密码访问。
node01:192.168.146.101
node01:192.168.146.102
node01:192.168.146.103
node01:192.168.146.104
修改/etc/hosts 文件
vi /etc/hosts
把如下内容放到里面
192.168.146.101 node01
192.168.146.102 node02
192.168.146.103 node03
192.168.146.104 node04
设置SSH 无密码登录
保证安装了ssh命令
默认在 ~/.ssh目录生成两个文件:
id_rsa :私钥
id_rsa.pub :公钥
这里.ssh目录会自动生成不需要手动创建
node01操作
ssh-keygen -t rsa
以上操作依次在node01,node02,node03,node04机器上操作然后,分别在每台机器(node02,node03,node04)上copy公钥到node01上。我这里使用的root 用户,所以ssh的目录在/root/.ssh 下面,如果你用的其他的用户应该是在/home/你的用户/.ssh下面。
备注:192.168.146.101 是node01的ip
node02 操作
ssh-keygen -t rsa
cd /root/.ssh
scp id_rsa.pub root@192.168.146.101:/root/.ssh/id_rsa.pub.node02
node03 操作
ssh-keygen -t rsa
cd /root/.ssh
scp id_rsa.pub root@192.168.146.101:/root/.ssh/id_rsa.pub.node03
node04 操作
ssh-keygen -t rsa
cd /root/.ssh
scp id_rsa.pub root@192.168.146.101:/root/.ssh/id_rsa.pub.node04
然后回到node01,将自己的公钥和其他三台服务器的公钥全部都放到 authorized_keys 文件中。
node01操作
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.node02 >> authorized_keys
cat id_rsa.pub.node03 >> authorized_keys
cat id_rsa.pub.node04 >> authorized_keys
最后将生成好的authrozied_keys文件copy到node02,node03,node04
node01操作
scp authorized_keys root@192.168.146.102:/root/.ssh/authorized_keys
scp authorized_keys root@192.168.146.103:/root/.ssh/authorized_keys
scp authorized_keys root@192.168.146.104:/root/.ssh/authorized_keys
这里需要注意几点文件夹和文件的权限
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
然后就可以直接通过命令访问其他几个节点了。
ssh node01
ssh node02
ssh node03
ssh node04