前言
NTP(Network Time Protocol,网络时间协议)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务
Linux上可以通过ntp工具来实现各个主机间的系统时间和硬件时间同步
本次实验集群主机系统为CentOS 7,集群主机在 192.168.126.0/24 网段
需求
具体步骤:
1. 配置集群时间服务器
(1)检查 ntp 是否安装
[ tomandersen@hadoop101 ~] $ yum list installed | grep ntp
fontpackages-filesystem.noarch 1.44-8.el7 @anaconda
ntp.x86_64 4.2.6p5-29.el7.centos @base
ntpdate.x86_64 4.2.6p5-29.el7.centos @base
python-ntplib.noarch 0.3.2-1.el7 @anaconda
[ tomandersen@hadoop101 ~] $ sudo yum install ntp
(2)修改 ntp 配置文件 /etc/ntp.conf
[ root@hadoop101 ~ ] # vim / etc/ ntp. conf
修改内容如下:
a)授权当前网段内所有主机可通过此主机查询和同步时间
restrict 192.168.126.0 mask 255.255.255.0 nomodify notrap
b)设置无网络连接时使用本地时间为集群机器提供时间同步
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)修改 ntp 配置文件 /etc/sysconfig/ntpd
使用root用户编辑文件/etc/sysconfig/ntpd,插入以下内容实现硬件时间和系统时间一起同步
SYNC_HWCLOCK= yes
(4)重启 ntp 服务
[ root@hadoop101 / ] # systemctl restart ntpd. service
(5)设置 ntp 服务开机自启
[ root@hadoop101 / ] # systemctl enable ntpd. service
2. 配置所有其他客户主机
(1)创建时间同步计划任务
在其他主机上使用 crontab工具 创建计划任务,设置每1分钟同步一次时间
[ root@hadoop102 ~ ] # crontab - e
*/1 * * * * /usr/sbin/ntpdate hadoop101
(2)确保 crond.service 和 ntpd.service开机启动
sudo systemctl enable crond.service
sudo systemctl enable ntpd.service
3. 测试同步结果
[ root@hadoop103 TomAndersen] # date - s "2017-9-11 11:11:11"
[ root@hadoop103 TomAndersen] # date
2020 年 02 月 09 日 星期日 21 : 51 : 11 CST
End~