通过上一篇《Hadoop集群搭建(三台Linux服务器)》,集群已经搭建好了,现在开启时期间同步。时间同步就是同步三台机器之间的时间,防止定时任务操作出错。
环境以及版本
- centos 7
- jdk1.8
- Hadoop 2.7.2
集群时间同步概述
- 时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
- 我的三台机器ip以及hostname分别是:
192.168.40.191,hadoop191
192.168.40.192,hadoop192
192.168.40.193,hadoop193
其中192.168.40.191(hadoop191)作为时间服务器。 - 同步步骤如下图。
配置时间同步具体实操
1. 时间服务器配置(必须root用户)
(1)检查ntp是否安装
-- 任意目录输入一下命令
rpm -qa|grep ntp
出现如下图所示说明安装了
假如没有安装,则进行安装
sudo yum install ntp
(2)修改ntp配置文件
vi /etc/ntp.conf
修改内容如下
a)修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)
- 我在这里打开了文件中的注释,mask之前的ip要改成在自己的网络频段,比如我的是192.168.40.191,就要改成192.168.40.0。
b)修改2(集群在局域网中,不使用其他互联网上的时间)
-
注释掉这一部分配置文件,类似的都注释掉。
c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步) -
粘贴到末尾
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)修改/etc/sysconfig/ntpd 文件
vim /etc/sysconfig/ntpd
添加以下内容
-- 增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
(4)重新启动ntpd服务
-- 查看ntpd的运行状态
service ntpd status
-- 启动ntpd
service ntpd start
(5)设置ntpd服务开机启动
-- 测试过程可以不用配置,会影响性能
chkconfig ntpd on
2. 其他机器配置(必须root用户)
-- hadoop192,hadoop193两台节点都要配置。根据自己实际情况。
cd /opt/module/hadoop-2.7.2
(1)在其他机器配置10分钟与时间服务器同步一次
crontab -e
添加下面内容
-- 方便测试,可以设置为1分钟同步一次。
*/1 * * * * /usr/sbin/ntpdate hadoop191
-- 10分钟同步一次。
*/10 * * * * /usr/sbin/ntpdate hadoop191
(2)修改hadoop192,或者hadoop192机器的时间
-- 任意目录下输入命令,修改时间
date -s "2020-10-11 11:11:11"
(3)十分钟后查看机器是否与时间服务器同步
-- 任意目录,查看当前时间
date