大數據項目之_15_幫助文檔_NTP 配置時間服務器+Linux 集群服務群起腳本+CentOS6.8 升級到 python 到 2.7


一、NTP 配置時間服務器1.1、檢查當前系統時區1.2、同步時間1.3、檢查軟件包1.4、修改 ntp 配置文件1.5、重啟 ntp 服務1.6、設置定時同步任務二、Linux 集群服務群起腳本2.1、介紹2.2、編寫腳本三、CentOS6.8 升級到 python 到 2.73.1、環境准備3.2、安裝 Python2.7


一、NTP 配置時間服務器

  當集群中各個節點的時間不同步,誤差超過某個范圍時,會導致一些集群的服務無法正常進行,這時我們應該想辦法做一個定時同步集群所有節點時間的任務。

1.1、檢查當前系統時區

選擇某台機器,作為集群中時間服務器的主節點,然后其他機器同步該機器的時間即可。但是在開始這步操作之前,我們需要確保所有節點的時區是統一的:

date -R
顯示類似如下格式:
Sat, 07 Oct 2017 12:44:58 +0800

尖叫提示:如果顯示的時區不是+0800,你可以刪除localtime文件夾后,再關聯一個正確時區的軟鏈接過去:

# rm -rf /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

1.2、同步時間

如果懷疑自己本地機器的時間與標准時間相差很多,建議使用時間服務器的主節點同步一下網絡時間:

ntpdate pool.ntp.org

1.3、檢查軟件包

1) 后邊我們要使用 ntp 服務,所以在使用該服務之前,建議檢查一下 ntp 服務是否正確安裝

# rpm -qa | grep ntp

顯示如下:

ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-10.el6.centos.x86_64

2) 如果沒有 ntp 服務,可使用 yum 命令進行安裝

# yum -y install ntp

1.4、修改 ntp 配置文件

我們需要修改 ntp 服務的配置文件,關閉網絡時間的同步:

# vim /etc/ntp.conf

對如下內容做出修改:

# Hosts on local network are less restricted.
# 授權192.168.25.0網段上的所有機器可以從這台機器上查詢和同步時間
restrict 192.168.25.0 mask 255.255.255.0 nomodify notrap

# 當該節點丟失網絡連接,依然可以作為時間服務器為集群中的其他節點提供時間同步
server 127.127.1.0
fudge  127.127.1.0 stratum 10

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#集群在局域網中,不使用其他的網絡時間
#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

尖叫提示
nomodify:客戶端不能使用 ntpc 與 ntpq 修改服務器的時間參數
notrap:不提供 trap 遠程時間登錄的功能

1.5、重啟 ntp 服務

CentOS6:

# service ntpd restart
# chkconfig ntpd on

CentOS7:

# systemctl restart ntpd.service
# systemctl enable ntpd.service

1.6、設置定時同步任務

1) 首先在其他節點上關閉 ntp 服務
CentOS6:

# service ntpd stop
# chkconfig ntpd off

CentOS7:

# systemctl stop ntpd.service
# systemctl disable ntpd.service

查看 ntp 進程 id:

# pgrep ntpd

2) 其他節點手動同步第一台時間服務器的時間進行測試

# ntpdate hadoop102

3) 其他節點制定計划任務,周期性同步時間

# crontab -e
# .------------------------------------------minute(0~59)
# | .----------------------------------------hours(0~23)
# | | .--------------------------------------day of month(1~31)
# | | | .------------------------------------month(1~12)
# | | | | .----------------------------------day of week(0~6)
# | | | | | .--------------------------------command
# | | | | | |
# | | | | | |
*/10 * * * * /usr/sbin/ntpdate hadoop102

4) 重啟定時任務
CentOS6:

# service crond restart

CentOS7:

# systemctl restart crond.service

5) 查看任務

# crontab -l

二、Linux 集群服務群起腳本

2.1、介紹

寫這個腳本,純粹是為了偷懶,方便,不然用 linux 干嘛?
目的:在一台服務器上執行一個腳本,啟動所有集群節點上的相關進程。
描述:Resourcemanager、HMaster 和 Zookeeper 等節點可能需要登錄到節點所在機器啟動。
在開始之前呢,我們先了解一些概念:
登錄 Shell:粗放來講,就是你手動使用 CRT 登錄 Linux 的時候。此種情形,系統環境信息的讀取順序:/etc/profile、~/.bash_profile、~/.bash_login、~/.profile
非登錄Shell:粗放來講,就是你使用 ssh 登錄某台機器的時候。此種情形,系統環境信息的讀取順序:/etc/bash.bashrc、~/.bashrc
解決方案:了解完 Shell 這個小知識之后,你應該明白 ssh 到遠程節點啟動的對應服務的時候,其實是沒有 JDK 配置的環境的,所以,在每台機器中先執行:

$ cat /etc/profile >> ~/.bashrc

將我們配置的 profile 變量追加到 .bashrc 中即可。

2.2、編寫腳本

1) 啟動腳本:start-cluster.sh

#!/bin/bash
echo "================        開始啟動所有節點服務      ==========="
echo "================        正在啟動 Zookeeper      ==========="
for i in atguigu@hadoop102 atguigu@hadoop103 atguigu@hadoop104
do
    ssh $i 'source /etc/profile;/opt/module/zookeeper-3.4.10/bin/zkServer.sh start'
done

echo "================        正在啟動 HDFS           ==========="
ssh atguigu@hadoop102 '/opt/module/hadoop-2.7.2/sbin/start-dfs.sh'

echo "================        正在啟動 YARN           ==========="
ssh atguigu@hadoop103 '/opt/module/hadoop-2.7.2/sbin/start-yarn.sh'

echo "================    hadoop102 節點正在啟動 JobHistoryServer   ==========="
ssh atguigu@hadoop102 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver'

2) 停止腳本:stop-cluster.sh

#!/bin/bash
echo "================        開始停止所有節點服務      ==========="
echo "================    hadoop102 節點正在停止 JobHistoryServer ==========="
ssh atguigu@hadoop102 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh stop historyserver'

echo "================        正在停止 YARN           ==========="
ssh atguigu@hadoop103 '/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh'

echo "================        正在停止 HDFS           ==========="
ssh atguigu@hadoop102 '/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh'

echo "================        正在停止 Zookeeper      ==========="
for i in atguigu@hadoop102 atguigu@hadoop103 atguigu@hadoop104
do
    ssh $i 'source /etc/profile;/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop'
done

3) 查看進程腳本:util.sh

#!/bin/bash
for i in atguigu@hadoop102 atguigu@hadoop103 atguigu@hadoop104
do
    echo "================      $i 的所有進程       ==========="
    ssh $i '/opt/module/jdk1.8.0_144/bin/jps'
done

尖叫提示:腳本學會之后,如果后續再有新的節點需要添加到群起任務中,可以自行解決之。
尖叫提示:啟動與停止注意腳本的執行順序,而且停止腳本的停止過程應該是啟動過程的倒序。

三、CentOS6.8 升級到 python 到 2.7

  由於 HUE 框架依賴 python2.7,而 CentOS7 以下的系統使用的都是 python2.6,並且 CentOS6.8 的 yum 也是依賴 2.6,所以升級過程會稍微繁瑣,特此予以講解。

3.1、環境准備

1) 查看 python 版本

# python –v

2) 安裝 GCC 與 wget,用於編譯源碼包與資源下載

# yum install gcc gcc-c++
# yum install wget

3) 安裝 xz 工具,用於解壓 tar.xz 格式文件

# wget http://down1.chinaunix.net/distfiles/xz-5.0.3.tar.bz2
# cd xz-5.0.3
# ./configure
# make
# make install

3.2、安裝 Python2.7

1) 下載解壓 Python 安裝包

# wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz
# xz -d Python-2.7.11.tar.xz
# tar -xf Python-2.7.11.tar

2) 編譯安裝 python

# cd Python-2.7.11
# ./configure
# make
# make install

3) 將系統指向的 python 從 2.6 修改到 2.7 版本

# /usr/local/bin/python2.7 -V    
# mv /usr/bin/python  /usr/bin/python.bak 
# ln -s /usr/local/bin/python2.7 /usr/bin/python

4) 將 yum 對 python 的引用重新指向 python2.6 (即:yum 使用 2.6,系統用 2.7)

# vi /usr/bin/yum
修改:
!/usr/bin/python
改為:
!/usr/bin/python2.6

5) 檢查 python 版本,檢查 yum 是否可用

# python -V


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM