Hadoop入门 集群时间同步
集群时间同步
如果服务器在公网环境(能连接外网),可以不采用集群时间同步。因为服务器会定期和公网时间进行校准。
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。
时间服务器配置(必须root用户)
首先需要设置一个时间服务器作为基准,其他服务器周期性的与时间服务器同步。测试环境为了尽快看见效果采用1分钟同步一次。
1.查看所有节点ntpd(时间服务器)服务状态和开机自启状态
[root@hadoop102 ~]$ systemctl status ntpd
[root@hadoop102 ~]$ systemctl start ntpd //如果状态是没开启则手动开启
[root@hadoop102 ~]$ systemctl is-enabled ntpd
2.修改hadoop102的ntp.conf配置文件
[ranan@hadoop102 ~]$ vim /etc/ntp.conf
修改1
因为集群中的服务器都是192.168.10网段,所以授权该网段上的所有服务器都可以去时间服务器上查时间
# 原值:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
修改2
注释掉,不适用外部互联网的时钟
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
修改4
修改 hadoop102 的/etc/sysconfig/ntpd 文件,让硬件时间与系统时间一起同步
SYNC_HWCLOCK=yes
3.重新启动ntpd服务并设置开机自启
[root@hadoop102 ~]$ systemctl start ntpd
[root@hadoop102 ~]$ systemctl enable ntpd
配置其他服务器
配置hadoop103、hadoop104服务器
1.关闭所有节点上的ntpd服务和自启服务
防止同时又与时间同步。
[root@hadoop103 ~]$ systemctl stop ntpd
[root@hadoop103 ~]$ systemctl disable ntpd
[root@hadoop104 ~]$ systemctl stop ntpd
[root@hadoop104 ~]$ systemctl disable ntpd
2.配置与时间服务器同步
[root@hadoop103 ~]$ crontab -e
*/1 * * * * /usr/sbin/ntpdate hadoop102
[root@hadoop104 ~]$ crontab -e
*/1 * * * * /usr/sbin/ntpdate hadoop102
3.测试
修改任意时间,一分钟后查看机器是否与时间服务器同步。
[root@hadoop103 ~]$ date -s "2011-11-11 11:11:11"
# 查看时间
[root@hadoop103 ~]$ date