目录
0. 相关文章链接
大数据基础知识点 文章汇总
1. 为什么需要集群时间同步
如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
这时候就需要找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。测试环境为了尽快看到效果,采用1分钟同步一次。
2. 主节点时间服务器配置(必须root用户)
1)查看所有节点ntpd服务状态和开机自启动状态,在所有机器上执行如下命令:
systemctl status ntpd
systemctl start ntpd
systemctl is-enabled ntpd
2)修改ntp.conf配置文件,使用(vim /etc/ntp.conf)命令,修改如下配置:
# 修改一:授权192.168.12.0-192.168.12.255网段上的所有机器可以从这台机器上查询和同步时间(放开如下注释)
restrict 192.168.10.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)编辑(/etc/sysconfig/ntpd)文件,添加如下内容,让硬件时间与系统时间一起同步
SYNC_HWCLOCK=yes
4)重新启动ntpd服务
systemctl start ntpd
5)设置ntpd服务开机启动
systemctl enable ntpd
3. 子节点时间服务器配置(必须root用户)
1)关闭所有节点上ntp服务和自启动
systemctl stop ntpd
systemctl disable ntpd
systemctl stop ntpd
systemctl disable ntpd
2)在其他机器配置1分钟与时间服务器同步一次,执行如下定时任务命令,然后添加如下内容
crontab -e
# 添加如下内容
*/1 * * * * /usr/sbin/ntpdate hadoop102
3)修改任意机器时间
date -s "2021-9-11 11:11:11"
4)1分钟后查看机器是否与时间服务器同步
date
注:上述时间同步为通过脚本强行时间同步,但是在一些服务中(比如CDH集群),会检测服务器中ntpd服务是否启动,此时就不能用此种方法了
注:其他相关文章链接由此进 -> 大数据基础知识点 文章汇总