linux 集群时间同步
前言
由于搭建hadoop集群需要进行集群时间同步,记录下具体操作过程。
这里我的集群环境为192.168.184.129(主)、192.168.184.130(从)、192.168.184.131(从),设置从机器从主机器同步时间,从而保持时间一致。
一、同步方式
- 机器可以访问网络,这种定时同步网络时间即可,比如同步阿里提供的时间。
- 从节点同步主节点的时间,其他机器不连接网络,只从主节点同步。
二、查看时区是否正确
2.1 检查时区
date -R
如果不是+8,需要先设置机器的时区
执行以下命令,重启后也生效。
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
三、集群修改
这里我选择的是第二种,真实的集群一般都不能直接连接外网,一般都是从主节点同步时间。
3.1 查看ntp服务是否已经安装
rpm -qa|grep ntp
如下图所示则安装了服务,如果没有则安装下时间服务
安装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
总结
展示了集群时间如何进行同步操作,前提是机器的时区是正确的要先修改时区,如果文章对你有帮助,点个赞吧。