搭建时间服务器并配置集群自动时钟同步

搭建时间服务器并配置集群自动时钟同步

一、搭建时间服务器

   (一)为什么要搭建时间服务器

          因为Hadoop 对集群中各个机器的时间同步要求比较高, 要求各个机器的系统时间不能相差太多, 不然会造成很多问题。比如,最常见的连接超时问题。所以需要配置集群中各个机器和互联网的时间服务器进行时间同步, 但是在实际生产环境中, 集群中大部分服务器是不能连接外网的, 这时候可以在内网搭建一个自己的时间服务器( NTP 服务器),然后让集群的各个机器与这个时间服务器定时的进行时间同步。

   (二)如何搭建时间服务器

          以主机名为node01的机器为例。

         1、首先查看一下该机器的时间

             输入命令date即可。

             从结果可以看到当前时间为EST(东部标准时间,即纽约时间),我们处在中国,所以可以把时间改为CST(中部标准时间,即上海时间)。

         2、如何修改时间标准?

             只需要在所有节点执行命令:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime即可。实际上就是把Shanghai时间的文件复制到localtime中。

              注意:上面操作在3个节点都要执行,保证系统当前时间标准为上海时间。

             OK,接下来进行时钟同步的配置。

         3、配置 NTP 服务器

             我们选择第一台机器(node01)为 NTP 服务器,其他机器和这台机器进行定时的时间同步。

           (1) 检查 NTP 服务是否已经安装

             输入命令:rpm -qa | grep ntp即可。

             如果没有安装就输入命令yum install -y ntp进行安装。

             实际上就是安装两个软件,其中 ntpdate-4.2.6p5-1.el6.centos.x86_64 是用来和某台服务器进行同步的

             ntp-4.2.6p5-1.el6.centos.x86_64 是用来提供时间同步服务的。

           (2)修改配置文件 ntp.conf

             输入命令:vi /etc/ntp.conf,然后进行如下修改:

             1) 启用 restrict,限定该机器网段 ,具体操作如下:

             将restrict 192.168.74.136 mask 255.255.255.0 nomodify notrap行的注释去掉,并且将网段改为自己本机的网段,我们这里是 74 网段。当然也可以直接输入本机的IP地址。

             2) 注释掉 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个server是时间服务器的域名,这里不需要连接互联网,所以将他们注释掉。

             3) 在该文件中添加下边两行,让本机和本地硬件时间同步。

             server 127.127.1.0

             fudge 127.127.1.0 stratum 10

             默认的配置文件里这两个是被注释掉的。NTP服务器会根据这里的配置,把自己的时间作为NTP服务器的时间,即和自己同步。考虑到有的局域网里不可以访问外网,所有这里需要配置该配置项。

           (3) 启动NTP服务

             输入命令chkconfig ntpd on即可

             这样每次机器启动时,NTP服务都会自动启动。

         4、配置其他机器的定时时间同步

             实际上配置其他机器的时间服务器时钟同步并不难,只需要在对应机器输入命令:crontab -e即可,然后在会话中输入0-59/10 * * * * /usr/sbin/ntpdate node01

             下面对这行内容的含义进行简要的解释:

             (1)其中0-59/10 * * * * 表示每隔10分钟进行一次时钟同步,空格隔开的五段是crontab语法格式中时间段,一共5段,其中*号表示任意时间,每一段时间的具体含义如下:


             (2)其中/usr/sbin/ntpdate node01表示执行的命令,即本机和主机名为node01的机器进行定时的时钟同步。

             (3)在其他节点进行同样的操作,然后过10分钟之后再次查看3台机器的时间,如果3台机器的时间一致就表示实现了时间的定时同步。

你可能感兴趣的:(搭建时间服务器并配置集群自动时钟同步)