大数据系列(3)——Hadoop集群完全分布式坏境搭建

  经过上面一系列流程,大家是不是发现通过虚拟机拷贝这种方式省去了好多额外的配置时间,比如:装操作系统、下载Hadoop安装包、搭建Java环境等。

  3、配置SSH无密码配置。

  先来解释下SSH的概念和用途;

  SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为 远程登录 会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括 HP-UX 、 Linux 、 AIX 、 Solaris 、 Digital UNIX 、Irix ,以及其他平台,都可运行SSH。

  上面就是SSH的官方含义了,摘自百度百科。

  下面,我来总结下SSH在Hadoop集群中的用途。

  所谓的SSH简单一句话就是: 同一用户无密码登录到各台机器 。 其实,就是所有的Hadoop集群中作为分布式的一个计算框架,需要对各个节点的服务进行操作,而操作的过程中需要统一由一个相同的用户进行操作,但是同一用户登录不同的服务器都需要密码或者密钥进行身份验证。为了避免这个验证过程就使用了统一的一种安全协议:SSH。

  其实,SSH的原理很简单,就是提前将统一用户的密码进行加密形成密钥进行分发,然后分发到各个服务器中,各个服务器对这个秘钥加入到当前的系统用户组中,这样这个用户登录的时候就不需要输入密码进行登录操作了。

  希望,我上面的讲解各位看官能看明白里面的含义。

  下面咱们来实际操作:

  首先进行sshd的配置文件的修改,去掉默认注释,开启SSH验证功能( 以root用户进行操作 )。

  vim /etc/ssh/sshd_config

  将上面的这三行数据的注释“#”去掉进行,保存。 这里记住了!所有的机器都要这么依次进行设置。

  简要的解释下上面三行数据的含义:1、第一个RSAAuthentication是指开启SSH验证,2、PubkeyAuthetication是指可以通过公钥进行验证,3、AuthorizedkeysFile则指的的是公钥存放的位置。

  记住,完成配置之后,重启该服务,脚本如下:

  /sbin/service sshd restart

  可以验证下,比如这里我这里直接SSH登录本机系统:

  ssh localhost

  这里可以看到,丫让我输入密码,所以说这里只是开启了SSH验证,但是没有生成密钥,进行设置。

  加工生成证书公私钥,分发到各个服务器( 以Hadoop用户操作 )。

  这个步骤就是上面我分析的过程,我们需要在Master节点上生成Hadoop用户的公钥,然后将这个公钥分发给各个slave节点,然后这样在Master机器上就可以用Hadoop无密码登录到各个salve机器上面了。

  步骤如下:

  ssh-keygen -t rsa -P ''

  这里的-P后面 ‘P’ 是大写的。

  上面我用红框勾出的路径就是公钥和私钥生成的默认路径。

  然后,下一步就是将这个公钥复制到各个slave节点中去、

  通过以下Linux命令进行远程文件的复制,脚本命令如下:

  scp ~/.ssh/id_rsa.pub [email protected]:~/

  我们这里面要复制的公钥文件存在默认的路径“ /home/hadoop/.ssh ”,所以执行的命令就是

  scp ~/.ssh/id_rsa.pub [email protected]:~/

  然后,我们需要登录192.168.1.51的salve01的机器将刚才生成的公钥加入的本地的权限验证组里面去。

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