1. 程式人生 > >CM+CDH構建企業大資料平臺系列(十二)

CM+CDH構建企業大資料平臺系列(十二)

完整視訊+圖文資料獲取及技術答疑請加:大講臺大資料研習社⑦ :695520445

                            搭建時間伺服器並配置叢集自動時鐘同步

一、搭建時間伺服器

   (一)為什麼要搭建時間伺服器

          因為Hadoop 對叢集中各個機器的時間同步要求比較高, 要求各個機器的系統時間不能相差太多, 不然會造成很多問題。比如,最常見的連線超時問題。所以需要配置叢集中各個機器和網際網路的時間伺服器進行時間同步, 但是在實際生產環境中, 叢集中大部分伺服器是不能連線外網的, 這時候可以在內網搭建一個自己的時間伺服器( NTP 伺服器),然後讓叢集的各個機器與這個時間伺服器定時的進行時間同步。

   (二)如何搭建時間伺服器

          以主機名為node-cm01.djt.com的機器為例。

         1、首先檢視一下該機器的時間

             輸入命令date即可。

             從結果可以看到當前時間為EST(東部標準時間,即紐約時間),我們處在中國,所以可以把時間改為CST(中部標準時間,即上海時間)。

         2、如何修改時間標準?

             只需要在所有節點執行命令:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime即可。實際上就是把Shanghai時間的檔案複製到localtime中。

              注意:上面操作在3個節點都要執行,保證系統當前時間標準為上海時間。

             OK,接下來進行時鐘同步的配置。

         3、配置 NTP 伺服器

             我們選擇第一臺機器(node-cm01.djt.com)為 NTP 伺服器,其他機器和這臺機器進行定時的時間同步。

           (1) 檢查 NTP 服務是否已經安裝

             輸入命令:rpm -qa | grep ntp即可。

             如果沒有安裝就輸入命令yum install -y ntp進行安裝。

             實際上就是安裝兩個軟體,其中 ntpdate-4.2.6p5-1.el6.centos.x86_64 是用來和某臺伺服器進行同步的

             ntp-4.2.6p5-1.el6.centos.x86_64 是用來提供時間同步服務的。

           (2)修改配置檔案 ntp.conf

             輸入命令:vi /etc/ntp.conf,然後進行如下修改:

             1) 啟用 restrict,限定該機器網段 ,具體操作如下:

             將restrict 192.168.74.136 mask 255.255.255.0 nomodify notrap行的註釋去掉,並且將網段改為自己本機的網段,我們這裡是 74 網段。當然也可以直接輸入本機的IP地址。

             2) 註釋掉 server 域名配置

             #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

             以上4個server是時間伺服器的域名,這裡不需要連線網際網路,所以將他們註釋掉。

             3) 在該檔案中新增下邊兩行,讓本機和本地硬體時間同步。

             server 127.127.1.0

             fudge 127.127.1.0 stratum 10

             預設的配置檔案裡這兩個是被註釋掉的。NTP伺服器會根據這裡的配置,把自己的時間作為NTP伺服器的時間,即和自己同步。考慮到有的局域網裡不可以訪問外網,所有這裡需要配置該配置項。

           (3) 啟動NTP服務

             輸入命令chkconfig ntpd on即可

             這樣每次機器啟動時,NTP服務都會自動啟動。

         4、配置其他機器的定時時間同步

             實際上配置其他機器的時間伺服器時鐘同步並不難,只需要在對應機器輸入命令:crontab -e即可,然後在會話中輸入0-59/10 * * * * /usr/sbin/ntpdate node-cm01.djt.com

             下面對這行內容的含義進行簡要的解釋:

             (1)其中0-59/10 * * * * 表示每隔10分鐘進行一次時鐘同步,空格隔開的五段是crontab語法格式中時間段,一共5段,其中*號表示任意時間,每一段時間的具體含義如下:

             (2)其中/usr/sbin/ntpdate node-cm01.djt.com表示執行的命令,即本機和主機名為node-cm01.djt.com的機器進行定時的時鐘同步。

             (3)在其他節點進行同樣的操作,然後過10分鐘之後再次檢視3臺機器的時間,如果3臺機器的時間一致就表示實現了時間的定時同步。