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

一、环境准备

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

IP 地址主机名硬件配置操作系统安装步骤
10.168.168.1cm-server8C16GCentos7新建
10.168.168.2agent018C16GCentos7新建
10.168.168.3agent028C16GCentos7新建
10.168.168.4agent038C16GCentos7新建
10.168.168.5agent048C16GCentos7扩容

2、修改主机名

# 在跳板机执行如下ssh,或在各服务器上执行hostnamectlssh 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; thenecho never > /sys/kernel/mm/transparent_hugepage/enabled
fiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho 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.29Copyright (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 -ADatabase 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 系统和阿里腾讯华为等公有云可能会出现端口为开放的情况,需要在系统上把对应的端口策略打开,才可以访问。

cdh01

2、欢迎使用 Cloudera Manager

cdh02

cdh02

3、接受许可条款

cdh03

cdh03

4、选择 CDH 版本

cdh04

cdh04

四、集群安装

1、进入集群安装流程

cdh05

cdh05

2、设置集群名

cdh06

cdh06

3、勾选管理节点

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

cdh07

4、选择存储库

cdh08

cdh08

Parcel 存储仓库设置

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

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

cdh09

5、Install Parcels

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

cdh10

6、Inspect Cluster

cdh11

cdh11

五、群集设置

1、选择大数据服务

cdh12

cdh12

2、agent 节点角色分配

角色默认分配

cdh13

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 节点数量重合。

cdh14

3、集群数据库设置

cdh15

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,希望数据目录全部挂载在此目录下。如果你有多个数据盘,一般会自动出现多个数据目录,也可以自己手动添加。

cdh16

5、集群组件安装部署

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

cdh17

6、集群设置完成

cdh18

cdh18

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

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

cdh19

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

1、检查状态

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

cdh20

2、按大数据组件检查

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

cdh21

3、添加新服务

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

cdh22

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

1、修改 agent04 的主机名

# 在跳板机执行如下ssh,或在各服务器上执行hostnamectlssh 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

cdh23

17、Add Hosts 选择现有集群

cdh24

cdh24

18、向集群添加管理节点

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

cdh25

19、Install Parcels

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

cdh26

20、选择主机模板

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

cdh27

21、等待部署客户端配置

cdh28

cdh28

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

例如在 HDFS 上添加角色实例

cdh29

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

cdh30

cdh30

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

cdh31

cdh31

25、确认数据目录

cdh32

cdh32

26、查看组件扩容的角色

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

cdh33

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138028.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七天学会C语言-第五天(函数)

1. 调用有参函数 有参函数是一种接受输入参数&#xff08;参数值&#xff09;并执行特定操作的函数。通过向函数传递参数&#xff0c;你可以将数据传递给函数&#xff0c;让函数处理这些数据并返回结果。 例1&#xff1a;编写一程序&#xff0c;要求用户输入4 个数字&#xf…

Innodb底层原理与Mysql日志机制

MySQL内部组件结构 Server层 主要包括连接器、词法分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函数等&#xff09;&#xff0c;所有跨存储引擎的功能都在这一层实现&#xff0c…

超级详细 SQL 优化大全

1、MySQL的基本架构 1&#xff09;MySQL的基础架构图 左边的client可以看成是客户端&#xff0c;客户端有很多&#xff0c;像我们经常你使用的CMD黑窗口&#xff0c;像我们经常用于学习的WorkBench&#xff0c;像企业经常使用的Navicat工具&#xff0c;它们都是一个客户端。右…

Python实现Redis缓存MySQL数据并支持数据同步

简介 本文讲讲如何用Redis做MySQL的读缓存&#xff0c;提升数据库访问性能。 MySQL是一种很常用的关系型数据库&#xff0c;用于持久化数据&#xff0c;并存放在磁盘上。但如果有大数据量的读写&#xff0c;靠MySQL单点就会捉襟见肘&#xff0c;尽管可以在MySQL本身做优化&am…

Qt httpclient

记录一次Qt中处理https请求的操作 构造函数 get onFinished函数&#xff1a; onCompleted是对外的信号&#xff0c;这里接收的数据主要是文本类 post form post json Form 与 Json的差别是http header 的设置 文件下载处理 这里与服务器有个约定&#xff0c;文件长度不能小于…

springboot整合sentinel完成限流

1、直入正题&#xff0c;下载sentinel的jar包 1.1 直接到Sentinel官网里的releases下即可下载最新版本&#xff0c;Sentinel官方下载地址&#xff0c;直接下载jar包即可。不过慢&#xff0c;可能下载不下来 1.2 可以去gitee去下载jar包 1.3 下载完成后&#xff0c;进行打包…

68、Spring Data JPA 的 方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)

1、方法名关键字查询&#xff08;全自动&#xff0c;既不需要提供sql语句&#xff0c;也不需要提供方法体&#xff09; 2、Query查询&#xff08;半自动&#xff1a;提供 SQL 或 JPQL 查询&#xff09; 3、自定义查询&#xff08;全手动&#xff09; ★ 方法名关键字查询&…

简明 SQL 组合查询指南:掌握 UNION 实现数据筛选

在SQL中&#xff0c;组合查询是一种将多个SELECT查询结果合并的操作&#xff0c;通常使用UNION和UNION ALL两种方式。 UNION 用于合并多个查询结果集&#xff0c;同时去除重复的行&#xff0c;即只保留一份相同的数据。UNION ALL 也用于合并多个查询结果集&#xff0c;但不去除…

3D模型格式转换工具HOOPS Exchange与iBase-t的Solumina集成:支持用户查询与编辑模型

iBase-t是一家软件公司&#xff0c;致力于简化复杂产品的构建和维护。iBase-t 于 1986 年在南加州成立&#xff0c;提供的解决方案可确保全球范围内制造、质量以及维护、修理和大修 (MRO) 运营的数字连续性。iBase-t 的 Solumina 制造运营平台是一种云原生解决方案&#xff0c;…

PX4 通过 Vision 实现 Position、Altitude 和 Offboard 模式

本文通过 VINS-Fusion 的里程计信息为 PX4 提供视觉信息&#xff0c;从而达到 视觉定高和定点 的目的 主要工作为创建一个将 vins 里程计信息发布给 Mavros 的 /mavros/vision_pose/pose 话题 首先创建一个工作空间 mkdir -p ~/catkin_ws/src/vision_to_mavros/src/ cd ~/ca…

贝叶斯滤波计算4d毫米波聚类目标动静属性

机器人学中有些问题是二值问题&#xff0c;对于这种二值问题的概率评估问题可以用二值贝叶斯滤波器binary Bayes filter来解决的。比如机器人前方有一个门&#xff0c;机器人想判断这个门是开是关。这个二值状态是固定的&#xff0c;并不会随着测量数据变量的改变而改变。就像门…

企业架构LNMP学习笔记46

PHP测试连接代码&#xff1a; php代码测试使用memcached&#xff1a; 示例代码&#xff1a; <?php //实例化类 $mem new memcached(); //调用连接memcached方法 注意连接地址和端口号 $mem->addServer(192.168.17.114,11211); //存数据 var_dump($mem->set(name,l…

python基于轻量级卷积神经网络模型开发构建眼疾识别系统

常见的眼疾包括但不限于以下几种&#xff1a; 白内障&#xff1a;白内障是眼睛晶状体变得模糊或不透明&#xff0c;导致视力下降。它通常与年龄相关&#xff0c;但也可以由其他因素引起&#xff0c;如遗传、外伤、糖尿病等。 青光眼&#xff1a;青光眼是一组引起视神经损伤的眼…

【Hadoop】HDFS API 操作大全

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1…

DC/DC开关电源学习笔记(十)Buck降压电路仿真及工程应用实例

(十)Buck降压电路仿真及工程应用实例 1. 仿真应用实例1.1 案例一1.2 案例二2. 工程应用实例2.1 数字DC/DC应用实例2.2 模拟DC/DC应用实例1. 仿真应用实例 1.1 案例一 仿真技术要求输入:输入电压30~90V,输出电压28V,输出电流最大10A,开关频率100KHz。我们按照参数极限工…

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试&#xff1a; node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;它可以帮助开发者…

Qt(day5)

思维导图 将登录操作和数据库绑定 mywnd.h #ifndef MYWND_H #define MYWND_H#include <QMainWindow> #include<QLabel> #include<QLineEdit> #include<QPushButton> #include<QDebug> #include<QMessageBox> #include"second.h&qu…

零基础转行网络安全可以做什么工作,内附网络安全自学路线

一直在说网络安全行业好就业、薪资高、前景也好&#xff0c;但是大家对网络安全这个行业具体做什么工作可能还一知半解。所以今天来跟大家聊聊&#xff0c;网络安全学完可以找到什么样的工作&#xff0c;顺便把不同岗位的不同技术要求也说一下。 【点击文章末尾卡片&#xff0…

Spring Security 对请求的处理流程

文章目录 前言系统启动Spring Security 对请求的处理总结 前言 分析Spring Security的核心原理&#xff0c;可以从以下几个方面进行&#xff1a; 系统启动的时候Spring Security做了哪些事情&#xff1f;发起一次请求后Spring Security做了哪些事情&#xff1f; 系统启动 当…

Puppeteer基础入门、常见应用、利用谷歌插件编写Puppeteer脚本

前言 Puppeteer已经听说过很多次了&#xff0c;也见过一些与之相关的文章。但是一直没怎么研究过&#xff0c;现在来简单学习一下。 简介 Puppeteer 是一个 Node 库&#xff0c;它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headles…