集群节点时钟同步(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 工具

masterslave1slave2 节点分别执行以下命令,安装 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 集群时钟同步要求。

相关推荐
椰奶燕麦2 小时前
Linux 服务开机自启配置指南 (基于 Crontab)
linux
路溪非溪2 小时前
systemd简介和使用总结
linux·arm开发·驱动开发
星竹晨L2 小时前
Linux入门:权限管理的核心逻辑
linux
零基础的修炼2 小时前
Linux网络---Epoll-Reactor模式
linux·网络·php
larance2 小时前
NebulaGraph 数据库部署与运维指令清单
linux·服务器·数据库
筱顾大牛2 小时前
点评项目---分布式锁
java·redis·分布式·缓存·idea
petrel20152 小时前
【Spark】深度魔改 Spark 源码:打破静态限制,实现真正的运行时动态扩缩容
大数据·分布式·spark
济6172 小时前
ARM Linux 驱动开发篇---内核定时器实验--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
燃于AC之乐2 小时前
OpenClaw“小龙虾”深度解析:60天碾压Linux的AI智能体,从原理到搞定本地部署【Windows系统 + 接入飞书】
linux·人工智能·飞书·openclaw·小龙虾