版權聲明:大數據系列教程文章由Java潘老師辛苦原創,免費公開供java愛好者學習。如需轉載請獲得潘老師授權並保留原文鏈接,如有疑問或建議,可以聯繫潘老師:
Q:1562691348
V:A1562691348
本教程學習知識儲備:Java SE基礎、Linux基礎、數據庫基礎
如果不同步服務器時間,在完全分佈式環境下運行代碼時可能會出現如下異常:
org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container |
補充:查看時間指令:
date |
步驟:
採用NTP(Network Time Protocol)方式來實現, 選擇一臺機器, 作爲集羣的時間同步服務器, 然後分別配置服務端和集羣其他機器。我這裏以master機器時間爲準,其他機器同這臺機器時間做同步。
1.每個節點安裝ntp服務
sudo yum install ntp -y |
2.配置master的/etc/ntp.conf,這邊採用本地機器作爲時間的原點
1)只允許192.168.217.0網段的客戶機進行時間同步
原:
現:
2)註釋掉默認的server0~3,新增中國最活躍的時間服務器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer # 中國國家受時中心 server 202.112.10.36 # 1.cn.pool.ntp.org server 59.124.196.83 # 0.asia.pool.ntp.org |
原:
現:
3)允許上層時間服務器主動修改本機時間
restrict 210.72.145.44 nomodify notrap noquery restrict 202.112.10.36 nomodify notrap noquery restrict 59.124.196.83 nomodify notrap noquery |
新增:
4)外部時間服務器不可用時,以本地時間作爲時間服務
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 |
新增:
5)配置文件修改完成,保存退出,啓動服務。
service ntpd start |
3.在其他節點slave1和slave2中同步主節點時間:
sudo ntpdate master |
4.由於ntpdate只在開機運行,我們需要設置爲1小時同步一次
在slave1和slave2中使用crontab來自動更新時間:
crontab -e |
添加如下行:
* */1 * * * /usr/sbin/ntpdate master |
使用date命令發現所有節點時間已經一致。