1. 程式人生 > 其它 >Hadoop入門 叢集時間同步

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