集群节点时钟同步(NTP)配置手册

一、配置说明

1.1 配置背景

Linux 集群中节点间时钟同步是分布式组件(如 HBase、Hadoop)协同工作的核心要求,NTP(Network Time Protocol)是实现时钟同步的标准工具,本手册基于 VirtualBox 中 CentOS 7 集群(1 台 master + 多台 slave)完成配置。

1.2 角色划分

|---------------|---------|------------------|
| 节点 | 角色 | 功能 |
| master | NTP 服务端 | 提供标准时间,作为同步源 |
| slave1/slave2 | NTP 客户端 | 定时同步 master 节点时间 |

二、前置操作:所有节点安装 NTP 工具

在 master、slave1、slave2 节点分别执行以下命令,安装 NTP 基础工具:

复制代码

yum install -y ntp ntpdate

三、master 节点(NTP 服务端)配置

3.1 编辑 NTP 配置文件

执行命令打开配置文件:

复制代码

vi /etc/ntp.conf

修改/添加以下核心配置(注释原有外网时间源,配置内网同步规则):

复制代码

# 允许 192.168.56.0/24 网段(集群内网)节点同步时间 restrict 192.168.56.0 mask 255.255.255.0 nomodify notrap # 注释掉外网默认时间源(集群内网独立同步) # 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 # 配置本地时钟作为时间源(内网无外网时使用) server 127.127.1.0 fudge 127.127.1.0 stratum 10

3.2 启动并设置 NTP 服务开机自启

复制代码

# 启动 NTP 服务 systemctl start ntpd # 设置开机自启 systemctl enable ntpd # 查看服务状态(确认 Active: active (running)) systemctl status ntpd

3.3 防火墙配置(按需执行)

  • 若防火墙已运行,放行 NTP 服务端口(123/UDP):

    复制代码

    firewall-cmd --add-service=ntp --permanent firewall-cmd --reload

  • 若防火墙未运行(提示 FirewallD is not running),可直接跳过此步骤。

四、slave 节点(NTP 客户端)配置

4.1 手动同步 master 时间(立即对齐)

执行以下命令,手动同步一次 master 时间(解决即时时间差):

复制代码

# 方式1:通过主机名同步(推荐,需配置 /etc/hosts 解析) ntpdate master # 方式2:通过 IP 同步(若主机名解析失败,替换为 master 实际 IP) ntpdate 192.168.56.110

✅ 成功同步输出示例:

复制代码

12 Mar 20:00:00 ntpdate[1234]: adjust time server 192.168.56.110 offset 0.005678 sec

4.2 配置自动同步(永久生效)

执行命令打开配置文件:

复制代码

vi /etc/ntp.conf

注释原有外网时间源,添加同步 master 配置:

复制代码

# 优先同步 master 节点时间 server master prefer

4.3 启动 slave 节点 NTP 服务

复制代码

# 启动服务 systemctl start ntpd # 设置开机自启 systemctl enable ntpd # 查看服务状态(确认运行) systemctl status ntpd

五、验证时钟同步效果

5.1 基础验证(所有节点执行)

执行 date 命令,检查各节点时间是否一致(秒级相同即为成功):

复制代码

date

✅ 成功输出示例(所有节点时间一致):

复制代码

Thu Mar 12 20:01:30 CST 2026

5.2 高级验证(查看同步状态)

执行 ntpq -p 命令,查看 NTP 同步节点列表,确认 master 出现在列表中:

复制代码

ntpq -p

六、常见问题及解决方案

|-------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| 问题现象 | 原因 | 解决方法 |
| ntpdate 提示 no server suitable for synchronization found | 1. master 节点 NTP 服务未启动<br>2. 节点间网络不通<br>3. master 防火墙拦截 123 端口 | 1. 执行 systemctl start ntpd 启动 master NTP 服务<br>2. 执行 ping master 验证网络连通性<br>3. 关闭防火墙或放行 NTP 端口 |
| 主机名同步失败,IP 同步成功 | /etc/hosts 未配置 master 主机名解析 | 在所有节点执行:<br>echo "192.168.56.110 master" >> /etc/hosts |
| 同步后时间又逐渐偏移 | NTP 自动同步周期较长 | 配置定时任务(可选):<br>echo "*/5 * * * * /usr/sbin/ntpdate master >> /var/log/ntp.log 2>&1" >> /var/spool/cron/root<br>systemctl restart crond |

七、配置总结

  1. 核心流程:所有节点装 NTP → master 配置服务端 → slave 手动同步+配置自动同步 → 验证时间一致性;

  2. 关键注意:master 需确保 NTP 服务运行,slave 需配置主机名解析或使用 IP 同步;

  3. 验证标准:所有节点 date 命令输出时间秒级一致,满足 HBase/Hadoop 集群时钟同步要求。

相关推荐
_upupup6 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
JeJe同学7 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR7 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
闲云野鹤在人间8 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛9 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库019 小时前
Linux 8个常见运维故障排查
java·linux·运维
零基础12310 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮10 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
xiaoqiMikko10 小时前
Linux 实战(一):CentOS 7、Rocky 9、Ubuntu 24.04 三台真机实测 —— 认清系统、换源、装包的版本坑
linux·centos