公司有七台物理机服务器内网主机名和IP分别为
server1:192.168.3.2
server2:192.168.3.4
server3:192.168.3.6
server4:192.168.3.8
hadoop1:192.168.3.10
hadoop2:192.168.3.12
hadoop3:192.168.3.14
其中server1:192.168.3.2这台机器当作局域网的ntp服务器,其它6台都与这一台服务器进行对时,server1自已则通过与外网公共的ntp服务器进行对时。
除了server1之外的6台机器上都写入定时任务,执行指令crontab -e在其中写入定时任务脚本
*/10 * * * * ntpdate 192.168.3.2; hwclock -w
意思是每10分钟执行一次对时并修改当前主机的硬件时间。如图1所示:
图1
但是使用一段时间后发现服务器时间并没有对准,随着时间的推移时差越来越大,说明这里对时肯定出了问题。
调试过程:
直接将定时任务调整为每分钟执行一次,这时发现生成的日志/var/spool/mail/root报错,如图2所示:
图2
错误很明显是对时脚本运行不成功,原因是ntpdate和hwclock这两个指令没找到(command not found)。
解决办法:
在需要对时的机器上执行命令
whereis ntpdate
如图3所示:
图3
再执行命令whereis hwclock如图4所示:
图4
以上两个红框中路径就是ntpdate和hwclock的路径,将红框中的路径加到图1所示的对时脚本前,修改后的对时脚本如图5所示:
图5
保存后等10分钟,再次查看/var/spool/mail/root日志已显示能正常对时,如图6所示:
图6
以上步骤完成了server2定时向server1的对时任务,其余5台服务器也进行同样的设置后查看各台机器时间(10分钟对时一次的效果)效果如图7:
图7
分秒不差,能满足大数据集群服务对时间一致性的要求。