本博客并不属于技术博,主要记录楼主这个生手第一次实现ssh互联搭建hadoop的一堆麻烦事和解决方法:

现在先看一下建立ssh互信的方法(以ubuntu为例):

具体步骤有了,楼主谈一些细节问题(很多时候都是在学习linux)。

首先,我选择三台计算机,分别命名为node1,node2,node3系统分别为ubuntu14.04·13.1·14.04。在配置之前,要保证这三台计算机在一个局域网内,并且要能够连上网,所以最好设置成静态分配。以我的布局为例,同一交换机下,网关ip:192.168.137.1node 1~~3 的ip分别为:192.168.137.11  192.168.137.12  192.168.137.13对应的你需要在ubuntu的配置文件中进行一些设置:

(1). 在每一个节点下执行sudo /etc/network 然后gedit interfaces这个时候你的ubuntu一般是两行文字:

auto lo
iface lo inet loopback
(只指定了本地环路地址)

需要添加:

      autoeth0

       iface eth0 inet static

       address 192.168.137.11(node1为例)

       netmask 255.255.255.0

       gateway 192.168.137.1

 

 

保存退出重启。这个时候博主以为自己可以上网了,结果浏览器一脸黑线(server not found)解决方法如下(root)

       gedit /etc/resolv.conf

看到出了几行注释啥都没有,加两句:nameserver 192.168.137.1(网关)

                                                   nameserver 8.8.8.8(备用网关)

还没有完,这只是个临时修改,如果想下次继续,就保存退出接下来

cd /etc/resolvconf/resolv.conf.d/       gedit base

仍然加上nameserver 192.168.137.1(网关) nameserver 8.8.8.8(备用网关)

这个时候重启就ok~

       (2).既然我们在一个局域网内要建立互信,那我总得知道你叫啥,你的地址是啥吧,执行以下操作(root)

       gedit/etc/hosts

       在每个节点的该文件最下面加上:

       192168.137.11 node1

     192168.137.12 node2

192168.137.13 node3

 

保存退出

如果不写明你的邻居是谁,就会出现这个错误:

这里稍微提一下,如果一开始你的计算机名并不是nodex而是很长的字符串(确实很不利)如果想修改的话:

gedit /etc/hosts 127.0.1.1后面的主机名换成你想要的

gedit /etc/hostname  同样将主机名进行替换

ok现在我们可以开始建立ssh互联了,首先什么是ssh,ssh全称(security shell),属于应用层,主要为ftp·pop等保驾护航,对传输数据进行加密,而且可以替代telnet,在本次实践中我们使用openssh而不是ssh,而实现互信就意味着我们的节点之间可以免密码互访。Ssh更像是客户端,而sshd则更像是服务器端,这就像我们装了mysql一样,会有一个mysql的服务端。

  1. ps –e | grep sshd检测是否有该进程活跃;在这里默认你没有,在此之前,先把你的防火墙关了(ufw disable)。

  2. 尝试开启 /etc/init.d/sshd start,如果弹出sshd则成功,否则重启;

 

  1. 发现仍然没有该进程,则开始安装。博主的经历比较奇葩,一开始执行(root)apt-get install openssh-server提示信息:

    package openssh-serverhas no installation candiadate

    解决方法如下:

    apt-get update

     apt-get upgrade

     apt-get install openssh-server

    持续时间四十分钟左右。

如果你顺利安装了,那么看一下sshd启动没,一般ubuntu默认启动

仍然用上图所示命令查看,一旦sshd启动就可以干活了。

首先你的三个节点的用户名一定要一致,你如说第一张图中的test,密码最好也设置成一样的,如果你需要改用户名,建议在可视化图形界面下添加,博主直接gedit /etc/passwd把用户名替换了,随之而来的是一退出发现用户名变了输入原来密码却进不去,博主一下子脸黑了,遵照网上大神的说法在开机时长按shift选择advanced ubuntu进去选择recovery模式进去发现根本没治,只好重装系统(一切重新再来,悲催不愿多说)。

(1). 按照第一张图的教程(每个节点都要执行)

 

 

这段过程的意思是:

输入后,会提示创建.ssh/id_rsaid_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车。

(2). 第二步的意思是将公钥复制到被管理机器上面(只在node1上执行)

ssh node3 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

这一步可能会出错:

  1. 检查前面所述你的hosts中是否有你邻居的信息;

  2. 检查你们之间的网络(ping)

  3. 1真的很关键!!!!!!

(3). 第三步的意思是分发整合后的公钥文件(只在node1上执行)

scp ~/.ssh/authorized_keys node2:~/.ssh/

scp ~/.ssh/authorized_keys node3:~/.ssh/

scp主要用于把文件从远程(node2`node3)拷贝过来。

(4) 检验是否可以无密码互联:

Ssh互信建立完成!!!