当前位置: > Linux集群 > Hadoop >

配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考)

时间:2015-02-27 01:28来源:linux.it.net.cn 作者:IT
本文拟定是在一个局域网内(比如一个Hadoop集群)设定一台NTP服务器作为整个网络的标准时间参考,使用网络(集群)内的所有机器保持时间一致!以下是详细的操作步骤:

 

1. 修改选定的服务器的本地时间

#date -s '2014-11-21 12:48:30' +'%F %T' #2014-11-21 12:48:30为将要设定的时间


2. 将修改后的时间写入硬件时钟,确保重启有效

#hwclock -w

3. 安装并开启ntp服务
在Centos7下,使用systemctl is-enabled ntpd查看ntpd是否已经配置为开机启动,如果没有则使用systemctl enable ntpd设置并重启。

4. 配置NTP服务器

在选定的NTP服务器(假定IP为10.221.18.114)上vim /etc/ntp.conf,

4.1. 将10.221.18.114的本地时钟作为时间供给源,这样,即便它失去网络连接,它也可以继续为网络提供服务;

server 127.127.1.0
fudge 127.127.1.0 stratum 10

如果集群是在一个封闭的局域网内,可以屏蔽掉默认的server:
#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

4.2. 配置客户端的授权,也就是给指定的机器(客户端)设置访问NTP Server的权限,这是通过restrict配置项实现的,以下是它的格式说明。

 

[restrict]参数设定方式:
restrict [address] mask [netmask_ip] [parameter]


其中parameter的参数主要有:
ignore        :    拒绝所有类型的ntp连接
nomodify    :    客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数
noquery        :    客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时
notrap        :    不提供trap这个远程时间登录的功能
notrust        :    拒绝没有认证的客户端
nopeer        :    不与其他同一层的ntp服务器进行时间同步

让我们通过一个例子来解释一下,在 /etc/ntp.conf中加入如下一行:

restrict 10.221.18.112 mask 255.255.255.240 nomodify notrap
 

这一行的含义是授权10.221.18.112网段上的所有机器可以从这台机器上查询和同步时间。这里的配置涉及到了一些网络知识。 对于第一个参数[address] 它可能是一个IP,也可能是一个网段,这取决于后面给出的子网掩码。如果这里的子网掩码是255.255.255.255,那么配置就变成了只授权给IP是10.221.18.112的那一台机器连接!但是这里子网掩码是255.255.255.240,则此时的10.221.18.112就是一个网络标识了!它代表的是这样一个网段:

网络标识
(网段名)
主机 广播地址
起始 结束
10.221.18.112 10.221.18.113 10.221.18.126 10.221.18.127

5. 配置NTP客户端

在所有客户端上vim /etc/ntp.conf,添加:

server 10.221.18.114

注意:当server与client之间的时间误差过大时(可能是1000秒),处于对修改时间可能对系统和应用带来不可预知的问题,NTP将停止时间同步!所以如果发现NTP启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,此时需要先手动进行时间同步!

 

(责任编辑:IT)
------分隔线----------------------------