背景
某不知名小券商,集群设置的定时任务总是在非交易日运行,定位到是集群时间不一致导致
于是着手对公司三套CDH集群(测试、仿真、生产)的时间进行同步设置
搜索参考了很多时间同步相关的博客,主要是使用ntp时间同步软件进行,这里不在多说,下面介绍一种较为简单粗暴的方式
解决过程:
1、角色说明
服务器 A:可用来同步时间的时间服务器,即它的时间是准确的
服务器B:CDH集群中充当时间服务器节点,因为B要同步A的时间
服务器其他节点:即CDH集群中除B之外的所有节点
2、具体过程
确保1中A、B服务器中均安装ntp时间服务并处于开启状态
在B节点执行命令:ntpdate -u A的IP ,-u表示可跳过A的防火墙,防止时间服务123端口未开引起的命令失败,此时B的时间即和A的保持一致了
在CDH集群的其他节点执行 ntpdate -u B的IP ,可实现集群其他节点和B的时间保持一致
3、每天同步一次时间
操作完2后,自定义每天同步时间的频率,我们三个集群都是每天同步一次
3.1 在B节点上设置定时任务 50 23 * * * /usr/sbin/ntpdate -u A的IP
3.2 在CDH集群除开B之外的节点上设置定时任务 50 23 * * * sleep 2; /usr/sbin/ntpdate B的IP
3.2晚执行2秒同步B的时间
以上即可实现集群的时间同步