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

news2024/11/22 16:26:40

一、环境准备

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,或在各服务器上执行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 系统和阿里腾讯华为等公有云可能会出现端口为开放的情况,需要在系统上把对应的端口策略打开,才可以访问。

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,或在各服务器上执行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

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.coloradmin.cn/o/1006468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Harmonic Drive哈默纳科减速机旋转方向和减速比

Harmonic Drive哈默纳科减速机是一款广泛应用于工业生产中的机械设备&#xff0c;通过减速旋转运动来降低机器的转速和输出功率&#xff0c;从而实现精准的调节和控制。哈默纳科减速机的结构紧凑&#xff0c;体积小&#xff0c;重量轻&#xff0c;安装方便&#xff0c;维护简单…

深入了解 FastAPI 鉴权:掌握前后端身份验证的最佳实践

在构建现代化的 Web 应用程序时&#xff0c;用户身份验证和授权是不可或缺的组成部分。FastAPI 提供了多种方法来实现鉴权&#xff0c;以确保只有授权用户可以访问特定的资源或执行特定的操作。本文将介绍 FastAPI 中的鉴权方法&#xff0c;包括基本概念、实践案例和一些提示和…

企业如何转动自己的命运齿轮,实现数字化转型

企业进行数字化转型&#xff0c;需要熟悉数字化转型相关知识&#xff0c;了解众多前辈企业数字化转型成功或失败的案例&#xff0c;从中提炼出数字化转型的关键要点&#xff0c;在数字化转型的浪潮中&#xff0c;破浪前行。 数字化转型关键因素 1、数据 数据是数字化转型的基…

zeppelin安装python(使用pymysql包)

zeppelin安装python&#xff1a; zeppelin的测试环境安装的python的pymysql包 更改zeppelin的python的interpreters&#xff08;注意需要匹配跟我们的python版本相匹配&#xff09; 参考官网链接&#xff1a;https://zeppelin.apache.org/docs/0.10.1/interpreter/python.htm…

开源软件镜像平台-山东大学镜像站

山东大学镜像站 山东大学镜像站是由山东大学&#xff08;青岛&#xff09;网管会镜像站学生运营团队运营的开源镜像站平台&#xff0c;网站平台专门为技术爱好者、工程师、科研人员等开源爱好者提供给丰富的开源镜软件像资源&#xff0c;以及相关的学习和帮助资料&#xff0c;…

简单聊聊G1垃圾回收算法整个流程 --- 理论篇 -- 上

简单聊聊G1垃圾回收算法整个流程 --- 理论篇 -- 上 G1 是什么为什么需要 G1 G1 GC 流程并发标记根对象枚举安全点 位图标记整体流程初始标记阶段并发标记阶段三色标记法SATB(原始快照)SATB 专用写屏障优化SATB 专用写屏障和多线程执行 最终标记存活对象计数收尾工作转移效率总结…

Python实现自主售卖机

1 问题 在python中我们常常使用到条件判断&#xff0c;if语句时常见的条件判断语句之一。那么如何使用if语句实现根据情况自动选择商品进行售卖呢&#xff1f; 2 方法 根据if语句执行时从上往下执行的特点&#xff0c;使用if语句、dict和list来实现整个流程。 代码清单 1 drink…

jd(按关键字搜索商品)API接口

为了进行电商平台 的API开发&#xff0c;首先我们需要做下面几件事情。 1&#xff09;开发者注册一个账号 2&#xff09;然后为每个jd应用注册一个应用程序键&#xff08;App Key) 。 3&#xff09;下载jdAPI的SDK并掌握基本的API基础知识和调用 4&#xff09;利用SDK接口和…

长胜证券:新股配号是怎么配的?

近年来&#xff0c;股票买卖成为了越来越多人的出资选择&#xff0c;而新股的配号过程也成为了社会热议的论题。那么&#xff0c;新股配号是怎么配的呢&#xff1f;本文将从发行方法、配号规矩和影响要素等多个角度分析&#xff0c;为读者解答这一问题。 发行方法 首先要了解的…

运维必备 | ansible 自动化运维工具之变量的定义与调用

各位亲爱的读者&#xff0c;现在公众号更改了推送规则&#xff0c;如果您需要第一时间看到我们推送的好内容。 一定要记得给公众号星标&#xff0c;经常点赞、在看、转发、分享和留下您的评论 &#xff01; 关注回复【学习交流群】加入【安全开发运维】答疑交流群 请朋友们【多…

全球变暖我们在行动

人类在近一个世纪以来大量使用矿物燃料&#xff08;如煤、石油等&#xff09;&#xff0c;排放出大量的二氧化碳等多种温室气体&#xff0c;这些温室气体是导致全球气候变暖的主要原因。 二氧化碳的生态平衡遭到破坏&#xff0c;大气中二氧化碳含量逐年增加&#xff0c;导致地…

国产理想二极管控制器SCT53600,可替代TI的LM74700

SCT53600是一个理想二极管控制器&#xff0c;与外部n通道MOSFET作为一个理想的二极管整流器&#xff0c;低损耗反向极性保护&#xff0c;以取代肖特基二极管。SCT53600在4V到65V的宽电源电压范围内工作。该设备能够承受并保护负供电电压下的负载&#xff0c;并阻止反向电流&…

【自用】深度学习工作站安装ubuntu 18.04 LTS系统

工作站配置&#xff1a; 自己组装的 主板&#xff1a;华硕Z790P&#xff08;PCIE插槽间距大&#xff0c;可以装双显卡&#xff09; CPU&#xff1a;i5 13600KF 内存&#xff1a;32 G 显卡&#xff1a;GTX 2080 Ti &#xff08;魔改版&#xff0c;22G&#xff09; 存储&#xf…

Python 图形化界面基础篇:添加文本框( Entry )到 Tkinter 窗口

Python 图形化界面基础篇&#xff1a;添加文本框&#xff08; Entry &#xff09;到 Tkinter 窗口 引言什么是 Tkinter 文本框&#xff08; Entry &#xff09;&#xff1f;步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a;创建文本框&…

S7-1200PLC和LED电子看板通信(TCP/IP)

S7-200SMART PLC和LED电子看板通信应用,请查看下面文章链接: SMART 200 PLC UDP通讯应用LED看板_RXXW_Dor的博客-CSDN博客开放式用户通信 (OUC) 库:数据解析:https://rxxw-control.blog.csdn.net/article/details/121424897这篇博客我们主要介绍S7-1200PLC和LED电子看板通…

一位菜鸟参加2023 Google开发者大会后的自卑

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

怎么安全加密文件?文件加密软件哪个安全?

文件加密可以有效地保护个人信息和企业数据安全&#xff0c;避免数据泄露。那么&#xff0c;我们要怎么安全加密文件呢&#xff1f; 文件加密要求 安全 文件加密最基本&#xff0c;也是最重要的要求就是安全&#xff0c;这是避免数据泄露的前提。如果无法保障安全&#xff0…

Freemarker入门

Freemarker官网 Template data-model output - Apache FreeMarker Manualhttps://freemarker.apache.org/docs/dgui_quickstart_basics.html 整体结构 1、在pom文件中导入依赖 <dependencies><!--spring-boot-start启动器--><dependency><groupId>…

UG\NX二次开发 获取曲面上指定位置的面方向 UF_MODL_ask_face_props

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 获取曲面上指定位置的面方向 UF_MODL_ask_face_props 效果: 代码: #include "me.hpp" static void AskFaceDir(tag_t face_id, dou…

分库表数据倾斜的处理让我联想到了AKF模型 | 京东云技术团队

1 背景 最近在做需求的时候需要在一张表中增加一个字段。 这张表情况如下&#xff1a; 1、拆分了多个库多张表 2、库表拆分按表中商户编码字段hash之后取模进行拆分 由于库表拆分按照商户编码&#xff0c;有些大商家的单子数量远远要高于其他普通商家&#xff0c;这样就造…