Linux:实现Hadoop集群Master无密码登录(SSH)各个子节点

  以下所介绍的安装方式都是在线安装方式,如果你需要连网请参考: Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案

  环境:

  OS:Linux Ubuntu14.04 Server X64;

  服务器列表:

  192.168.1.200 master

  192.168.1.201 node1

  192.168.1.202 node2

  192.168.1.203 node3

  安装SSH服务

  测试是否安装了SSH:

  sudo ps -e | grep ssh

物联网

  如果返回包含sshd的进程,就表示已经安装过openssh-server服务,否则未安装。

  安装openssh-server服务:

  sudo apt-get install openssh-server

  如果提示安装失败,请执行更新命令:

  sudo apt-get update

  不过本人在更新过程中遇到问题,执行安装ssh也出现问题:Package openssh-server is not available, but is referred to by another package.

  解决方案请参考: Linux:安装OpenSSH-Server E:Package openssh-server has no installation candidate

物联网

  ssh 服务操作命令:

物联网

  备注:

  为了实现各个子节点都可以使用putty连接,把Master,node1,node2,node3都安装了ssh服务。

  而事实上,要是master可以无密码登录各个子节点,其他子节点(node1,node2,node3)也必须安装ssh服务。

  为Master机器配置SSH无密码登录

  1)设置master的ssh为无需密码自动登录

  切换到hadoop账户下(保证用户hadoop可以无需密码登录,应为我们后边安装hadoop属于的账户是hadoop账户)

  su - hadoop

  cd /home/hadoop

  ssh-keygen -t rsa

  然后会遇到三次让输入的时候,第一次直接回车,第二次和第三次分别是:让输入密码和确认密码,我们这里是要实现无密码登录。所以以上三次输入都直接回车,不设置什么密码,也就是空密码登录。

物联网

  2)之后再/home/hadoop/下会产生一个.ssh的文件夹;ls查看:

物联网

  3)将公钥追加到authorized_keys文件中

  cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

  4)master本机使用ssh localhost测试:

  第一次会提示是否“Are you sure you want to continue connecting(yes/no)?”,直接输入yes,下一次输入ssh localhost就不会在提示了。

物联网

  5)修改各个节点(master,node1,node2,node3)的hosts:

  统计添加如下host列表:

物联网

  目的,为后边实现ssh连接使用,不用输入ip,使用机器名就可以。

  6)为了确保node1可以无需密码自动登录到node1,node2和node3,现在node1,node2和node3上生成authorized_keys。

  (依次为三个子节点node1,node2,node3)执行命令:

  su hadoop

  cd /home/hadoop

  ssh-keygen -t rsa

物联网

  一路回车,和master安装方式一样。

  7)复制master上的authorized_keys到三个子节点上(node1,node2,node3):

  首先,为了避免权限问题,我们可以事先设置文件和目录权限:

  #设置authorized_keys权限

  $ chmod 600 authorized_keys

  #设置.ssh目录权限

  $ chmod 700 -R .ssh

物联网

  然后拷贝master上的authorized_keys到三个子节点上(node1,node2,node3)

物联网