- 如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
- 如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
文章目录
一、场景需求
三台服务器自己的时间不同:
现在需要校准时间。以其中一个服务器为标准,其它服务器就要与这个服务器同步为相同。
二、配置
注意:要进入root。
2.1 ntpl服务
systemctl status ntpd
可以看到是关闭的:
开启它:
systemctl start ntpd
再查看状态:
systemctl status ntpd
开启成功:
再开启开机启动服务:
systemctl is-enabled ntpd
2.2 ntp.conf 配置文件
vim /etc/ntp.conf
修改:
注释掉,不用外部时间(外网):
添加内容到底部(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
如下:
2.3 ntpd 文件配置修改
vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
如下:
2.4 重启ntpd服务
sudo systemctl start ntpd
如下:
2.5 设置 ntpd 服务开机启动
systemctl enable ntpd
如下:
三、其它配置(不必要的)
一般来说,我们没必要配置这个,因为我们的虚拟机一般都是联网的。如果没兴趣可以跳过这一节。
3.1 关闭所有节点上 ntp 服务和自启动
为了避免同步混乱,先关闭hadoop103所有ntp服务:
systemctl stop ntpd
systemctl disable ntpd
systemctl stop ntpd
systemctl disable ntpd
如下:
同理到hadoop104也执行一样命令:
3.2 在其他机器配置 1 分钟与时间服务器同步一次
hadoop103:
crontab -e
编写如下:
*/1 * * * * /home/chuan/software/hadoop-3.2.4/sbin/ntpdate hadoop102
如下:
修改时间:
date -s "2021-9-11 11:11:11"
等一分钟后查看时间:
date
如下:
学完这一篇,恭喜入门成功!!!