Hadoop集群时间同步方法

本文基于Lniux的Ubuntu发行版对Hadoop集群时间进行同步操作。

首先我们得了解什么是NTP服务:

NTP(Network Time Protocol,网络时间协议)是用于同步计算机时间的网络协议,核心作用:

  1. 解决分布式集群中「节点时间不一致」的问题 ------Hadoop 集群的任务调度、日志记录、数据同步等依赖统一时间戳,时间偏差会导致任务失败、数据错乱;
  2. 工作原理:指定一台机器(hadoop102)作为「时间服务器」,其他节点定期(如每 10 分钟)向它发送请求,校准自身系统时间,确保整个集群时间统一;

所以我们得先在机器中安装NTP服务:

复制代码
# 更新软件包列表(可选,确保安装最新版本)
sudo apt update

# 安装NTP服务(对应CentOS的yum install -y ntp)
sudo apt install -y ntp

# 验证安装成功(查看服务状态)
sudo systemctl status ntp

具体配置分配,这里以三台机器102、103、104为例:

  1. hadoop102(时间服务器):安装 NTP 服务并配置为「时间主节点」,提供集群内统一时间源;
  2. hadoop103/hadoop104(普通节点) :也需安装 NTP 相关组件(实际安装 ntp 包后,会包含 ntpdate 工具),用于执行定时同步命令(ntpdate hadoop102)。
  1. 编辑配置文件:

    复制代码
    sudo vim /etc/ntp.conf
  2. 关键配置修改(按文档要求调整):

  • 授权集群网段同步 :找到 #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap,删除开头 # 注释(允许 192.168.1.0/24 网段节点同步)。
  • 禁用外网时间服务器 :给以下 4 行添加 # 注释(集群仅依赖本地时间服务器):
    *

    复制代码
      #server 0.ubuntu.pool.ntp.org iburst
      #server 1.ubuntu.pool.ntp.org iburst
      #server 2.ubuntu.pool.ntp.org iburst
      #server 3.ubuntu.pool.ntp.org iburst

或者是任何pool开头的

  • 添加本地时间源 :在文件末尾添加(断网时仍可提供时间):

    复制代码
    server 127.127.1.0  # 本地时间源
    fudge 127.127.1.0 stratum 10  # 时间层级(避免对外提供服务)
  • 保存退出(:wq),重启 NTP 服务:

    sudo systemctl restart ntp
    sudo systemctl enable ntp # 开机自启

二、hadoop103/hadoop104(普通节点):指向时间服务器同步

核心目标:不对外提供服务,仅定期从 hadoop102 同步时间。

  1. 编辑配置文件:

    复制代码
    sudo vim /etc/ntp.conf
  2. 关键配置修改:删除 / 注释所有外网时间服务器 :同 hadoop102,注释掉 0.ubuntu.pool.ntp.org 等 4 行。

  • 添加时间服务器(hadoop102) :在文件末尾添加(优先同步 hadoop102 时间):

    复制代码
    server hadoop102 iburst  # 指向集群时间服务器,iburst 加速同步
    server 127.127.1.0  # 兜底:若 hadoop102 不可用,用本地时间
    fudge 127.127.1.0 stratum 10
  1. 禁用自身作为时间服务器 :确保文件中无 restrict 授权其他网段的配置(仅保留默认的本地限制即可)。
  • 保存退出,关闭 NTP 服务(普通节点无需运行 ntpd 守护进程,依赖 ntpdate 定时同步):

    复制代码
    sudo systemctl stop ntp
    sudo systemctl disable ntp  # 禁止开机自启,避免冲突

清除 NTP 缓存并重启服务

复制代码
# 停止 NTP 服务
sudo systemctl stop ntp
# 清除外网同步缓存(关键:避免残留连接)
sudo rm -rf /var/lib/ntp/ntp.drift /var/lib/ntp/peers.cache
# 重启 NTP 服务
sudo systemctl start ntp
# 验证配置是否生效
sudo ntpq -p
理想输出:remote 列仅保留 LOCAL(0)(本地时间源),所有外网节点消失或 reach 列变为 0。

三、验证

在102端口输入:

复制代码
sudo netstat -tuln | grep 123

输出:

即为正常,123 是 NTP(Network Time Protocol,网络时间协议)的默认端口,专门用于计算机之间的时间同步通信。

模拟偏差:

在 hadoop103 手动修改时间(模拟时间偏差):

复制代码
sudo date -s "2025-01-01 10:00:00"

等待 10 分钟手动触发同步:

复制代码
sudo ntpdate hadoop102
相关推荐
计算机编程指导师13 分钟前
Python毕设怎么做?基于hadoop的商家优惠券营销效果数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·优惠券
吴声子夜歌16 分钟前
Docker入门与实战——实战案例(分布式处理与大数据平台)
大数据·分布式·docker
bksczm17 分钟前
Redis基础篇之初识分布式
数据库·redis·分布式
计算机编程指导师18 分钟前
【Python毕设推荐】基于Hadoop+Spark的商场商铺运行数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·课程设计·商场商铺
Leo.yuan9 小时前
2026年实时数据同步工具怎么选?GoldenGate、Striim、SeaTunnel、FineDataLink 5.0横评
大数据
sm_926787059 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
龙亘川9 小时前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化
逸模9 小时前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
此时不提桶,更待何时10 小时前
06-18-A-RabbitMQ消息特性与消费机制详解
分布式·rabbitmq
liliangcsdn10 小时前
Deepseek R1与V4 Pro参数量对比
大数据