购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3.1 虚拟机环境准备

1.克隆虚拟机

关闭要被克隆的虚拟机,右键点击虚拟机名称,在弹出的快捷菜单中选择“管理”→“克隆”命令,如图3-50所示。

图3-50 开始克隆

在欢迎界面点击“下一步”按钮,打开“克隆虚拟机向导”对话框,选择“虚拟机中的当前状态”选项,克隆虚拟机如图3-51所示。

图3-51 克隆虚拟机

设置“克隆方法”为“创建完整克隆”,如图3-52所示。

图3-52 设置“克隆方法”为“创建完整克隆

设置克隆的“虚拟机名称”和“位置”,如图3-53所示。

图3-53 设置克隆的“虚拟机名称”和“位置”

点击“完成”按钮,开始克隆,需要等待一段时间,克隆完成后,点击“关闭”按钮。

修改克隆后的虚拟机的IP地址。

修改为想要设置的IP地址。

按照3.2.3节中主机名的配置方法修改主机名。

重新启动服务器,按照上述操作分别克隆3台虚拟机,命名为hadoop102、hadoop103和hadoop104,主机名和IP地址分别与3.2.3节中的hosts文件设置一一对应。

2.创建安装目录

(1)在/opt目录下创建module、software文件夹。

(2)修改module、software文件夹的所有者。

之后所有的软件安装操作将在module和software文件夹中进行。

3.配置三台虚拟机免密登录

为什么需要配置免密登录呢?这与Hadoop分布式集群的架构有关。我们搭建的Hadoop分布式集群是主从架构,在配置了节点服务器间免密登录之后,就可以方便地通过主节点服务器启动从节点服务器,不用再手动输入用户名和密码。

第一步:配置SSH。

(1)基本语法:假设要以用户名user登录远程主机host,只需要输入ssh user@host,如ssh atguigu@192.168.10.100,若本地用户名与远程用户名一致,登录时则可以省略用户名,如ssh host。

(2)SSH连接时出现“Host key verification failed”的错误提示,直接输入yes即可。

第二步:无密钥配置。

(1)免密登录原理如图3-54所示。

图3-54 免密登录原理

(2)生成公钥和私钥。

然后,连续按3次回车键,就会生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

(3)将公钥复制到要免密登录的目标机器上。

注意: 需要在hadoop102上采用root账号,配置无密登录到hadoop102、hadoop103、hadoop104节点服务器上;还需要在hadoop103上采用atguigu账号配置无密登录到hadoop102、hadoop103、hadoop104节点服务器上。

.ssh文件夹下的文件功能解释如下。

·known_hosts:记录SSH访问过计算机的公钥。

·id_rsa:生成的私钥。

·id_rsa.pub:生成的公钥。

·authorized_keys:存放授权过的免密登录服务器公钥。

4.配置时间同步

为什么要配置节点服务器间的时间同步呢?

即将搭建的Hadoop分布式集群需要解决两个问题:数据的存储和数据的计算。

Hadoop对大型文件的存储采用分块的方法,将文件切分成多块,以块为单位,分发到各台节点服务器上进行存储。当这个大型文件再次被访问时,需要从3台节点服务器上分别拿出数据,然后进行计算。由于计算机之间的通信和数据的传输一般是以时间为约定条件的,如果3台节点服务器的时间不一致,就会导致在读取块数据时出现时间延迟,从而导致访问文件时间过长,甚至失败,所以配置节点服务器间的时间同步非常重要。

第一步:配置时间服务器(必须是root用户)。

(1)检查所有节点服务器ntp服务状态和开机自启状态。

(2)在所有节点服务器关闭ntp服务和开机自启动。

(3)修改ntp配置文件。

修改内容如下。

①修改1(设置本地网络上的主机不受限制),将以下配置前的“#”删除,解开此行注释。

②修改2(设置为不采用公共的服务器)。

将上述内容修改为:

③修改3(添加一个默认的内部时钟数据,使用它为局域网用户提供服务)。

(4)修改/etc/sysconfig/ntpd文件。

增加如下内容(让硬件时间与系统时间一起同步)。

重新启动ntpd文件。

执行:

第二步:配置其他服务器(必须是root用户)。

配置其他服务器每10分钟与时间服务器同步一次。

编写脚本。

修改hadoop103节点服务器的时间,使其与另外两台节点服务器时间不同步。

10分钟后查看该服务器是否与时间服务器同步。

5.编写集群分发脚本

集群间数据的复制通用的两个命令是scp和rsync。其中,rsync命令可以只对差异文件进行更新,非常方便,但是使用时需要操作者频繁地输入各种命令参数,为了能更方便地使用该命令,我们编写一个集群分发脚本,主要实现目前集群间的数据分发。

第一步:脚本需求分析。循环复制文件到所有节点服务器的相同目录下。

(1)原始复制。

(2)期望脚本效果。

(3)在/home/atguigu/bin目录下存放的脚本,atguigu用户可以在系统任何地方直接执行。

第二步:脚本实现。

(1)在/home/atguigu目录下创建bin目录,并在bin目录下使用vim命令创建文件xsync,文件内容如下。

(2)修改脚本xsync,使其具有执行权限。

(3)调用脚本的形式:xsync文件名称。 hsVyHiMrnIIYOWbWoEoz5306Eu0HTnHHsGcc8ih7kPKCth1eCQiNEWxEWJOvstXA

点击中间区域
呼出菜单
上一章
目录
下一章
×