设计目标一:
master 局域网内的时间服务器,其他节点和master节点通信进行时间同步
node1 只作为客户端,和master进行时间同步
node2 只作为客户端,和master进行时间同步
首先关闭各个节点的防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
1.master节点NTP服务器的搭建
查看当前系统时间
date
说明:
CST China Standard Time UTC+8:00 中国沿海时间(北京时间)
世界协调时间(Universal Time Coordinated,UTC)
GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可,如果是其他的时区,可以按照下面的命令修改为CST时间
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在master节点检查是否安装了ntp
yum list installed | grep ntp
如果没有安装,则使用以下命令进行安装
yum install -y ntp
更改配置
vi /etc/ntp.conf
配置的主要内容如下:
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
#IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器
#来同步时间
restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
server cn.pool.ntp.org perfer
#当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
配置完成之后,首先和互联网上的NTP服务器进行时间同步
ntpdate cn.pool.ntp.org
启动ntp服务,并设置为开机自启动
systemctl start ntpd.service
systemctl enable ntpd.service
等过5-10分钟可以使用ntpstat命令查看master和互联网的时间服务器时间同步的状态
2.在node1,node2节点按照上面的步骤转换为CST时间,由于只是作为客户端进行时间同步,所以只需要安装客户端库就可以了
yum -y install ntpdate.x86_64
与master节点进行时间同步
ntpdate master
可以设置定时任务每个小时和master进行时间的同步
crontab -e
* */1 * * * /usr/sbin/ntpdate master
hwclcok -w命令说明:
hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中 的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。根据不同参数设置,hwclock命令既可以将硬件时钟同步到系统时钟,也可以将系统时钟同步到硬件时钟。
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
如果使用date命令修改了系统时间,并不会自动去修改硬件时钟,因此,当系统下次重启时,系统时钟还会从硬件时钟去取,date设置的时间就无效了。
常用参数
-r, --show 读取并打印硬件时钟(read hardware clock and print result )
-s, --hctosys 将硬件时钟同步到系统时钟(set the system time from the hardware clock )
-w, --systohc 将系统时钟同步到硬件时钟(set the hardware clock to the current system time )
设计目标二 cdh集群时钟同步:
cdh主机运行状况测试,用于检查主机的系统时钟是否显示与其 NTP 服务器不同步。该测试使用 'ntpdc -np' (如果运行的是 ntpd)或 'chronyc sources' (如果运行的是 chronyd)命令检查主机是否与 NTP 对等端同步以及主机时钟与该对等端的偏差绝对值是否未过大。如果该命令失败、NTP 未与服务器同步,或主机的 NTP 后台程序未运行或无法联系,该测试将返回运行状况“不良”。
如果未在主机上使用 NTP,则使用以下所示的配置选项对主机禁用该检查。Cloudera 建议使用 NTP 使 Hadoop 群集实现时间同步.所以按照推荐在各个节点上安装NTP,所有的节点作为时间服务器。
主节点的配置和上面的情况一样:
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
#IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器
#来同步时间
restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
server cn.pool.ntp.org perfer
#当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
其他节点的配置:
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
#IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器
#来同步时间
restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
server *masterIP* perfer
server cn.pool.ntp.org
#当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
说明:
首选的时间服务器是主机点,局域网时间同步快,如果主机点连接不上就和互联网的时间服务器进行时间同步
各个配置完成之后,都先和互联网的时间服务器进行时间同步,然后启动NTP服务,设置为自启动