一、环境准备
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 系统和阿里腾讯华为等公有云可能会出现端口为开放的情况,需要在系统上把对应的端口策略打开,才可以访问。
2、欢迎使用 Cloudera Manager
cdh02
3、接受许可条款
cdh03
4、选择 CDH 版本
cdh04
四、集群安装
1、进入集群安装流程
cdh05
2、设置集群名
cdh06
3、勾选管理节点
一般安装正确,在当前管理的主机中都会自动带出 agent 安装好的节点。如果你的页面没有带出来,最好检查一下 agent 安装或者配置出现了错误。
4、选择存储库
cdh08
Parcel 存储仓库设置
Parcel 我用的是默认值,此处什么都没有改动。如果你还有印象,应该发现了前面步骤中新建过/opt/cloudera/parcel-repo/目录,并放置了两个 parcel 安装包。
如果你有需要,可以在自己的服务器上,配置一下本地的远程 Parcel 存储库 URL,此处不做介绍。
5、Install Parcels
Clouder Manager Server 会将 parcel 解压,分发,安装到每一台选择 Clouder Manager Agent 的服务器。节点越多,速度越慢,需要耐心等待进度完成后才可点击下一步。
6、Inspect Cluster
cdh11
五、群集设置
1、选择大数据服务
cdh12
2、agent 节点角色分配
角色默认分配
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 节点数量重合。
3、集群数据库设置
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,希望数据目录全部挂载在此目录下。如果你有多个数据盘,一般会自动出现多个数据目录,也可以自己手动添加。
5、集群组件安装部署
节点越多,安装时间越长,喝口水等一会,别急。
6、集群设置完成
cdh18
7、完成自动登陆 Clouder Manager 管理界面
没想到搭建完成全是感叹号,满屏告警。我的因为是测试环境,磁盘空间都很小。所以大家就当看不见感叹号,我看了我的告警,都与配置安装无关。我的文档大家放心,都是自己测试验证过的。
六、Clouder Manager 管理界面使用指南
1、检查状态
在这里可以点击相关的告警,打开后可以根据告警优化。如果遇到需要修改配置的,需要重启相关服务或者整个集群的服务。
2、按大数据组件检查
CDH 支持按照组件维度进行检查,另外也可以查看主机和集群的角色分布情况。如果觉得集群分布不合理,可以合理利用主机和角色这两个功能辅助你分析问题。
3、添加新服务
可以在现有集群上安装 kafka 等服务,可以按需添加,cdh 即便是新手操作起来也很简单。
七、集群扩容添加 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
cdh23
17、Add Hosts 选择现有集群
cdh24
18、向集群添加管理节点
如果之前在 agent04 上安装 agent 没有问题,这里都会自动带出来当前管理的主机。如果没有去检查一下 linux 相关的配置是否有问题,在检查一下 agent 服务是否正常启动。
19、Install Parcels
这里没什么可介绍的了,如果你是自己安装前面步骤搭建的,到这里就会发现很熟悉,按照引导继续走就可以了。
20、选择主机模板
选择主机模板,如果长期使用的集群,一般都会有模板的,主要是节点的角色,创建好直接有哪些服务的 node 等等;没有则可以直接选择无,代表加入集群后,手动添加服务实例。
21、等待部署客户端配置
cdh28
22、在扩容节点添加角色实例
例如在 HDFS 上添加角色实例
23、在角色实例中自定义部署
cdh30
24、角色实例选中要部署的节点
cdh31
25、确认数据目录
cdh32
26、查看组件扩容的角色
由此可以看到 DN 角色已经存在 HDFS 组件中,但是状态未启动,需要自己启动一下。至此扩容就结束了。