同步方式
选择一个机器,作为时间服务器(这里选择hadoop01),所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
所需工具
时间同步服务器有两个:ntpd和ntpdatp,虽然使用二者都能达到时间同步的目的,但是使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
操作步骤
1.时间服务器配置
(1)检查ntp是否安装
[root@hadoop01 Desktop]# rpm -qa|grep ntp
如果显示
ntp-4.2.6p5-1.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-1.el6.centos.x86_64
证明ntp已经安装,否则要先安装ntp服务
[root@hadoop01 Desktop]# yum install -y ntp
(2)修改ntp 配置文件
[root@hadoop01 Desktop]# vi /etc/ntp.conf
1. 配置客户端的授权,也就是给指定的机器(客户端)设置访问NTP Server的权限,这是通过restrict配置项实现的
将#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap释放
改为restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
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
屏蔽
改为
#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
3.将本机的本地时钟作为时间供给源,这样,即便它失去网络连接,它也可以继续为网络提供服务
增加
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)修改/etc/sysconfig/ntpd 文件
[root@hadoop01 Desktop]# vim /etc/sysconfig/ntpd
增加
SYNC_HWCLOCK=yes
(4)重启ntpd
[root@hadoop01 Desktop]# service ntpd restart
(5)设置ntpd开机默认启动
[root@hadoop01 Desktop]# chkconfig mtpd on
完成以上操作以后,使用date命令查看系统时间与当前时间是否对应,如果还不对应,应该是时区的问题
(6)修改时区
[root@hadoop01 Desktop]# tzselect
根据提示选择正确的时区,然后将cp /usr/share/zoneinfo/Asia/Shanghai设置为到/etc/localtime的链接
[root@hadoop01 Desktop]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.其他机器配置
(1)配置每十分钟与时间服务器同步一次
需要在集群中其他的机器中都编写时间同步脚本,这里以hadoop02为例
[root@hadoop02 Desktop]# crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop01
重启crond服务
[root@hadoop02 Desktop]# service crond restart
如果需要,同样要修改时区,操作同1.(6)
(2)手动同步
[root@hadoop02 Desktop]# ntpdate hadoop01