一:概述
如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。测试环境为了尽快看到效果,采用 1 分钟同步一次。
二:方案
方案设计:
- 选 1 台服务器作为时间服务器
- 其他节点定时向该服务器同步时间
示例集群:
- hadoop102 → 时间服务器(NTP Server)
- hadoop103 → 客户端
- hadoop104 → 客户端
同步策略:
- 测试环境:每 1 分钟同步一次
- 生产环境:可调整为 5~10 分钟
三:部署
1)时间服务器(hadoop102)配置
重启 ntpd 服务
含义:系统时间同步的同时,同步硬件时钟,防止重启后时间回退。
sudo systemctl restart ntpd
配置硬件时间同步
含义:系统时间同步的同时,同步硬件时钟,防止重启后时间回退。
sudo vim /etc/sysconfig/ntpd
# 添加这一行即可 SYNC_HWCLOCK=yes
配置 NTP 服务文件
sudo vim /etc/ntp.conf
# 允许 192.168.2.0 网段的机器同步时间
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
# 当外部时间源不可用时,使用本地时间作为时间源
server 127.127.1.0 fudge 127.127.1.0 stratum 10
# 集群在内网环境,禁止使用公网时间服务器
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
验证是否已设置为开机启动
sudo systemctl is-enabled ntpd
设置 ntpd 开机自启
sudo systemctl enable ntpd
启动 ntpd 服务
sudo systemctl start ntpd
查看 ntpd 服务状态
sudo systemctl status ntpd


