Hadoop完全分布式集群时间同步
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop完全分布式集群时间同步相关的知识,希望对你有一定的参考价值。
集群时间同步
前言
如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
1. 需求
找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。测试环境为了尽快看到效果,采用 1 分钟同步一次。
2. 时间服务器配置
(必须 root 用户)
2.1 查看所有节点 ntpd 服务状态和开机自启动状态
[zs@hadoop102 ~]$ sudo systemctl status ntpd
[zs@hadoop102 ~]$ sudo systemctl start ntpd
[zs@hadoop102 ~]$ sudo systemctl is-enabled ntpd
Systemctl相关操作,请参考:Linux基于CentOS通过Systemctl 设置开机启动/永久性关闭服务
2.2 修改 hadoop102 的 ntp.conf 配置文件
[zs@hadoop102 ~]$ sudo vim /etc/ntp.conf
修改内容如下:
(a)修改 1(授权 192.168.10.0-192.168.10.255 网段上的所有机器可以从这台机器上查询和同步时间)
#restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
为
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
(b)修改 2(集群在局域网中,不使用其他互联网上的时间)
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 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
(c)添加 3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
2.3 修改 hadoop102 的/etc/sysconfig/ntpd 文件
[zs@hadoop102 ~]$ sudo vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
2.4 重新启动 ntpd 服务
[zs@hadoop102 ~]$ sudo systemctl start ntpd
2.5 设置 ntpd 服务开机启动
[zs@hadoop102 ~]$ sudo systemctl enable ntpd
3. 其他机器配置
(必须 root 用户)
(1)关闭所有节点上 ntp 服务和自启动
[zs@hadoop103 ~]$ sudo systemctl stop ntpd
[zs@hadoop103 ~]$ sudo systemctl disable ntpd
[zs@hadoop104 ~]$ sudo systemctl stop ntpd
[zs@hadoop104 ~]$ sudo systemctl disable ntpd
(2)在其他机器配置 1 分钟与时间服务器同步一次
[zs@hadoop103 ~]$ sudo crontab -e
编写定时任务如下:
*/1 * * * * /usr/sbin/ntpdate hadoop102
(3)修改任意机器时间
[zs@hadoop103 ~]$ sudo date -s "2021-9-11 11:11:11"
(4)1 分钟后查看机器是否与时间服务器同步
[zs@hadoop103 ~]$ sudo date
加油!
感谢!
努力!
以上是关于Hadoop完全分布式集群时间同步的主要内容,如果未能解决你的问题,请参考以下文章