Linux的系统时间可以很容易的被修改:date -s *******
那么就需要保证所有机器的时间一致性。我们的线上机器是所有机器与一台校准器保持一致:
/usr/sbin/ntpdate 10.0.1.128
那么应用服务器的机器都是校准过的,但是我们的hadoop集群时间比较参差不齐,原因是因为CDH管理集群时需要把集群的ntpd服务全部打开,CDH自己内部有时间校准规则,但是ntpd服务打开后ntpdate命令就无法执行了,所以需要定时关闭ntpd来实现同步,代码如下:
work_list="机器列表"
for arg in $work_list ; do
ping -c 1 $arg || continue
ssh -t $arg "sudo /sbin/service ntpd stop && sudo /usr/sbin/ntpdate 10.0.1.128 && sudo /sbin/service ntpd start"
done
加入crontab里每天校验一次,OK了