天天看點

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

第一章:CDH簡介

CDH概念

​ CDH是Cloudera的100%開源平台發行版,包括Apache Hadoop,專為滿足企業需求而建構。CDH提供開箱即用的企業使用所需的一切。通過将Hadoop與十幾個其他關鍵的開源項目內建,Cloudera建立了一個功能先進的系統,可幫助您執行端到端的大資料工作流程。

簡單來說:CDH 是一個擁有叢集自動化安裝、中心化管理、叢集監控、報警功能的一個工具(軟體),使得叢集的安裝可以從幾天的時間縮短為幾個小時,運維人數也會從數十人降低到幾個人,極大的提高了叢集管理的效率。

Cloudera Manager的功能

1)管理:對叢集進行管理,例如添加、删除節點等操作

2)監控:監控叢集的健康情況,對設定的各種名額和系統的具體運作情況進行全面的監控

3)診斷:對叢集出現的各種問題進行診斷,并且給出建議和解決方案

4)內建:多元件可以進行版本相容間的整合

cloudera manager 架構原理

cloudera manager的核心是管理伺服器,該伺服器承載管理控制台的Web伺服器和應用程式邏輯,并負責安裝軟體,配置,啟動和停止服務,以及管理上的服務運作群集。

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

Cloudera Manager Server由以下幾個部分組成:

Agent:安裝在每台主機上。該代理負責啟動和停止的過程,拆包配置,觸發裝置和監控主機。

Management Service:由一組執行各種監控,警報和報告功能角色的服務。

Database:存儲配置和監視資訊。通常情況下,多個邏輯資料庫在一個或多個資料庫伺服器上運作。

Cloudera Repository:軟體由Cloudera 管理分布存儲庫。

Clients:是用于與伺服器進行互動的接口。

Admin Console :基于Web的使用者界面與管理者管理叢集和Cloudera管理。

API :與開發人員建立自定義的Cloudera Manager應用程式的API。

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

第二章:伺服器節點安裝部署

一. 環境準備

1.機器準備

外網位址 内網位址 主機名 硬體配置 作業系統
8.130.178.205 172.28.54.188 cm-server 4C16G Centos7
8.130.176.96 172.28.54.189 agent01 4C16G Centos7
8.130.178.100 172.28.54.190 agent02 4C16G Centos7
8.130.173.93 172.28.54.191 agent03 4C16G Centos7

cm-server用于部署server端、agent端、MySQL5.7

agent01、agent02、agent03用于部署叢集節點( agent做實驗2個即可 )

2.修改主機名

根據各節點ip位址規劃更改對應的主機名

# 分别在各伺服器上執行hostnamectl
172.28.54.188  # hostnamectl set-hostname cm-server
172.28.54.189  # hostnamectl set-hostname agent01
172.28.54.190  # hostnamectl set-hostname agent02
172.28.54.191  # hostnamectl set-hostname agent03
           

3.配置檢查

# 檢視系統版本号
[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
# 檢視記憶體情況
[[email protected] ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:             15           0          14           0           0          14
Swap:             0           0           0
# 檢視系統核數
[[email protected] ~]# lscpu | head -4 | tail -1
CPU(s):                4

# 伺服器均為CentOS7 | 4C | 16G
           

4.配置免密登入

# 生成密鑰,直接回車完成
[[email protected] ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:lIkOqB1t3HvO2hJpxZjRWaroPT6d0qRSyJLa9NVtcvg [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|       . o.      |
|   + ...o+       |
|  o = o==        |
| o o +o+o        |
|. .o..++So       |
|  +.o.*+= +      |
| + o.+o*o*       |
|. . o.=++ E      |
|     .o+.        |
+----[SHA256]-----+
# 分發密鑰
[[email protected] ~]# ssh-copy-id 172.28.54.188
[[email protected] ~]# ssh-copy-id 172.28.54.189
[[email protected] ~]# ssh-copy-id 172.28.54.190
[[email protected] ~]# ssh-copy-id 172.28.54.191

# 在agent01、agent02、agent03 上執行相同操作( 建議第一次免密設定完成後手動全部ssh登陸一次 )
           

5.配置hosts解析

[[email protected] ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# CDH
172.28.54.188   cm-server
172.28.54.189   agent01
172.28.54.190   agent02
172.28.54.191   agent03

# 把cm-server端編輯好的hosts檔案分發各個agent
[[email protected] ~]# scp /etc/hosts agent01:/etc/hosts
[[email protected] ~]# scp /etc/hosts agent02:/etc/hosts
[[email protected] ~]# scp /etc/hosts agent03:/etc/hosts
           

6.安裝包準備

安裝所需各元件已經分享至雲盤:

連結:https://pan.baidu.com/s/155VuPtJC8v7SC_HfzbSZ4Q

提取碼:aa0c

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

将目錄下所有包下載下傳并上傳至伺服器

[[email protected] software]# ll
total 3412032
-rw-r--r-- 1 root root 2082186246 Sep 13 11:58 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root         40 Sep 13 11:44 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r-- 1 root root   10483568 Sep 13 11:45 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 Sep 13 11:55 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root      11488 Sep 13 11:55 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root  194990602 Sep 13 13:36 jdk-8u211-linux-x64.tar.gz
drwxr-xr-x 2 root root       4096 Sep 13 13:34 mysql
-rw-r--r-- 1 root root    2385601 Sep 13 11:55 mysql-connector-java-8.0.20.jar
           

7.關閉防火牆

# 各伺服器節點均執行
[[email protected] software]# systemctl disable firewalld
[[email protected] software]# systemctl stop firewalld

           

8.關閉SELINUX

# 各伺服器節點均執行
[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled

[[email protected] ~]# vim /etc/selinux/config
# 将SELINUX置為disabled
SELINUX=disabled

           

8.配置時間同步服務

[[email protected] ~]# vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# 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

server cm-server iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
# allow 192.168.0.0/16
allow 172.28.54.0/24

# Serve time even if not synchronized to a time source.
local stratum 10

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

# 分發chrony配置
[[email protected] ~]# scp /etc/chrony.conf agent01:/etc/chrony.conf 
[[email protected] ~]# scp /etc/chrony.conf agent02:/etc/chrony.conf 
[[email protected] ~]# scp /etc/chrony.conf agent03:/etc/chrony.conf

# 各伺服器重新開機chronyd服務和開機自啟
[[email protected] ~]# systemctl restart chronyd && systemctl enable chronyd
[[email protected] ~]# systemctl restart chronyd && systemctl enable chronyd
[[email protected] ~]# systemctl restart chronyd && systemctl enable chronyd
[[email protected] ~]# systemctl restart chronyd && systemctl enable chronyd

# 檢視各節點的運作狀況
[[email protected] ~]# for i in cm-server agent01 agent02 agent03;do echo $i && ssh $i "chronyc sources";done
cm-server
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    10   6   377   569     -0ns[-3188ns] +/- 4623ns

agent01
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11   8   377   146  +3692ns[+5089ns] +/-  538us

agent02
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11  10   377   112  -1420ns[-1934ns] +/-  583us

agent03
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11  10   377   139  -2145ns[-2926ns] +/-  556us
           

9.調優系統swappiness參數

​ vm.swappiness 參數可以調整機器使用記憶體、互動分區的比例。vm.swappiness 的取值範圍在 0-100 之間,當 vm.swappiness 為 0 時,表示最大限度地使用實體記憶體,而後使用 swap 空間;當 swappiness 為 100 時,表示最大限度地使用 swap 空間,把記憶體中的資料及時搬運到 swap 空間中去。

# 各伺服器節點均執行
[[email protected] software]# vim /etc/sysctl.conf 
vm.swappiness = 0
           

10.關閉透明大頁面

​ 大多數 Linux 平台都包含一個稱為透明大頁面的功能,該功能與 Hadoop 工作節點的互動很差,并且會嚴重降低性能。

檢視透明大頁是否啟用,[always] never 表示已啟用,always [never] 表示已禁用。

# 各伺服器節點均執行
[[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

           

11.安裝python2.7

Centos7 預設已經安裝了 Python 2.7.5 版本,如果系統沒有安裝,或者沒有安裝則使用以下指令安裝:

[[email protected] software]# python -V
Python 2.7.5

# 各節點執行相同操作 如果系統沒有安裝python執行(yum install -y python275)
           

12.安裝jdk1.8

# 進入安裝包目錄
[[email protected] ~]# cd /opt/software/
# 解壓java安裝包
[[email protected] software]# tar -xf jdk-8u211-linux-x64.tar.gz
# 建立目錄,将java移至使用目錄
[[email protected] software]# mkdir -p /usr/java
[[email protected] software]# mv jdk1.8.0_211 /usr/java/default
[[email protected] software]# ll /usr/java/default/
total 26000
drwxr-xr-x 2 10 143     4096 Apr  2  2019 bin
-r--r--r-- 1 10 143     3244 Apr  2  2019 COPYRIGHT
drwxr-xr-x 3 10 143     4096 Apr  2  2019 include
-rw-r--r-- 1 10 143  5213268 Mar 14  2019 javafx-src.zip
drwxr-xr-x 5 10 143     4096 Apr  2  2019 jre
drwxr-xr-x 5 10 143     4096 Apr  2  2019 lib
-r--r--r-- 1 10 143       44 Apr  2  2019 LICENSE
drwxr-xr-x 4 10 143     4096 Apr  2  2019 man
-r--r--r-- 1 10 143      159 Apr  2  2019 README.html
-rw-r--r-- 1 10 143      424 Apr  2  2019 release
-rw-r--r-- 1 10 143 21105019 Apr  2  2019 src.zip
-rw-r--r-- 1 10 143   112748 Mar 14  2019 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 10 143   149725 Apr  2  2019 THIRDPARTYLICENSEREADME.txt
# 增加環境變量參數
[[email protected] software]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

# 引用變量參數,使profile檔案生效
[[email protected] software]# source /etc/profile
# 驗證java
[[email protected] software]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

# 其它各agent節點建立java檔案目錄
[[email protected] ~]# mkdir -p /usr/java
[[email protected] ~]# mkdir -p /usr/java
[[email protected] ~]# mkdir -p /usr/java

# 分發java目錄
[[email protected] software]# scp -r /usr/java/default agent01:/usr/java/
[[email protected] software]# scp -r /usr/java/default agent02:/usr/java/
[[email protected] software]# scp -r /usr/java/default agent03:/usr/java/

# 在各agent節點上增加環境變量參數并source 引用
vim /etc/profile # 增加環境變量
source /etc/profile # 引用配置檔案
           

13.安裝MySQL5.7

# 進入mysql安裝包目錄
[[email protected] ~]# cd /opt/software/mysql
# 安裝mysql依賴
[[email protected] mysql]# rpm -ivh 01_mysql-community-common-5.7.29-1.el7.x86_64.rpm
[[email protected] mysql]# rpm -ivh 02_mysql-community-libs-5.7.29-1.el7.x86_64.rpm 
[[email protected] mysql]# rpm -ivh 03_mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm 
# 安裝mysql-client
[[email protected] mysql]# rpm -ivh 04_mysql-community-client-5.7.29-1.el7.x86_64.rpm
# 安裝mysql-server
[[email protected] mysql]# rpm -ivh 05_mysql-community-server-5.7.29-1.el7.x86_64.rpm 

# 【注意】 安裝過程中如果出現報錯失敗;大多都是因lib沖突,或者小版本依賴等問題,可以根據報錯做如下一些常用的依賴清理和依賴處理
# 以下羅列常用的解決辦法
# 庫沖突:清理mysql-libs庫
# [[email protected] software]# yum remove mysql-libs
# 缺少依賴:安裝libaio autoconf
# [[email protected] software]# yum install -y libaio autoconf
# 提示mariadb相關的報錯:删除mariadb的lib庫
# [[email protected] software]# rpm -qa | grep mariadb
# mariadb-libs-5.5.56-2.el7.x86_64
# [[email protected] software]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

# 啟動mysql并設定開機自啟
[[email protected] mysql]# systemctl start mysqld && systemctl enable mysqld
# 檢視新裝mysql密碼
[[email protected] mysql]# cat /var/log/mysqld.log | grep password
2021-09-13T07:56:47.599484Z 1 [Note] A temporary password is generated for [email protected]: (PN3pKgLz/pX
# 通過日志擷取到初始密碼  (PN3pKgLz/pX

# 用剛剛查到的密碼進入mysql(初始密碼中可能會有各種符号,指令行登入如果報錯,給密碼加單引号)
[[email protected] mysql]# mysql -uroot -p'(PN3pKgLz/pX'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 設定複雜密碼(由于mysql密碼政策,此密碼必須足夠複雜)
mysql> set password=password("[email protected]");
Query OK, 0 rows affected, 1 warning (0.00 sec)

# 更改mysql密碼政策
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

# 設定簡單好記的密碼
mysql> set password=password("123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)

# 切到msyql系統庫
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

# 查詢user表
mysql> select user, host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

# 修改user表,把Host表内容修改為% , 擴大資料庫登入範圍
mysql> update user set host="%" where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

# 重新整理更改配置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 退出MySQL
mysql> quit;
Bye

# 檢視MySQL版本
[[email protected] mysql]# mysql -V
mysql  Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using  EditLine wrapper

# 嘗試使用新密碼123456,重新登陸MySQL
[[email protected] mysql]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 導入cdh_db.sql檔案;一些服務的庫、使用者名和密碼,可以先自行修改密碼再執行
mysql> source cdh_db.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> quit;
Bye

           

14.拷貝 JDBC 驅動包到指定目錄

# cm-server上拷貝
[[email protected] mysql]# cd /opt/software/
[[email protected] software]# mkdir -p /usr/share/java/
[[email protected] software]# cp mysql-connector-java-8.0.20.jar /usr/share/java/mysql-connector-java.jar

# 在各agent建立目錄
[[email protected] ~]# mkdir -p /usr/share/java/
[[email protected] ~]# mkdir -p /usr/share/java/
[[email protected] ~]# mkdir -p /usr/share/java/

# 将cm-server的jdbc驅動包分發各agent節點/usr/share/java/目錄
[[email protected] ~]# cd /opt/software/
[[email protected] software]# scp mysql-connector-java-8.0.20.jar agent01:/usr/share/java/mysql-connector-java.jar 
[[email protected] software]# scp mysql-connector-java-8.0.20.jar agent02:/usr/share/java/mysql-connector-java.jar 
[[email protected] software]# scp mysql-connector-java-8.0.20.jar agent03:/usr/share/java/mysql-connector-java.jar 
           

二. 安裝 Clouder Manager Server( cm-server )

# cm-server上安裝
[[email protected] software]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[[email protected] software]# yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
           

三. 安裝Clouder Manager Agent( agent )

# server上分發agent安裝包
[[email protected] software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent01:~/
[[email protected] software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent02:~/
[[email protected] software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent03:~/
[[email protected] software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent01:~/
[[email protected] software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent02:~/
[[email protected] software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent03:~/

# 所有上安裝agent服務,這裡沒有全部貼出來,注意agent節點均需要安裝
[[email protected] ~]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[[email protected] ~]# yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

# 所有節點上更改agent配置檔案
[[email protected] ~]# vim /etc/cloudera-scm-agent/config.ini
# 将server_host的配置改為server的主機名 [ 主機名是自己環境的server的host主機名 ]
server_host=cm-server
           

四. 初始化 Clouder Manager 資料庫表

[[email protected] software]# ll /opt/cloudera/cm/schema/scm_prepare_database.sh
-rwxr-xr-x 1 root root 12450 Sep 25  2019 /opt/cloudera/cm/schema/scm_prepare_database.sh
# 注意替換ip位址,如果建立時,cdh_db.sql的密碼改過這裡需要對應改密碼
[[email protected] software]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 172.28.54.188 mysql scm scm 123456
JAVA_HOME=/usr/java/default
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/default/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
log4j:ERROR Could not find value for key log4j.appender.A
log4j:ERROR Could not instantiate appender named "A".
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[2021-09-13 17:36:20,877] INFO     0[main] - com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection(DbCommandExecutor.java) - Successfully connected to database.
All done, your SCM database is configured correctly!  # 表示初始化成功
           

五. 拷貝 Parcel 檔案到指定目錄

[[email protected] software]# cp /opt/software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
[[email protected] software]# cp /opt/software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/
           

檔案放置在/opt/cloudera/parcel-repo/目錄下以後,在後續的界面安裝各個服務時,在目錄中找到版本檔案,可以自動比對到安裝檔案,無需連外網下載下傳。

六. 啟動 Clouder Manager Server

# cm-server
[[email protected] software]# systemctl start cloudera-scm-server
[[email protected] software]# systemctl enable cloudera-scm-server
           

七. 啟動 Clouder Manager Agent

# 所有節點cm-server和各agent
[[email protected] software]# systemctl start cloudera-scm-agent
[[email protected] software]# systemctl enable cloudera-scm-agent
           

第三章:頁面通路&叢集安裝

1.登陸URL

http:cm-serverIP:7180 ( admin / admin )

[注意]:如果部署用的是阿裡雲等公有雲安裝,需要在對應的公有雲上把對應的端口政策打開,才可以通路。

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

登陸後,有歡迎頁面,無需操作,點選繼續即可;

Accept License一些條款協定,點選同意,繼續即可;

2.選擇CM版本

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

選擇版本後,再次有歡迎頁面,無需操作,點選繼續即可;

3.設定叢集名稱

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

4.勾選管理節點

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

5.CDH parcel 版本

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

選擇版本後,Clouder Manager Server 會将 parcel 解壓,分發,安裝到每一台選擇 Clouder Manager Agent 的伺服器;需要耐心等待進度完成後才可點選下一步。

6.檢查伺服器部署環境

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

一般結果中都會告訴每個問題的處理辦法,照着操作即可,最後再重新運作檢查

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

7.選擇部署元件

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

8.叢集各節點角色配置設定

預設即可,需要優化性能或者最佳合理配置設定可自行更改

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

9.叢集資料庫配置

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

如果發現需要的資料庫、使用者名、密碼不存在,可以參照執行的sql檔案格式,新增庫和使用者名等

【注意】:如果提示JDBC driver cannot be found. Unable to find the JDBC database jar on host : xxxxx,說明jdbc的驅動包沒有分發到各節點去,這個必須要各節點都有,容易忽略。

10.叢集資料存儲目錄設定

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

11.叢集元件安裝部署

等待各元件安裝完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

12.完成安裝

看到彙總頁:服務已安裝,配置并在叢集中運作,則完成安裝

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

13.登陸 Clouder Manager 管理界面

點選完成後,即可跳轉至管理界面了,後續使用以及維護全部圍繞管理界面來完成,以及檢查監控叢集各元件運作情況

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

第四章:Clouder Manager 管理界面使用介紹

1.首頁檢視整體運作狀态

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

點選辨別,可以看到詳細的内容,例如:存在隐患 : 9 DataNodes are required for the erasure coding policies: RS-6-3-1024k. The number of DataNodes is only 3. ( 節點數過少,這裡隻是實驗,可以無視,真正生産環境節點數量較多 )

2.添加服務

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

例如新增flume服務,勾選flume,然後選擇角色配置設定部署節點,繼續

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

最後部署彙總,點選完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

啟動新增的服務

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

等待啟動步驟完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

服務添加完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

3.叢集新增節點&新增叢集

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

4.使用者管理頁面操作記錄

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

5.導出服務配置檔案

各個服務的配置檔案無需登陸伺服器,管理頁面點選對應服務中可以導出,十分便利

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

點選下載下傳,可以将配置檔案壓縮包下載下傳至本地,解壓檢視

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

6.各節點角色

在主機頁 -> 角色中可以檢視到叢集中

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

7.添加頁面管理使用者&使用者權限管理

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

給普通使用者賦予對應權限

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

切換至普通使用者登陸檢視,使用者大多對于叢集的操作均已被隐藏

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

8.備份快照

示例:

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

快照備份可以是hdfs等不同的存儲媒體進行備份。

9.叢集監控檢視

在主機頁 - > 所有主機 點選對應主機可以跳轉至對應主機伺服器的各名額監控頁

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

各監控項檢視

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

10.打開各元件的UI界面操作

舉例HDFS-UI:
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )
舉例HUE-UI:
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )
CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

第五章:cdh叢集新增agent節點安裝部署

1.新增agent節點agent04

2.将cm-server密鑰分發至新agent04

# cm-server
[[email protected] ~]# ssh-copy-id 172.28.54.192
           

3.修改hosts解析新增節點&分發

# cm-server
[[email protected] ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# CDH
172.28.54.188   cm-server
172.28.54.189   agent01
172.28.54.190   agent02
172.28.54.191   agent03
172.28.54.192   agent04

# 分發新hosts
[[email protected] ~]# for i in agent01 agent02 agent03 agent04;do scp /etc/hosts $i:/etc/hosts;done
           

4.新節點關閉防火牆

[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# systemctl stop firewalld
           

5.新節點關閉SELINUX

[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled

[[email protected] ~]# vim /etc/selinux/config
# 将SELINUX置為disabled
SELINUX=disabled
           

6.新節點配置時間同步服務

# cm-server
[[email protected] ~]# scp /etc/chrony.conf agent04:/etc/chrony.conf
# agent04
[[email protected] ~]# systemctl restart chronyd && systemctl enable chronyd
[[email protected] ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11   6    17    21   +990ns[ -714ns] +/-   91ms
[[email protected] ~]# 
           

7.新節點調優系統swappiness參數

[[email protected] ~]# vim /etc/sysctl.conf
vm.swappiness = 0
           

8.新節點關閉透明大頁面

[[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
           

9.确認節點上已安裝python

[[email protected] ~]# python -V
Python 2.7.5
           

10.新節點java安裝

# 建立java檔案目錄
[[email protected] ~]# mkdir -p /usr/java
# cm-server 直接從server端拷貝
[[email protected] ~]# scp -r /usr/java/default agent04:/usr/java/
# 環境變量profile
[[email protected] ~]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 引用生效
[[email protected] ~]# source /etc/profile
           

11.拷貝 JDBC 驅動包

# cm-server
[[email protected] ~]# scp /opt/software/mysql-connector-java-8.0.20.jar agent03:/usr/share/java/mysql-connector-java.jar
           

12.安裝Clouder Manager Agent

# 将安裝包從cm-server分發過去
[[email protected] ~]# cd /opt/software/
[[email protected] software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent04:~/
[[email protected] software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent04:~/
# 在agent04上執行安裝
[[email protected] ~]# ll
total 1185864
-rw-r--r-- 1 root root   10483568 Sep 14 15:14 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 Sep 14 15:14 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[[email protected] ~]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[[email protected] ~]# yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
# 修改agent服務的配置檔案指向server
[[email protected] ~]# vim /etc/cloudera-scm-agent/config.ini
# 将server_host的配置改為server的主機名 [ 主機名是自己環境的server的host主機名 ]
server_host=cm-server
           

13.啟動新agent服務

[[email protected] ~]# systemctl start cloudera-scm-agent
[[email protected] ~]# systemctl enable cloudera-scm-agent
           

14.頁面進行後續添加

找到Add Hosts

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

選擇添加到哪個叢集并繼續

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

選擇目前管理的主機,會将還未加入到叢集的新節點羅列出來

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

Install Parcels和檢查主機正确性操作與之前相同,這裡跳過

選擇主機模闆,如果長期使用的叢集,一般都會有模闆的,主要是節點的角色,建立好直接有哪些服務的node等等;沒有則可以直接選擇無,代表加入叢集後,手動添加服務執行個體。

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

等待部署用戶端基本配置和環境點選完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

将服務執行個體部署至新agent

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

在添加時根據自己需求即可,例如DataNode

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

添加agent04的角色,是以建議長期使用建立要給模闆最佳,相對友善

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )

至此,添加一個新叢集節點,并設定新服務執行個體全部完成

CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )CDH簡介及CDH部署、原理和使用介紹( 版本6.3.1 )