集群之间的时间同步————ntp的使用教程


在分布式集群中,时间的同步是非常重要的。而我们的机器与机器之间往往会因为各种因素导致时间的不同步,继而影响我们集群的运行。

NTP(Network Time Protocol)是一种使计算机时间同步化的一种协议,它可以使计算机对其服务器或者时钟源做时间同步,来提高机器时间的精准度。

本篇文章将从集群网络的有无两种情况来使用ntp对集群进行时间同步

集群能够连接外网

如果集群能够连接外网的话,我们可以通过网络中的ntp服务器对集群做时间同步。

  1. 首先查看需要时间同步的机器上有没有ntpdate,先来执行一下ntpdate 命令

    如果出现下面的界面,恭喜恭喜,可以进行第3步

    如果没有的话,则会出现下面的情况

  1. 如果没有ntpdate可以通过下面的命令在yum上安装一个

    yum -y install ntpdate
  2. 安装完毕就可以通过下面的命令进行时间校准

    # 以下两个命令二选一
    ntpdate cn.pool.ntp.org
    
    ntpdate 120.25.108.11

    ntpdate后面的参数可以是一个域名,也可以是一个IP地址,这里使用的是中国的ntp服务器。这里提供一个全球可用的NTP服务器列表给大家

  3. 执行完命令出现下面这一行就说明本机和外网时间同步成功

  4. 接下来就可以在其他机器上使用同样的方法对机器时间同步。这样一来我们的机器时间都和ntp服务器上的时间一致了。

集群不能连接外网

之前的方法是使用所有的机器以外网的某一台机器(ntp服务器)时间为准进行校准,我们可以推理一下:

当我们的机器都不能连接外网,我们还要做时间同步的时候该怎么办呢?是不是可以通过内网中的一个机器当作ntp服务器来进行以上操作呢?答案是肯定的!

有些公司不允许服务器连接外网,这个时候我们可以选择一台机器当作ntp服务器,其他机器以这台机器上的时间为准做时间同步。

如果你们的集群可以使用本地或者公司里的yum源,那么恭喜你,可以继续往下看

我的集群IP分部如下:

hostname IP地址
hadoop01 10.211.55.101
hadoop02 10.211.55.102
hadoop03 10.211.55.103
  1. 在要做ntp服务器的机器上安装ntp(注意不是ntpdate)

    yum -y install ntp
  2. 修改配置文件

    vi /etc/ntp.conf
    1. 第18行放开注释,修改网段,一般情况子网掩码不用改,看自己集群网段情况修改
    2. 注释掉22-25行的服务地址,一般会从server 0一直往下试,直到连接上,由于我们是本地的,他这里写的都是外网的域名,所以我们不需要,干掉它!!
    3. 在下面加上server 127.127.1.0

    修改完的配置文件长这个样子(在图片上加了些说明)

  3. 然后给这个ntp服务器做一个开机自启

    chkconfig ntpd on
  4. 启动ntp服务

    service ntpd start
  5. 到这一步我们的本地ntp服务器就已经搭建好了。其他需要同步时间的机器,跟有网络时一样,需要用ntpdate命令进行同步,只不过后面的参数变成了我们刚刚配置那台机器的IP地址

    我这里集群内当作ntp服务器的机器IP是10.211.55.101,所以同步命令就是

    ntpdate 10.211.55.101
    
    # 如果配置了host文件,下面的命令也可以
    ntpdate hadoop01
  6. 跟之前一样会出现下面的界面,至此集群内的时间就又一致啦

设置定时同步

上面介绍了时间同步的流程,我们只同步了一次。但是如果再往后随着时间的推移,机器又受各种影响时间不同步了咋办呢?再执行一次ntpdate呗~

可是我们每次都要去手动同步太蛋疼了,作为程序员,要学会偷懒嘛

撸一个cron定时任务脚本

  1. 新建定时任务

    crontabl -e
  2. i键进入编辑模式,写入下面内容

    */15 * * * * ntpdate 10.211.0.101
  3. 写完按esc:wq保存退出就行了,美滋滋

到此ntp的使用就介绍完毕了,如有错误欢迎指正哦~


文章作者: 夏军
文章链接: http://yoursite.com
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 夏军 !
评论
 上一篇
“Identity API Scope Approval UI”——Mac多出来的未知应用处理 “Identity API Scope Approval UI”——Mac多出来的未知应用处理
最近换了新Mac后发现在Launchpad上发现一个名字叫Identity API Scope Approval UI陌生的应用,我打赌我没有安装这个应用。尝试打开发现这玩意好像也没啥用,而且还时不时意外退出 一个没有啥用,还不知道咋来
本篇 
集群之间的时间同步————ntp的使用教程 集群之间的时间同步————ntp的使用教程
在分布式集群中,时间的同步是非常重要的。而我们的机器与机器之间往往会因为各种因素导致时间的不同步,继而影响我们集群的运行。 NTP(Network Time Protocol)是一种使计算机时间同步化的一种协议,它可以使计算机对其服务器或者
  目录