ntp server搭建

NTP(Network Time Protocol)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正。
在CDH集群中,要求服务器之间时钟尽量保持同步,本例讲解如何在CentOS6.5上配置NTP服务器和NTP客户端,可使多台客户机的时间与指定的NTP服务器的时间保持一致。从而保证多台服务器的时间同步。

NTP server

修改/etc/ntp.conf
ntp server

说明:

  1. server 1.cn.pool.ntp.org 是远程时间服务器的地址。CentOS在此处的配置项是 0.centos.pool.ntp.org, 1.centos.pool.ntp.org, 2.centos.pool.ntp.org, 测试中发现这几个时间服务器都不能正确的同步,所以把它们给注释掉。
  2. server 127.127.1.0fudge 127.127.1.0 stratum 10 如果配置的远程server无效时,则NTP服务器会根据这里的配置,把自己的时间做为NTP服务器的时间,即和自己同步。考虑到有的局域网里不可以访问外网,所有这里需要把这个配置项用上。
  3. NTP服务默认走UPD协议,使用123端口,如果启动防火墙的话,需要配置一下防火墙。
  4. ntp server配置完成后,执行service ntpd restart即可。
  5. NTP服务启动后大约需要3~5分钟的时间才会进行一次时间同步。可以通过命令ntpstat查看同步情况。
    只有NTP服务器同步成功后,NTP客户端才可以同来同步时间。如果需要立刻从指定的时间服务器同步时间,可以使用ntpdate 命令。使用ntpdate命令时,需要先关闭ntp服务service ntpd stop。然后执行ntpdate 1.cn.pool.ntp.org 即可立即完成时间的同步,然后启动ntp服务service ntpd start

NTP client

同样修改/etc/ntp.conf
ntp client

说明:
客户端的配置比服务器的配置要简单一下,只需加入 server 172.31.107.9 即可,表明本机的时间服务器。其他操作与服务器一致。

批量修改ntp client配置

1
2
3
4
5
6
7
8
9
10
NTPSERVER=172.31.107.9
for IP in `cat /etc/hosts | fgrep 103 | awk '{print $1}'`; do
ssh ${IP} "
sed -i '22,25s/^/#/g' /etc/ntp.conf && \
sed -i '25a server "${NTPSERVER}" iburst' /etc/ntp.conf && \
service ntpd stop && \
ntpdate "${NTPSERVER}" && \
service ntpd start
"
done

说明:

  1. 从hosts中找到CDH集群host
  2. 需要配置root免登陆
  3. CDH集群机器中的/etc/hosts配置一致,所以可以批量处理