在Hadoop上做实时调度器的实验时,一些作业总是被不正常地kill掉。调试过后,发现从主节点上获取的时间和从从节点上获取的时间不一致。研究了很久,发现这是从节点和主节点的时间不一致导致的,所以决定将集群的时间给同步了。
- NTP服务
百度后发现NTP可以用来同步节点间的时间。百度百科中NTP是这样解释的:
代码语言:javascript复制NetworkTime Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
发现集群的节点上安装了NTP服务。下面主要介绍配置过程。配置分为服务器端和客户端,配置过程如下。
- 服务器设置
选择了sist05节点作为NTP服务器。编辑其中的/etc/ntp.conf文件。在
代码语言:javascript复制#restrict192.168.1.0 mask 255.255.255.0 nomodify notrap
后面添加一行,如下
代码语言:javascript复制#restrict192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict defaultmodify notrap
然后启动ntp服务即可。命令如下$service ntpd start
- 客户端同步
在客户端运行$ntpdate sist05即可与服务器sist05的时间同步。
如果报错
代码语言:javascript复制21 Sep 20:41:02ntpdate[8399]: the NTP socket is in use, exiting
说明当前节点上已有ntp服务在运行,关闭该服务即可解决问题,命令如下service ntpd stop或者service ntp stop。
类似文章:http://blog.csdn.net/bbirdsky/article/details/20445385