linux 集群时间同步


前言

由于搭建hadoop集群需要进行集群时间同步,记录下具体操作过程。
这里我的集群环境为192.168.184.129(主)、192.168.184.130(从)、192.168.184.131(从),设置从机器从主机器同步时间,从而保持时间一致。


一、同步方式

  • 机器可以访问网络,这种定时同步网络时间即可,比如同步阿里提供的时间。
  • 从节点同步主节点的时间,其他机器不连接网络,只从主节点同步。

二、查看时区是否正确

2.1 检查时区

date -R

linux 集群时间同步_第1张图片
如果不是+8,需要先设置机器的时区
执行以下命令,重启后也生效。

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

三、集群修改

这里我选择的是第二种,真实的集群一般都不能直接连接外网,一般都是从主节点同步时间。

3.1 查看ntp服务是否已经安装

rpm -qa|grep ntp

如下图所示则安装了服务,如果没有则安装下时间服务
linux 集群时间同步_第2张图片
安装ntp服务命令如下

yum –y install ntp

3.2 192.168.184.129 主节点修改

修改以下文件

vi /etc/ntp.conf

修改如下

#授权 192.168.184.2-192.168.184.255 网段上的所有机器可以从这台机器上查询和同步时间
 
restrict 192.168.184.2 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.4 所有节点修改

修改文件

vi /etc/sysconfig/ntpd
#让硬件时间与系统时间一起同步
SYNC_HWCLOCK=yes

或者这个也可以使用
命令同步

hwclock -w

修改后重启ntp服务

service ntpd stop
service ntpd start

3.5 从节点设置定时任务定时同步主节点

从节点即192.168.184.130/192.168.184.131节点停止ntpd服务

service ntpd stop
systemctl disable ntpd

设置定时任务定时从主节点同步时间

crontab -e

每隔一小时同步一次主节点,hadoop1是主机名也是192.168.184.129

0 0 */1 * * ? /usr/sbin/ntpdate hadoop1  #hadoop1是主机名

四、验证

1.先手动执行命令同步
报错如下

/usr/sbin/ntpdate hadoop1
 3 May 12:42:26 ntpdate[11507]: no server suitable for synchronization found

解决:
查看后hadoop1 ntpd服务没有启动导致,启动服务即可。
2.修改从机器时间

sudo date -s "2022-05-03 12:24:36"

3.1 小时后查看机器是否与时间服务器同步

sudo date

总结

展示了集群时间如何进行同步操作,前提是机器的时区是正确的要先修改时区,如果文章对你有帮助,点个赞吧。

你可能感兴趣的:(linux,linux,hadoop,大数据)