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

Linux:实现Hadoop集群Master无密码登录(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

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

ssh 服务操作命令:

Linux:实现Hadoop集群Master无密码登录(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

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

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

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

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

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就不会在提示了。

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

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

统计添加如下host列表:

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

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

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

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

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

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

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

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

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

#设置authorized_keys权限
$ chmod 600 authorized_keys
#设置.ssh目录权限
$ chmod 700 -R .ssh

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

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

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

这里会提示输入密码,输入hadoop账号密码就可以了。
8)测试:ssh node1、ssh node2和ssh node3(第一次需要输入yes)

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

如果不需要输入密码,就表示配置成功,否则配置失败。

参考资料:

ssh-keygen 的 详解              :http://blog.csdn.net/wh_19910525/article/details/7433164

Hadoop集群配置(最全面总结):http://blog.csdn.net/hguisu/article/details/7237395

上一篇:JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏


下一篇:JAVA监听器原理