1. 程式人生 > 實用技巧 >Cloudera Manager安裝部署

Cloudera Manager安裝部署

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

注意:ip填寫的是私有ip,做完後ping一下。

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,檔案內容如下:

#!/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、關閉防火牆

阿里雲的防火牆預設是關閉的,但是他有web防火牆,我們需要將7180,3306,8888,8889,9870等埠開放。

7、關閉SELINUX(阿里雲環境可跳過)

安全增強型Linux(Security-Enhanced Linux)簡稱SELinux,它是一個 Linux 核心模組,也是Linux的一個安全子系統。為了避免安裝過程出現各種錯誤,建議關閉,有如下兩種關閉方法:

1)臨時關閉(不建議使用)

[root@hadoop102 ~]# setenforce 0

但是這種方式只對當次啟動有效,重啟機器後會失效。

2)永久關閉(建議使用)

修改配置檔案/etc/selinux/config

[root@hadoop102 ~]# vim /etc/selinux/config

將SELINUX=enforcing 改為SELINUX=disabled

SELINUX=disabled

3)同步/etc/selinux/config配置檔案

[root@hadoop102 ~]# xsync /etc/selinux/config

4)重啟hadoop102、hadoop103、hadoop104主機

[root@hadoop102 ~]# reboot
[root@hadoop103 ~]# reboot
[root@hadoop104 ~]# reboot

8、配置NTP時鐘同步(阿里雲環境可跳過)

1)NTP伺服器配置

1)NTP伺服器配置

[root@hadoop102 ~]# vi /etc/ntp.conf
①註釋掉所有的restrict開頭的配置
②修改#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
為restrict 192.168.1.102 mask 255.255.255.0 nomodify notrap
③將所有server配置進行註釋
④新增下面兩行內容
server 127.127.1.0
fudge 127.127.1.0 stratum 10

2)啟動NTP服務 service ntpd start

[root@hadoop102 ~]# service ntpd start

3)NTP客戶端配置(在agent主機上進行配置hadoop103,hadoop104)

[root@hadoop103 ~]# vi /etc/ntp.conf

①註釋所有restrict和server配置
②新增server 192.168.1.102

4)手動測試

[root@hadoop103~]# ntpdate 192.168.1.102

顯示如下內容為成功:

17 Jun 15:34:38 ntpdate[9247]: step time server 192.168.1.102 offset 77556618.173854 sec

如果顯示如下內容需要先關閉ntpd:

17 Jun 15:25:42 ntpdate[8885]: the NTP socket is in use, exiting

5)啟動ntpd並設定為開機自啟(每個節點hadoop102,hadoop103,hadoop104)

[root@hadoop103 ~]#  chkconfig ntpd on
[root@hadoop103 ~]#  service ntpd start

6)使用群發date命令檢視結果

9、安裝jdk

1)在hadoop102建立/usr/java目錄

[root@hadoop102 opt]# mkdir /usr/java

2SecureCRTjdk-8u144-linux-x64.tar.gz上傳至hadoop102,並解壓/usr/java目錄下。

[root@hadoop102 ~]#tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/

3)配置JAVA_HOME環境變數

1)開啟/etc/profile檔案

[root@hadoop102 software]$ vim /etc/profile

profile檔案末尾新增JDK路徑

#JAVA_HOME

export JAVA_HOME=/usr/java/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

2)讓修改後的檔案生效

[root@hadoop102 jdk1.8.0_144]$ source /etc/profile

4)測試JDK是否安裝成功

[root@hadoop102 jdk1.8.0_144]# java -version

java version "1.8.0_144"

5)將hadoop102JDK和環境變數分發到hadoop103、hadoop104兩臺主機

[root@hadoop102 opt]# xsync /usr/java/

[root@hadoop102 opt]# xsync /etc/profile

分別在hadoop103、hadoop104上source一下

[root@hadoop103 ~]$ source /etc/profile

[root@hadoop104 ~]# source /etc/profile

10、安裝MySQL及其驅動(hadoop102上操作

1)解除安裝mariadb

rpm -qa | grep mariadb | xargs rpm -e --nodeps

2)下載msql5.7 yum

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

3)安裝yum

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

4)安裝mysql

yum -y install mysql-server

5)啟動mysql

service mysqldstart

6)檢視root使用者密碼

grep 'temporary password' /var/log/mysqld.log d9V,K1..6e.Q

7)執行mysql初始化指令碼

mysql_secure_installation

8)輸入新密碼(至少12個字元,至少包含一個大寫字母有,一個小寫字母,一個數字,一個特殊字元)

9)配置root使用者遠端訪問許可權

mysql> grant all privileges on *.* to 'root' @'%' identified by 'Atguigu.123456';

mysql> flush privileges;

10)為CM安裝mysql驅動

1)將mysql-connector-java-5.1.27-bin.jar拷貝到/usr/share/java路徑下,並重新命名

[root@hadoop102 java]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar

2)分發驅動

xsync /usr/share/java

11、CM安裝

Cloudera Manager預設採用yum安裝,對於能夠聯網的使用者,可直接線上安裝,十分快捷方便。對於網路不暢的使用者,則可搭建本地yum源,進行安裝。

1)叢集規劃

節點

hadoop102

hadoop103

hadoop104

服務

cloudera-scm-server

cloudera-scm-agent

cloudera-scm-agent

cloudera-scm-agent

2)下載線上yum源配置檔案(線上yum安裝)

cd /etc/yum.repos.d

wget https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/cloudera-manager.repo

3)分發線上yum源配置檔案(線上yum安裝)

xsync/etc/yum.repos.d/cloudera-manager.repo

4)搭建本地yum源(離線yum安裝)(若網路環境暢通,此步可直接跳過

1)將壓縮包cloudera-repos.tar.gz拷貝到叢集中的一臺節點,解壓到/var/www/html路徑下

[root@hadoop102 ~]# tar -zxvf cloudera-repos.tar.gz -C /var/www/html

2)進入/var/www/html/路徑,並開啟http服務

[root@hadoop102 ~]# cd /var/www/html/

[root@hadoop102 html]# python -m SimpleHTTPServer 8900

3)瀏覽器訪問該節點的8900埠,檢視http服務是否正常開啟

4)編輯本地yum源配置檔案

vim/etc/yum.repos.d/cloudera-manager.repo

檔案內容如下

[cloudera-manager]

name=cloudera-manager

baseurl=http://hadoop102:8900/cloudera-repos/cm6/6.2.1/redhat7/yum/

enabled=1

gpgcheck=0

5)分發該配置檔案

xsync /etc/yum.repos.d/cloudera-manager.repo

4)安裝CMserver及agent

[root@hadoop102~]# yum -yinstall cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

[root@hadoop103~]# yum -yinstall cloudera-manager-agent cloudera-manager-daemons

[root@hadoop104~]# yum -yinstall cloudera-manager-agent cloudera-manager-daemons

12、修改CM配置檔案(三臺,不要用xsync同步

vim /etc/cloudera-scm-agent/config.ini

13、MySQL中建庫

1)建立各元件需要的資料庫

mysql> CREATE DATABASE scmDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE amonDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hueDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE hiveDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE sentryDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

mysql> CREATE DATABASE oozieDEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

2)為CM配置資料庫(自帶指令碼)

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root Atguigu.123456

14、啟動CM服務

1)啟動服務節點hadoop102

[root@hadoop102 ~]# systemctl start cloudera-scm-server

2)啟動工作節點:hadoop102、hadoop103、hadoop104

[root@hadoop102 ~]# systemctl start cloudera-scm-agent

[root@hadoop103 ~]# systemctl start cloudera-scm-agent

[root@hadoop104 ~]# systemctl start cloudera-scm-agent

3檢視Server啟動日誌

[root@hadoop102 cm]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

出現StartedJettyserver字樣及表明啟動成功。

4)訪問http://hadoop102:7180(初始使用者名稱、密碼均為admin

15、關閉CM服務

1)關閉工作節點:hadoop102、hadoop103、hadoop104

[root@hadoop102 ~]# systemctl stop cloudera-scm-agent

[root@hadoop103 ~]# systemctl stop cloudera-scm-agent

[root@hadoop104 ~]# systemctl stop cloudera-scm-agent

2)關閉服務節點hadoop102

[root@hadoop102 ~]# systemctl stopcloudera-scm-server