CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)

一、环境准备

1、服务器配置和角色规划

IP 地址 主机名 硬件配置 操作系统 安装步骤
10.168.168.1 cm-server 8C16G Centos7 新建
10.168.168.2 agent01 8C16G Centos7 新建
10.168.168.3 agent02 8C16G Centos7 新建
10.168.168.4 agent03 8C16G Centos7 新建
10.168.168.5 agent04 8C16G Centos7 扩容

2、修改主机名

# 在跳板机执行如下ssh,或在各服务器上执行hostnamectl

ssh 10.168.168.1 "hostnamectl set-hostname cm-server"
ssh 10.168.168.2 "hostnamectl set-hostname agent01"
ssh 10.168.168.3 "hostnamectl set-hostname agent02"
ssh 10.168.168.4 "hostnamectl set-hostname agent03"

3、修改 cm-server 节点/etc/hosts

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

# CDN cluster
10.168.168.1   cm-server
10.168.168.2   agent01
10.168.168.3   agent02
10.168.168.4   agent03

4、在 cm-server 节点生成密钥

# 生成密钥,直接回车完成
[root@cm-server ~]# 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:cKlZT6epE6gSsONUfkMut0bJB7d/Xaz0G5i96IpPdOk root@cm-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|         .       |
|.  . o..+ . .    |
| oo + +B.o +  o  |
|o..o O+oS +. + o |
|o. .=.+ .o. = B  |
| .. .o  o. o E + |
|   ..    .+   . +|
|         ..ooo o |
+----[SHA256]-----+

5、分发 cm-server 节点密钥实现免密

# 分发密钥
[root@cm-server ~]# ssh-copy-id 10.168.168.1
输入密码
[root@cm-server ~]# ssh-copy-id 10.168.168.2
输入密码
[root@cm-server ~]# ssh-copy-id 10.168.168.3
输入密码
[root@cm-server ~]# ssh-copy-id 10.168.168.4
输入密码


# 或者通过
将cm-server节点的 ~/.ssh/id_rsa.pub 公钥文件内容 --> 追加到agent节点~/.ssh/authorized_keys文件中,实现免密。

6、检查配置验证免密

# 检查内存
# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "free -g";done
#####10.168.168.1 节点结果如下:#####
              total        used        free      shared  buff/cache   available
Mem:             15           2           6           0           6          12
Swap:             9           0           9
#####10.168.168.2 节点结果如下:#####
              total        used        free      shared  buff/cache   available
Mem:             15           1          12           0           2          13
Swap:             9           0           9
#####10.168.168.3 节点结果如下:#####
              total        used        free      shared  buff/cache   available
Mem:             15           1           9           0           4          13
Swap:             9           0           9
#####10.168.168.4 节点结果如下:#####
              total        used        free      shared  buff/cache   available
Mem:             15           1           8           0           5           3
Swap:             9           0           9


# 检查CPU核数
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "lscpu | head -4 | tail -1";done
#####10.168.168.1 节点结果如下:#####
CPU(s):                8
#####10.168.168.2 节点结果如下:#####
CPU(s):                8
#####10.168.168.3 节点结果如下:#####
CPU(s):                8
#####10.168.168.4 节点结果如下:#####
CPU(s):                8


# 查看系统版本号
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cat /etc/redhat-release";done
#####10.168.168.1 节点结果如下:#####
CentOS Linux release 7.3.1611 (Core)
#####10.168.168.2 节点结果如下:#####
CentOS Linux release 7.3.1611 (Core)
#####10.168.168.3 节点结果如下:#####
CentOS Linux release 7.3.1611 (Core)
#####10.168.168.4 节点结果如下:#####
CentOS Linux release 7.3.1611 (Core)

7、分发 cm-server 节点/etc/hosts

# 备份/etc/hosts
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/hosts /etc/hosts_cdhbak$(date +%Y%m%d)";done


# 分发/etc/hosts
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/hosts $ip:/etc/hosts;done
#####10.168.168.1 节点结果如下:#####
hosts                                                     100%  263   661.3KB/s   00:00
#####10.168.168.2 节点结果如下:#####
hosts                                                     100%  263   630.2KB/s   00:00
#####10.168.168.3 节点结果如下:#####
hosts                                                     100%  263   547.2KB/s   00:00
#####10.168.168.4 节点结果如下:#####
hosts                                                     100%  263   543.0KB/s   00:00

8、在 cm-server 节点准备安装包

记住你安装包在 cm-server 节点存放的路径,等会分发安装包的时候要用。

[root@cm-server CDHsoftware]# pwd
/opt/CDHsoftware
[root@cm-server CDHsoftware]# ll
total 3412036
-rw-r--r-- 1 root root      14041 Aug 30 19:32 allkeys.asc
-rw-r--r-- 1 root root 2082186246 Aug 30 23:53 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root         40 Aug 30 19:32 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r-- 1 root root   10483568 Aug 30 19:46 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 Aug 31 00:44 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root      11488 Aug 30 19:41 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root  194990602 Aug 30 20:45 jdk-8u211-linux-x64.tar.gz
drwxr-xr-x 2 root root        312 Aug 30 21:50 mysql
-rw-r--r-- 1 root root    2385601 Aug 30 19:47 mysql-connector-java-8.0.20.jar

9、关闭防火墙

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl disable firewalld";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl stop firewalld";done

10、关闭 SELINUX

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "setenforce 0";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config";done

11、永久关闭 swap

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "swapoff -a";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i '/.*swap*/s/^/#/' /etc/fstab"|grep 'swap';done
#####10.168.168.1 节点结果如下:#####
#/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
#####10.168.168.2 节点结果如下:#####
#/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
#####10.168.168.3 节点结果如下:#####
#/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0
#####10.168.168.4 节点结果如下:#####
#/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0

12、关闭透明大页面

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/defrag";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/enabled";done

# 在cm-server节点将同一命令添加到 /etc/rc.local 等初始化脚本中
grep -q 'never' /etc/rc.d/rc.local
if [ "$?" == "1" ] ; then
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
        echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
        echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
fi

# 分发cm-server节点的 /etc/rc.d/rc.local到各个节点
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/rc.d/rc.local $ip:/etc/rc.d/rc.local;done

13、安装 python2.7.5

Centos7 默认已经安装了 Python 2.7.5 版本

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "python -V";done
#####10.168.168.1 节点结果如下:#####
Python 2.7.5
#####10.168.168.2 节点结果如下:#####
Python 2.7.5
#####10.168.168.3 节点结果如下:#####
Python 2.7.5
#####10.168.168.4 节点结果如下:#####
Python 2.7.5


#如果系统没有安装,或者没有安装则使用以下命令安装
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y python275";done

14、安装 jdk1.8

# 新建/usr/java/目录
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/java/";done



# 分发jdk-8u211-linux-x64.tar.gz安装包到/usr/java/目录下
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/jdk-8u211-linux-x64.tar.gz $ip:/usr/java/;done
#####10.168.168.1 节点结果如下:#####
jdk-8u211-linux-x64.tar.gz                 100%  186MB  92.9MB/s   00:02
#####10.168.168.2 节点结果如下:#####
jdk-8u211-linux-x64.tar.gz                 100%  186MB  93.0MB/s   00:02
#####10.168.168.3 节点结果如下:#####
jdk-8u211-linux-x64.tar.gz                 100%  186MB  93.0MB/s   00:02
#####10.168.168.4 节点结果如下:#####
jdk-8u211-linux-x64.tar.gz                 100%  186MB  99.9MB/s   00:01


# 在/usr/java/目录下解压jdk-8u211-linux-x64.tar.gz安装
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;tar -xf jdk-8u211-linux-x64.tar.gz";done


# 删除jdk安装包
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;rm -f jdk-8u211-linux-x64.tar.gz";done


# 生成软链。此处我就踩了一个坑,导致agent安装完成后起不来。cdh启用时, 默认会从/usr/java/default路径读取java环境, 所以此处需要做个软链
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;ln -nsf jdk1.8.0_211 /usr/java/default";done


# 备份/etc/profile
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/profile /etc/profile_cdhbak$(date +%Y%m%d)";done


# 增加环境变量参数
[root@cm-server ~]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH


# 分发/etc/profile文件到各个节点上
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/profile $ip:/etc/profile;done


# 引用变量参数,使profile文件生效,并验证java版本
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "source /etc/profile;java -version";done
#####10.168.168.1 节点结果如下:#####
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)
#####10.168.168.2 节点结果如下:#####
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)
#####10.168.168.3 节点结果如下:#####
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)
#####10.168.168.4 节点结果如下:#####
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)

15、在 cm-server 节点安装 MySQL5.7

如果自己有 mysql 库,可以跳过这一步骤。

# 进入mysql安装包目录
[root@cm-server ~]# cd /opt/CDHsoftware/mysql


# 【注意】 安装mysql过程中可能会出现报错失败,大多都是因lib冲突,或者小版本依赖等问题。为了保证安装顺利进行,此处我选择了先解决mysql依赖的问题。
# 以下是常用的解决办法。
# 库冲突:清理mysql-libs库
[root@cm-server mysql]# yum remove mysql-libs
输入y继续
# 缺少依赖:安装libaio autoconf
[root@cm-server mysql]# yum install -y libaio autoconf
# 提示mariadb相关的报错:删除mariadb的lib库
[root@cm-server mysql]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@cm-server mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64


# 安装mysql依赖
[root@cm-server mysql]# rpm -ivh 01_mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@cm-server mysql]# rpm -ivh 02_mysql-community-libs-5.7.29-1.el7.x86_64.rpm
[root@cm-server mysql]# rpm -ivh 03_mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
# 安装mysql-client
[root@cm-server mysql]# rpm -ivh 04_mysql-community-client-5.7.29-1.el7.x86_64.rpm
# 安装mysql-server
[root@cm-server mysql]# rpm -ivh 05_mysql-community-server-5.7.29-1.el7.x86_64.rpm


# 启动mysql并设置开机自启
[root@cm-server mysql]# systemctl start mysqld && systemctl enable mysqld
# 查看新装mysql密码
[root@cm-server mysql]# cat /var/log/mysqld.log | grep password
2023-09-08T09:17:17.083363Z 1 [Note] A temporary password is generated for root@localhost: SqY+aPJoZ5Qh
# 通过日志获取到初始密码  SqY+aPJoZ5Qh


# 用刚刚查到的密码进入mysql(初始密码中可能会有各种符号,命令行登录如果报错,给密码加单引号)
[root@cm-server mysql]# mysql -uroot -p'SqY+aPJoZ5Qh'
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("Cola@2023");
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> exit
Bye


# 查看MySQL版本
[root@cm-server mysql]# mysql -V
mysql  Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using  EditLine wrapper


# 尝试使用新密码123456,重新登陆MySQL
[root@cm-server 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 3
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, 1 row affected (0.00 sec)

mysql> quit;
Bye

16、拷贝 JDBC 驱动包到指定目录

# 新建/usr/share/java/目录
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/share/java/";done

# 分发jdbc启动包到各个节点
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/mysql-connector-java-8.0.20.jar $ip:/usr/share/java/mysql-connector-java.jar;done
#####10.168.168.1 节点结果如下:#####
mysql-connector-java-8.0.20.jar        100% 2330KB  87.5MB/s   00:00
#####10.168.168.2 节点结果如下:#####
mysql-connector-java-8.0.20.jar        100% 2330KB  48.4MB/s   00:00
#####10.168.168.3 节点结果如下:#####
mysql-connector-java-8.0.20.jar        100% 2330KB  30.7MB/s   00:00
#####10.168.168.4 节点结果如下:#####
mysql-connector-java-8.0.20.jar        100% 2330KB  30.7MB/s   00:00

17、配置 NTP 时间同步服务

大部分公司都会在安装系统时统一做好时间同步服务,所以不需要的可以跳过这一步骤。

# 安装NTP
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "myum install ntp";done


# 启动
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "chkconfig ntpd on";done


# 从NTP服务器同步时间。如果没有就将 NTP服务器IP 配置为 cm-server节点的IP。
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "ntpdate -u NTP服务器IP";done
#####10.168.168.1 节点结果如下:#####
 8 Sep 17:45:23 ntpdate[10673]: adjust time server NTP服务器IP offset 0.015031 sec
#####10.168.168.2 节点结果如下:#####
 8 Sep 17:45:30 ntpdate[15808]: adjust time server NTP服务器IP offset -0.004186 sec
#####10.168.168.3 节点结果如下:#####
 8 Sep 17:45:36 ntpdate[9624]: adjust time server NTP服务器IP offset 0.014731 sec
#####10.168.168.4 节点结果如下:#####
 8 Sep 17:45:42 ntpdate[23049]: adjust time server NTP服务器IP offset 0.017200 sec


# 每个节点分别添加crontab任务
*/30 * * * * /usr/sbin/ntpdate -u NTP服务器IP >> /dev/null 2>&1

二、安装 CDH 服务

1、安装 Clouder Manager Server( cm-server )

# 进入安装包所在目录
[root@cm-server CDHsoftware]# cd /opt/CDHsoftware


# 安装cm-server服务
[root@cm-server CDHsoftware]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

[root@cm-server CDHsoftware]# yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

2、安装 Clouder Manager Agent( agent )

# server上分发agent安装包
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
#####10.168.168.1 节点结果如下:#####
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB 120.5MB/s   00:00
#####10.168.168.2 节点结果如下:#####
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  98.6MB/s   00:00
#####10.168.168.3 节点结果如下:#####
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  99.0MB/s   00:00
#####10.168.168.4 节点结果如下:#####
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm       100%   10MB  71.8MB/s   00:00


[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
#####10.168.168.1 节点结果如下:#####
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     100% 1148MB 114.8MB/s   00:10
#####10.168.168.2 节点结果如下:#####
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     100% 1148MB  82.0MB/s   00:14
#####10.168.168.3 节点结果如下:#####
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     100% 1148MB  76.5MB/s   00:15
#####10.168.168.4 节点结果如下:#####
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm     100% 1148MB  94.2MB/s   00:12


# 所有agent节点都需要安装agent服务。grep -E记得去掉cm-server。
#注意:(如果你的集群小,cm-server节点其实也可以装agent服务。我这里主要考虑将cm-server独立部署,虽然浪费了资源,但方便以后出现多集群维护时出现的性能问题。)
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done


# 修改所有agent节点的配置文件,将server_host的配置改为server的主机名 [ 主机名是自己环境的server的host主机名 ]
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/server_host=localhost/server_host=cm-server/g' /etc/cloudera-scm-agent/config.ini";done

# 删除安装包
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done

3、初始化 Clouder Manager 数据库表

[root@cm-server CDHsoftware]# ls -l /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的密码改过这里需要对应改密码
[root@cm-server CDHsoftware]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 10.168.168.1 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.
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.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly! # 到这一步,输出相同,就代表初始化成功了

4、复制 parcel 文件到/opt/cloudera/parcel-repo/

文件放置在/opt/cloudera/parcel-repo/目录下以后,在后续的界面安装各个服务时,在目录中找到版本文件,可以自动匹配到安装文件,无需连外网下载。

[root@cm-server CDHsoftware]# cp /opt/CDHsoftware/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/

[root@cm-server CDHsoftware]# cp /opt/CDHsoftware/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/

5、启动 Clouder Manager Server

# 启动cm-server节点的cm-server服务
[root@cm-server CDHsoftware]# systemctl start cloudera-scm-server

[root@cm-server CDHsoftware]# systemctl enable cloudera-scm-server

6、启动 Clouder Manager Agent

# 启动所有节点agent节点的agent服务
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl start cloudera-scm-agent";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl enable cloudera-scm-agent";done

三、访问 Cloudera Manager 页面

1、Cloudera Manager 登录

http://cm-serverIP:7180/cmf/login (Username:admin Password:admin)

#注意:7180 在高版本 linux 系统和阿里腾讯华为等公有云可能会出现端口为开放的情况,需要在系统上把对应的端口策略打开,才可以访问。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第1张图片

2、欢迎使用 Cloudera Manager

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第2张图片

cdh02

3、接受许可条款

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第3张图片

cdh03

4、选择 CDH 版本

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第4张图片

cdh04

四、集群安装

1、进入集群安装流程

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第5张图片

cdh05

2、设置集群名

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第6张图片

cdh06

3、勾选管理节点

一般安装正确,在当前管理的主机中都会自动带出 agent 安装好的节点。如果你的页面没有带出来,最好检查一下 agent 安装或者配置出现了错误。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第7张图片

4、选择存储库

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第8张图片

cdh08

Parcel 存储仓库设置

Parcel 我用的是默认值,此处什么都没有改动。如果你还有印象,应该发现了前面步骤中新建过/opt/cloudera/parcel-repo/目录,并放置了两个 parcel 安装包。

如果你有需要,可以在自己的服务器上,配置一下本地的远程 Parcel 存储库 URL,此处不做介绍。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第9张图片

5、Install Parcels

Clouder Manager Server 会将 parcel 解压,分发,安装到每一台选择 Clouder Manager Agent 的服务器。节点越多,速度越慢,需要耐心等待进度完成后才可点击下一步。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第10张图片

6、Inspect Cluster

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第11张图片

cdh11

五、群集设置

1、选择大数据服务

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第12张图片

cdh12

2、agent 节点角色分配

角色默认分配

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第13张图片

cdh13

角色手动分配

建议所有人都手动分配一下角色分布,CDH 自动分配的角色在实际测试中会有一些性能问题。特别是 Hue/HiveServer2/Flume 的负载特别高,zk>hdfs 主节点>yarn 的主节点重要程度比较高,尽量不要和 Hue/HiveServer2/Flume 部署在同一台节点上。

Cloudera Management Service:建议独立放在 agent01 上,有条件的环境,这台机器不要放置其他角色的服务;

HiveServer2(或 Hue/Flume ):这些角色非常吃 CPU 和内存,建议不要和 CM 服务放在同一天机器上;例如红框的 HiveServer2 服务是放在 agent03 上。

NN、SNN、RM、JHS:这些都是主节点相关的服务,为了稳定性,建议角色独立分布或者交叉分布,不要放在同一个节点上;例如绿框的 NN\SNN\RN\JHS 服务是交叉放在 agent02 和 agent03 上。

DN、NM:建议所有节点都部署,能最大化分布式架构的有点;例如黄框中的 DN 和 NM,是所有节点都部署。

zookeeper:建议最少防止三台,如果是生产环境,建议划分到 5 台的规模;例如黄框中的 zookeeper 的 server 服务,因为本次我们只有三个节点,最小节点数和所有 agent 节点数量重合。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第14张图片

3、集群数据库设置

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第15张图片

cdh15

如果测试不通过,发现需要的数据库、用户名、密码不存在,可以参照执行的 sql 文件格式,新增库和用户名等。

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;


GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '123456';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY '123456';

4、集群数据目录设置

使用默认分配即可。但也要检查一下,看一下自动分配的数据目录有没有问题,CDH 会自动识别检测你的挂载目录。我的数据盘挂载目录是/data01,希望数据目录全部挂载在此目录下。如果你有多个数据盘,一般会自动出现多个数据目录,也可以自己手动添加。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第16张图片

5、集群组件安装部署

节点越多,安装时间越长,喝口水等一会,别急。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第17张图片

6、集群设置完成

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第18张图片

cdh18

7、完成自动登陆 Clouder Manager 管理界面

没想到搭建完成全是感叹号,满屏告警。我的因为是测试环境,磁盘空间都很小。所以大家就当看不见感叹号,我看了我的告警,都与配置安装无关。我的文档大家放心,都是自己测试验证过的。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第19张图片

六、Clouder Manager 管理界面使用指南

1、检查状态

在这里可以点击相关的告警,打开后可以根据告警优化。如果遇到需要修改配置的,需要重启相关服务或者整个集群的服务。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第20张图片

2、按大数据组件检查

CDH 支持按照组件维度进行检查,另外也可以查看主机和集群的角色分布情况。如果觉得集群分布不合理,可以合理利用主机和角色这两个功能辅助你分析问题。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第21张图片

3、添加新服务

可以在现有集群上安装 kafka 等服务,可以按需添加,cdh 即便是新手操作起来也很简单。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第22张图片

七、集群扩容添加 agent 新节点

1、修改 agent04 的主机名

# 在跳板机执行如下ssh,或在各服务器上执行hostnamectl

ssh 10.168.168.5 "hostnamectl set-hostname agent04"

2、修改 cm-server 节点/etc/hosts

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

# CDN cluster
10.168.168.1   cm-server
10.168.168.2   agent01
10.168.168.3   agent02
10.168.168.4   agent03
10.168.168.5   agent04

3、分发 cm-server 节点密钥实现免密

# 分发密钥
[root@cm-server ~]# ssh-copy-id 10.168.168.5
输入密码


# 或者通过
将cm-server节点的 ~/.ssh/id_rsa.pub 公钥文件内容 --> 追加到agent节点~/.ssh/authorized_keys文件中,实现免密。

4、检查配置验证免密

# 检查内存
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "free -g";done
#####10.168.168.5 节点结果如下:#####
              total        used        free      shared  buff/cache   available
Mem:             15           1          12           0           1           6
Swap:             9           0           9


# 检查CPU核数
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "lscpu | head -4 | tail -1";done
#####10.168.168.5 节点结果如下:#####
CPU(s):                8


# 查看系统版本号
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cat /etc/redhat-release";done
#####10.168.168.5 节点结果如下:#####
CentOS Linux release 7.3.1611 (Core)

5、分发 cm-server 节点/etc/hosts

这次分发是需要分发到整个集群所有节点上,不仅仅是扩容节点。

# 备份所有节点/etc/hosts
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/hosts /etc/hosts_cdhbak$(date +%Y%m%d)";done


# 分发/etc/hosts到所有节点
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'cm-server|agent'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/hosts $ip:/etc/hosts;done
#####10.168.168.1 节点结果如下:#####
hosts                                                     100%  285   769.2KB/s   00:00
#####10.168.168.2 节点结果如下:#####
hosts                                                     100%  285   353.4KB/s   00:00
#####10.168.168.3 节点结果如下:#####
hosts                                                     100%  285   286.2KB/s   00:00
#####10.168.168.4 节点结果如下:#####
hosts                                                     100%  285   407.7KB/s   00:00
#####10.168.168.5 节点结果如下:#####
hosts                                                     100%  285   299.0KB/s   00:00

6、关闭防火墙

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl disable firewalld";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl stop firewalld";done

7、关闭 SELINUX

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "setenforce 0";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config";done

8、永久关闭 swap

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "swapoff -a";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i '/.*swap*/s/^/#/' /etc/fstab"|grep 'swap';done
#####10.168.168.5 节点结果如下:#####
#/dev/mapper/systemvg-swaplv     swap swap    defaults        0 0

9、关闭透明大页面

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/defrag";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "echo never > /sys/kernel/mm/transparent_hugepage/enabled";done


# 分发cm-server节点的 /etc/rc.d/rc.local到各个节点
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/rc.d/rc.local $ip:/etc/rc.d/rc.local;done

10、安装 python2.7.5

Centos7 默认已经安装了 Python 2.7.5 版本

[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "python -V";done
#####10.168.168.5 节点结果如下:#####
Python 2.7.5


#如果系统没有安装,或者没有安装则使用以下命令安装
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y python275";done

11、安装 jdk1.8

# 新建/usr/java/目录
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/java/";done


# 分发jdk-8u211-linux-x64.tar.gz安装包到/usr/java/目录下
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/jdk-8u211-linux-x64.tar.gz $ip:/usr/java/;done#####10.168.168.5 节点结果如下:#####
jdk-8u211-linux-x64.tar.gz    100%  186MB  95.8MB/s   00:01


# 在/usr/java/目录下解压jdk-8u211-linux-x64.tar.gz安装
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;tar -xf jdk-8u211-linux-x64.tar.gz";done


# 删除jdk安装包
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;rm -f jdk-8u211-linux-x64.tar.gz";done


# 生成软链。此处我就踩了一个坑,导致agent安装完成后起不来。cdh启用时, 默认会从/usr/java/default路径读取java环境, 所以此处需要做个软链
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cd /usr/java/;ln -nsf jdk1.8.0_211 /usr/java/default";done


# 备份/etc/profile
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "cp /etc/profile /etc/profile_cdhbak$(date +%Y%m%d)";done


# 分发cm-server节点的/etc/profile文件到各个节点上
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /etc/profile $ip:/etc/profile;done


# 引用变量参数,使profile文件生效,并验证java版本
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "source /etc/profile;java -version";done
#####10.168.168.5 节点结果如下:#####
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)

12、拷贝 JDBC 驱动包到指定目录

# 新建/usr/share/java/目录
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "mkdir -p /usr/share/java/";done

# 分发jdbc启动包到各个节点
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/mysql-connector-java-8.0.20.jar $ip:/usr/share/java/mysql-connector-java.jar;done
#####10.168.168.5 节点结果如下:#####
mysql-connector-java-8.0.20.jar     100% 2330KB  19.2MB/s   00:00

13、配置 NTP 时间同步服务

大部分公司都会在安装系统时统一做好时间同步服务,所以不需要的可以跳过这一步骤。

# 安装NTP
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "myum install ntp";done


# 启动
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "chkconfig ntpd on";done


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "ntpdate -u 10.47.222.240";done
#####10.168.168.5 节点结果如下:#####
12 Sep 11:03:08 ntpdate[12770]: adjust time server 10.47.222.240 offset -0.006283 sec


# 每个节点分别添加crontab任务
*/30 * * * * /usr/sbin/ntpdate -u NTP服务器IP >> /dev/null 2>&1

14、安装 Clouder Manager Agent( agent )

# server上分发agent安装包
[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
#####10.168.168.5 节点结果如下:#####
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm     100%   10MB  39.9MB/s   00:00


[root@cm-server ~]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";scp /opt/CDHsoftware/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm $ip:~/;done
#####10.168.168.5 节点结果如下:#####
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm    100% 1148MB  95.7MB/s   00:12


# 扩容节点都需要安装agent服务,不然cdh页面安装时可能监测不到节点。
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done


# 修改所有agent节点的配置文件,将server_host的配置改为server的主机名 [ 主机名是自己环境的server的host主机名 ]
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "sed -i 's/server_host=localhost/server_host=cm-server/g' /etc/cloudera-scm-agent/config.ini";done


# 删除安装包
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "rm -f cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm";done

15、启动 Clouder Manager Agent

# 启动所有节点agent节点的agent服务
[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl start cloudera-scm-agent";done

[root@cm-server CDHsoftware]# for ip in `cat /etc/hosts|grep -E 'agent04'|awk '{print $1}'`;do echo "#####${ip} 节点结果如下:#####";ssh $ip "systemctl enable cloudera-scm-agent";done

16、管理界面点击 Add Hosts

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第23张图片

cdh23

17、Add Hosts 选择现有集群

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第24张图片

cdh24

18、向集群添加管理节点

如果之前在 agent04 上安装 agent 没有问题,这里都会自动带出来当前管理的主机。如果没有去检查一下 linux 相关的配置是否有问题,在检查一下 agent 服务是否正常启动。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第25张图片

19、Install Parcels

这里没什么可介绍的了,如果你是自己安装前面步骤搭建的,到这里就会发现很熟悉,按照引导继续走就可以了。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第26张图片

20、选择主机模板

选择主机模板,如果长期使用的集群,一般都会有模板的,主要是节点的角色,创建好直接有哪些服务的 node 等等;没有则可以直接选择无,代表加入集群后,手动添加服务实例。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第27张图片

21、等待部署客户端配置

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第28张图片

cdh28

22、在扩容节点添加角色实例

例如在 HDFS 上添加角色实例

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第29张图片

23、在角色实例中自定义部署

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第30张图片

cdh30

24、角色实例选中要部署的节点

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第31张图片

cdh31

25、确认数据目录

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第32张图片

cdh32

26、查看组件扩容的角色

由此可以看到 DN 角色已经存在 HDFS 组件中,但是状态未启动,需要自己启动一下。至此扩容就结束了。

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)_第33张图片

你可能感兴趣的:(大数据运维工作经验,大数据,云原生,cloudera)