几天在实验室用淘汰的pc搭了一个8个节点的小集群做hama的实验,从重新组装硬件到装系统、配置集群,忙了两天,满身都是灰。
安装集群时,经常需要同步各个节点之间的系统时间,例如hbase集群中,过大的时间差可能会导致诡异的问题
对于几个节点的小集群,可以用NTP(network time protocol)同步时间,而且手动就可以:
选择局域网中的一台机器作为ntp服务器,在这台机器上需要安装并启动ntpd
其他机器上要关闭ntpd,安装ntpdate
CentOS6.3上这两个软件都是自带的,只需根据需要打开或者关闭。
注意其他机器的ntpd必须关闭:
# service ntpd stop
修改ntp服务器上的/etc/ntp.conf,加上以下的配置:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
后面哪个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端
重启ntpd:
# service ntpd restart
等五六分钟,让ntpd完成自身的时间同步,这期间可以用:
# watch ntpq -p
查看状态,第6列达到17时就可以了。等待的时间是第5列poll的秒数乘以5。
然后其他的机器上执行:
# ntpdate xxxx
xxxx是ntp服务器的ip地址或者主机名
也可以设置时间自动同步。
参考:http://www.linuxidc.com/Linux/2012-07/66272.htm
手动一台台地同步时间(执行ntpdate xxx)实在很麻烦。
于是尝试了一种一拍脑袋都能想到的方法,居然work了,这么做好不好我也不知道,还望大牛指点。方法如下:
在除了运行ntpd之外的机器上,执行:
# chkconfig --list | grep ntpd
看看ntpd有没有开机自启动(如果显示的全为off则表明不是开机自启动),如果是开机自启动的,需要执行:
# chkconfig ntpd off
关闭ntpd,如果ntpd开着,ntpdate没办法从其他服务器同步时间的。
然后在/etc/rc.local(debian/Ubuntu系统中可能是/etc/rc.d/rc.local)末尾加入一行:
ntpdate xxx.xxx.xxx.xxx
xxx表示运行ntpd的那台服务器的ip地址
然后重启就可以了。