大資料實戰(六十八):電商數倉(五十二)Cloudera Manager(三)CM部署準備
1 連線阿里雲伺服器
開啟遠端連線工具進行配置,這裡以CRT為例。
1)新建一個session
2)填寫hostname(填寫公網ip)
2 修改hosts檔案
[root@hadoop001 ~]# vim /etc/hosts 127.0.0.1 localhost localhost ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.17.138.24 hadoop102 hadoop102 172.17.138.25 hadoop103 hadoop103172.17.138.23 hadoop104 hadoop104
3 SSH免密登入
配置hadoop102對hadoop102、hadoop103、hadoop104三臺伺服器免密登入。CDH服務開啟與關閉是通過server和agent來完成的,所以這裡不需要配置SSH免密登入,但是為了我們分發檔案方便,在這裡我們也配置SSH。
1)生成公鑰和私鑰:
[root@hadoop102 .ssh]$ ssh-keygen -t rsa
然後敲(三個回車),就會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
2)將公鑰拷貝到要免密登入的目標機器上
[root@hadoop102 .ssh]$ ssh-copy-id hadoop102
[root@hadoop102 .ssh]$ ssh-copy-id hadoop103
[root@hadoop102 .ssh]$ ssh-copy-id hadoop104
3)重複1和2的操作,配置hadoop103對hadoop102、hadoop103、hadoop104三臺伺服器免密登入。
4叢集同步指令碼
1)在/root目錄下建立bin目錄,並在bin目錄下建立檔案xsync,檔案內容如下:
[root@hadoop102 ~]$ mkdir bin
[root@hadoop102 ~]$ cd bin/
[root@hadoop102 bin]$ vi xsync
在該檔案中編寫如下程式碼
#!/bin/bash #1 獲取輸入引數個數,如果沒有引數,直接退出 pcount=$# if((pcount==0)); then echo no args; exit; fi #2 獲取檔名稱 p1=$1 fname=`basename $p1` echo fname=$fname #3 獲取上級目錄到絕對路徑 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 獲取當前使用者名稱稱 user=`whoami` #5 迴圈 for((host=103; host<105; host++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done
2)修改指令碼 xsync 具有執行許可權
[root@hadoop102 bin]$ chmod 777 xsync
5叢集整體操作指令碼
1)在/root/bin目錄下建立指令碼xcall.sh
[root@hadoop102 bin]$ vim xcall.sh
2)在指令碼中編寫如下內容
#! /bin/bash for i in hadoop102 hadoop103 hadoop104 do echo --------- $i ---------- ssh $i "source /etc/profile ; $*" done
3)修改指令碼執行許可權
[root@hadoop102 bin]$ chmod +x xcall.sh
4)測試
[root@hadoop102 bin]# xcall.sh jps
6叢集程序指令碼
1)在/root/bin目錄下建立指令碼jpsall.sh
[root@hadoop102 bin]$ vim jpsall.sh
2)在指令碼中編寫如下內容
#!/bin/bash
for i in hadoop202 hadoop203 hadoop204
do
echo ===================== $i =====================
ssh $i "source /etc/profile && jps $@ | grep -v Jps"
done
3)修改指令碼執行許可權
[root@hadoop102 bin]$ chmod 777 jpsall.sh
4)測試
[root@hadoop102 bin]# jpsall