1. 程式人生 > 實用技巧 >大資料實戰(六十八):電商數倉(五十二)Cloudera Manager(三)CM部署準備

大資料實戰(六十八):電商數倉(五十二)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 hadoop103
172.17.138.23 hadoop104 hadoop104

3 SSH免密登入

配置hadoop102hadoop102hadoop103hadoop104三臺伺服器免密登入。CDH服務開啟與關閉是通過serveragent來完成的,所以這裡不需要配置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重複12操作,配置hadoop103hadoop102hadoop103hadoop104三臺伺服器免密登入。

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