分布式节点部署准备工作

分布式集群环境搭建的准备工作,包括主机名和IP地址、SSH互信等,是搭建分布式集群环境的基础和不可或缺的部分。此文将详细描述这一准备工作,是系列集群搭建的环境基础。

节点规划

假设有三台主机用以搭建分布式集群,分别为hdfs1hdfs2hdfs3.

为此,我们通过VM克隆新装的空白CentOS 6.5虚拟机依次完成三台空白节点的产生,并以唯一可用的root用户登陆配置网卡信息,参见《VMware克隆虚拟机后的网卡恢复操作》.

通过配置静态IP地址以便分布式集群后续的搭建。配置IP地址如下:

主机 静态IP 预设
hdfs1 192.168.223.151 master
hdfs2 192.168.223.152 slave
hdfs3 192.168.223.153 slave

映射主机名

设置主机名称以符合设计,修改 /etc/sysconfig/network 文件,主机名可自行修改为合适的主机名,不必遵循上述表格内容,修改HOSTNAME字段为该主机的名称即可。
修改hosts文件以实现主机名与IP映射关联,这样就可以直接使用主机名操作而非难记的IP地址,在hosts文件新增如下配置:

/etc/hosts
1
2
3
192.168.223.151 hdfs1
192.168.223.152 hdfs2
192.168.223.153 hdfs3

然后将统一配置的hosts文件分发到各节点对应目录覆盖

  • 参考命令:scp
  • 目标文件:*/etc/hosts*

统一账户

为方便操作,统一搭建在名为bigdata的用户下,创建该用户

  • 参考命令:useradd

访问验证 - SSH互信

SSH互信,即主机间通过SSH公钥验证,从而取代繁琐且不安全的明文密码,带给主机通信极大的便捷和安全。

准备

SSH通过用户目录下*.ssh/authorized_keys*文件对访问者的身份进行鉴别,从而实现免密码访问,在分布式集群搭建中的使用极为重要。

首先,各节点能通过各自IP地址进行通讯,即网络正常

生成密钥对

在用户目录下生成公私钥对,即使用命令ssh-keygen -t rsa -P '' 即可在用户目录下.ssh目录下生成密钥对,不要对该目录下的id_rsaid_rsa.pub 密钥对文件进行改动,它们是作为SSH互信的钥匙。

在其他节点下同样运行该命令生成各自的密钥对。

互信操作

通过SCP命令传输各节点的公钥(即 id_rsa.pub 文件)到指定的一台节点进行统一的验证生成处理。注意:只需其他节点将公钥文件拷贝到某一台节点上做统一互信后再一并分发到各个节点以减少工作量。

例如:将所有节点的公钥发送到一号节点的用户目录下的一个名为pub_kyes文件夹下,注意使用SCP命令时将公钥文件重命名,以避免文件覆盖,建议命名加统一的各自节点名称后缀。

传输完成后,也要记得拷贝当前节点的公钥到该文件夹下。在该文件夹追加所有的公钥到authorized_keys文件中,然后将该文件依次分发到各节点的用户目录下的.ssh目录中,注意确保该文件在.ssh目录下权限600,而.ssh目录权限700

  • 命令示例:cat id_rsa1.pub >> authorized_keys

最后别忘了给当前节点的.ssh目录下也放一份authorized_keys文件。

SCP命令参考

  • 本地到远端:scp <本地文件> <远端用户>@<远端主机>:<远端文件>
  • 远端到本地:scp <远端用户>@<远端主机>:<远端文件> <本地文件>
  • 常用参数: -v 显示调试信息; -r 迭代传输(用于文件夹传输)

示例

传输*/etc/hosts*到远端主机192.168.223.152对应目录覆盖

1
scp  /etc/hosts  root@192.168.223.152:/etc/hosts

传输文件夹*/usr/local/jdk*到远端主机hdfs3对应目录

1
scp  -r /usr/local/jdk  root@hdfs3:/usr/local/

注意:使用scp命令时未使用主机名称而使用IP地址,可能会出现链接缓慢的问题,连接出现响应要大约15秒甚至更久,原因一般为GSSAPI ( Generic Security Services Application Programming Interface) ,它是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。所以,可以在hosts中添加域名解析从而使用主机名,或者修改*/etc/ssh/ssh_conf*文件将GSSAPIAuthentication字段改为no

JDK安装

从网络下载好合适版本的JDK后,使用SCP命令统一JDK的安装文件及配置文件(环境变量/etc/profile)

启动终端设置

为节省节点的无关资源消耗,建议使用命令行终端代替图形终端,同时也会加快节点启动速度。

终端切换

使用命令init 3切换到网络多用户命令终端,init 5则切换到图形终端。

设置启动终端

修改*/etc/inittab*文件,将id:5:initdefault:改为id:3:initdefault:保存,重启主机即可。


分布式节点部署准备工作
https://vicasong.github.io/distribution/distribute-node-build-prepare/
作者
Vica
发布于
2016年9月4日
许可协议