方式:找一个机器作为时间服务器,所有的机器与这台集群时间进行定时的同步。比如每隔十分钟同步一次时间。
原因:很多集群操作对时间同步的要求性很高,最高的像HBase,要求不差不能超过秒级。
注意:这只是“同步”,并不保证时间一定是正确的。
协议:ntp协议
步骤:
1. 检查ntp是否安装,需要有ntp和ntpdate
rpm -qa|grep ntp
检查ntp服务是否处于关闭状态,必须要确保当前ntp处于关闭状态
service ntp status
2. 修改ntp配置文件 vim /etc/ntp.conf
2.1. 授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间
restrict 192.168.1.0 mask 255.255.255.0 nomodufy notrap
2.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
2.3. 添加当前节点。当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3. 修改/etc/sysconfig/ntpd 文件,让硬件时间与系统时间一起同步
SYNC_HWCLOCK=yes
4. 重新启动ntpd服务
service ntpd start
5. 设置ntpd服务开机启动
chkconfig ntpd on
6. 其他机器配置
6.1. 在其他机器上配置10分钟与时间服务器同步一次
crontab -e
6.2. 编写定时任务
*/10 * * * * /usr/sbin/ntpdate hadoop102
6.3. 测试:修改任意及其实践
date -s "2020-01-01 11:11:11"
6.4. 测试:十分钟后查看及其实践是否与时间服务器同步
date