📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 📣 1.CDH简介
- ✨ 1.1 CDH概述
- ✨ 1.2 功能
- ✨ 1.3 平台架构
- ✨ 1.4 CloudManager
- 📣 2. 安装部署
- ✨ 2.1 服务器配置
- ✨ 2.2 修改主机名
- ✨ 2.3 配置Host解析
- ✨ 2.4 服务器配置
- ✨ 2.5 免密登录
- ✨ 2.6 安装包
- ✨ 2.7 关闭防火墙
- ✨ 2.8 关闭SELINUX
- ✨ 2.9 配置时间同步
- ✨ 2.10 调优系统swappiness参数
- ✨ 2.11 关闭透明大页面
- ✨ 2.12 安装python2.7
- ✨ 2.13 安装jdk1.8
- ✨ 2.14 本地yum的配置
- ✨ 2.15 安装MySQL5.7
- ✨ 2.16 拷贝 JDBC 驱动包
- ✨ 2.17 安装 Clouder Manager Server
- ✨ 2.18 安装Clouder Manager Agent( agent )
- ✨ 2.19 初始化 Clouder Manager 数据库表
- ✨ 2.20 拷贝 Parcel 文件到指定目录
- ✨ 2.21 启动 Clouder Manager Server
- ✨ 2.22 启动 Clouder Manager Agent
- 📣 3.CDH集群安装
- ✨ 3.1 登陆CM
- ✨ 3.2 集群安装
- ✨ 3.3 群集设置
前言
通过将Hadoop与十几个其他关键的开源项目集成,CDH创建了一个功能先进的系统,可帮助您执行端到端的大数据工作流程。📣 1.CDH简介
✨ 1.1 CDH概述
CDH(Cloudera Distribution of Hadoop)是 Cloudera 公司提供的一款基于 Hadoop 的大数据平台。它包含了多个开源组件,如 HDFS、YARN、Spark、Hive、Impala、HBase、Solr 等等,还提供了一些管理和监控工具来帮助用户更方便地部署、配置和管理大数据应用。
CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成,Cloudera创建了一个功能先进的系统,可帮助您执行端到端的大数据工作流程。
简单来说:CDH 是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得集群的安装可以从几天的时间缩短为几个小时,运维人数也会从数十人降低到几个人,极大的提高了集群管理的效率。
https://www.cloudera.com
#安装说明
https://docs.cloudera.com/documentation/enterprise/latest/topics/installation.html
CDH从6.3.3版开始不再免费,6.3.2及以下版本可免费使用
cloudera官网从2021年2月1日起全面移除的非订阅用户的下载链接
✨ 1.2 功能
1)管理:对集群进行管理,例如添加、删除节点等操作
2)监控:监控集群的健康情况,对设置的各种指标和系统的具体运行情况进行全面的监控
3)诊断:对集群出现的各种问题进行诊断,并且给出建议和解决方案
4)集成:多组件可以进行版本兼容间的整合
✨ 1.3 平台架构
- 数据来源层
结构化数据:关系数据库,比如MySQL,即以关系数据库表形式管理的数据。
半结构化:非关系模型的、有基本固定结构模式的数据,例如日志文件、JSON文档等。
非结构化:没有固定模式的数据,如WORD、PDF、PPT、EXL,各种格式的图片、视频等
- 数据传输层
Sqoop:是一种主要用于在 Hadoop 和关系数据库之间传输数据的工具。可以将数据从关系型数据库(RDBMS)(比如MySQL)导入 Hadoop 分布式文件系统(HDFS),在 MP 中转换数据,然后将数据导出回 RDBMS。
DataX:作为一种离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer(读取/写入)插件,通过Framework纳入到整个同步框架中。
flume:是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,是CDH的标配。
logstash:是一个接收、处理、转发日志的工具,ELK当中的L。
Kafka:是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,这边适配于大数据的lambda架构,通过实时topic和离线topic进行一定的区分。
- 数据存储层
HDFS:分布式文件系统,大数据必备核心。
HBase:基于Hadoop之上提供了类似于Bigtable的能力,不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库;另一个不同的是HBase基于列的而不是基于行的模式。
- 数据计算层:
MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算,当然,随着现在计算力的提高,大多都开始走流式计算了。
Spark,flink,Storm:伪实时/实时计算引擎,逐步取代MapReduce
- 数据查询层
Presto:facebook针对hive的优化版,可对250PB以上的数据进行快速地交互式分析,性能好十倍
Kylin:分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,提供亚秒级查询,帮助前端可以更实时的进行纬度分析以及报表查询。
Hive:hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
- 资源管理层
Yarn:是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,使得本身MapReduce不需要再承担资源调度的任务,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。属于绝对的核心服务。
- 配置管理
Zookeeper:是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。相当于整个集群的配置基本都由这位动物园管理员来操作,属于绝对的核心服务。
- 数据展示层
MySQL:关系型数据库,很多量不大的结果报表会走MySQL。CDH本身的节点信息管理也可以走MySQL,稳定的数据库,开源,社区强大,上手快。
ElasticSearch:ELK架构依然是日志分析的利器,ElasticSearch本身也支持OLAP的诸多查询场景,但成本确实是个问题。
Mongo:介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。bson结构的数据格式可以存储比较复杂的数据类型。
ECharts:是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。
Superset:轻量级的数据查询和可视化方案,小规模数据的BI利器,多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。
✨ 1.4 CloudManager
前面了解了cdh为何物?那么是否有相关的可视化操作平台呢?
当然有,也就是现在要讲的CM(Cloudra Manager),它的结构图如下:
CM是一个web操作平台,可以安装CDH然后再安装多种Hadoop框架,它的组件如下:
Clients:客户端,通过web页面和ClouderaManager和服务器进行交互;
API:通过API和ClouderaManagement和服务器进行交互;
Cloudera Repository:存储分发安装包;
Management Server:进行监控和预警;
Database:存储预警信息和配置信息;
Agent:分布在多台服务器,负责配置,启动和停止进程。监控主机。
📣 2. 安装部署
✨ 2.1 服务器配置
IP地址 | 主机名 | 硬件配置 | 操作系统 |
---|---|---|---|
192.168.6.5 | cm-server | 4C 4G | RHEL7.6 |
192.168.6.6 | agent01 | 4C 4G | RHEL7.6 |
192.168.6.7 | agent02 | 4C 4G | RHEL7.6 |
说明:
cm-server用于部署server端、agent端、MySQL5.7
agent01、agent02用于部署集群节点
内存(大):
(企业)在成本允许的情况下一般选择大内存,比如 32GB、64GB、128GB,具体看业务而定,哪个服务对内存要求高,就可以配置的大一点(比如存文件系统元数据的 NameNode 对内存要求就比较高), 从节点 DataNode 内存就没必要那么大,它更需要的是磁盘和 CPU。所以这个需要大家根据每个组件的特点,有针对性的去选择配置。
(学习) 建议计算机的内存至少为 8GB, 最好为 16GB 及以上。主节点内存至少 4GB,从节点内存至少 2GB。
CPU:
(企业)一般选择多路多核的 CPU,比如 2 路 8 核,2 路 10 核,2 路 12 核的 CPU,主频至少 2-2.5GHz。
(学习)由于我们会先使用少量数据进行测试,暂时对 CPU 要求不高,目前电脑 CPU 核数都在 2 核或者 4 核以上,可以够学习使用。
磁盘:
(企业)一般选择大硬盘,因为我们要存储的是大规模的数据,比如可以配置 1-20 块 1-6TB 的硬盘。
(学习)每个节点磁盘分配至少 20G
网络:
(企业)一般都是选择万兆网,因为数据量越大,对网络吞吐率的要求就越高。
(学习)目前先保证能联网且网络稳定就行
✨ 2.2 修改主机名
根据各节点ip地址规划更改对应的主机名
192.168.6.5 # hostnamectl set-hostname cm-server
192.168.6.6 # hostnamectl set-hostname agent01
192.168.6.7 # hostnamectl set-hostname agent02
✨ 2.3 配置Host解析
# cm-server
[root@cm-server ~]# vim /etc/hosts
192.168.6.5 cm-server
192.168.6.6 agent01
192.168.6.7 agent02
# 把cm-server端编辑好的hosts文件分发各个agent
[root@cm-server ~]# scp /etc/hosts agent01:/etc/hosts
[root@cm-server ~]# scp /etc/hosts agent02:/etc/hosts
✨ 2.4 服务器配置
# 查看系统版本号
[root@cm-server ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# 查看内存情况
[root@cm-server ~]# free -g
total used free shared buff/cache available
Mem: 3 0 3 0 0 3
Swap: 3 0 3
# 查看系统核数
[root@cm-server ~]# lscpu | head -4 | tail -1
CPU(s): 2
✨ 2.5 免密登录
# 生成密钥,直接回车完成
[root@cm-server ~]# ssh-keygen -t rsa
# 分发密钥
[root@cm-server ~]# ssh-copy-id 192.168.6.5
[root@cm-server ~]# ssh-copy-id 192.168.6.6
[root@cm-server ~]# ssh-copy-id 192.168.6.7
# 在agent01、agent02 上执行相同操作
通过以下脚本校验SSH免密是否OK
for h in cm-server agent01 agent02;
do
ssh -l root -o StrictHostKeyChecking=no $h date;
done
✨ 2.6 安装包
安装所需各组件已经分享至云盘:
链接:https://pan.baidu.com/s/1fRHFX0oXHF13A9SdAL5UCw
提取码:20nb
将目录下所有包下载并上传至服务器
[root@cm-server ~]# mkdir /software
[root@cm-server software]# ll
total 3412036
-rw-r--r-- 1 root root 14041 Jun 29 23:18 allkeys.asc
-rw-r--r-- 1 root root 2082186246 Jun 29 23:20 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root 40 Jun 29 23:20 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r-- 1 root root 10483568 Jun 29 23:20 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 Jun 29 23:22 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 11488 Jun 29 23:22 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 194990602 Jun 29 23:22 jdk-8u211-linux-x64.tar.gz
-rw-r--r-- 1 root root 2385601 Jun 29 23:22 mysql-connector-java-8.0.20.jar
✨ 2.7 关闭防火墙
各服务器节点均执行
[root@cm-server software]# systemctl disable firewalld
[root@cm-server software]# systemctl stop firewalld
✨ 2.8 关闭SELINUX
# 各服务器节点均执行
[root@cm-server ~]# setenforce 0
setenforce: SELinux is disabled
[root@cm-server ~]# vim /etc/selinux/config
# 将SELINUX置为disabled
SELINUX=disabled
✨ 2.9 配置时间同步
[root@cm-server ~]# vim /etc/chrony.conf
server cm-server iburst
allow 192.168.6.0.0/24
local stratum 10
# 分发chrony配置
[root@cm-server ~]# scp /etc/chrony.conf agent01:/etc/chrony.conf
[root@cm-server ~]# scp /etc/chrony.conf agent02:/etc/chrony.conf
# 各服务器重启chronyd服务和开机自启
[root@cm-server ~]# systemctl restart chronyd && systemctl enable chronyd
[root@agent01 ~]# systemctl restart chronyd && systemctl enable chronyd
[root@agent02 ~]# systemctl restart chronyd && systemctl enable chronyd
# 查看各节点的运行状况
[root@cm-server ~]# for i in cm-server agent01 agent02;do echo $i && ssh $i "chronyc sources";done
cm-server
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* cm-server 10 6 17 50 +154ns[+1317ns] +/- 2274ns
agent01
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* cm-server 11 6 17 45 +22us[ +44us] +/- 299us
agent02
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* cm-server 11 6 17 42 +20us[ +253us] +/- 320us
✨ 2.10 调优系统swappiness参数
vm.swappiness 参数可以调整机器使用内存、交互分区的比例。vm.swappiness
的取值范围在 0-100 之间,当 vm.swappiness 为 0 时,
表示最大限度地使用物理内存,而后使用 swap 空间;当 swappiness 为 100 时,
表示最大限度地使用 swap 空间,把内存中的数据及时搬运到 swap 空间中去。
# 各服务器节点均执行
[root@cm-server software]# vim /etc/sysctl.conf
vm.swappiness = 0
echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p
cat /proc/sys/vm/swappiness
✨ 2.11 关闭透明大页面
大多数 Linux 平台都包含一个称为透明大页面的功能,该功能与 Hadoop 工作节点的交互很差,并且会严重降低性能。
查看透明大页是否启用,[always] never 表示已启用,always [never] 表示已禁用。
# 各服务器节点均执行
[root@cm-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cm-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
cat >> /etc/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
EOF
chmod +x /etc/rc.d/rc.local
grep Huge /proc/meminfo
HugePages_Total:显示0 表示设置成功
✨ 2.12 安装python2.7
Centos7 默认已经安装了 Python 2.7.5 版本,
如果系统没有安装,或者没有安装则使用以下命令安装:
[root@cm-server software]# python -V
Python 2.7.5
注意:各节点执行相同操作 如果系统没有安装python执
yum install -y python275
✨ 2.13 安装jdk1.8
# 进入安装包目录
[root@cm-server ~]# cd /software/
# 解压java安装包
[root@cm-server software]# tar -xf jdk-8u211-linux-x64.tar.gz
# 创建目录,将java移至使用目录
[root@cm-server software]# mkdir -p /usr/java
[root@cm-server software]# mv jdk1.8.0_211 /usr/java/default
# 增加环境变量参数
[root@cm-server software]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 引用变量参数,使profile文件生效
[root@cm-server software]# source /etc/profile
# 验证java
[root@cm-server software]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
# 其它各agent节点创建java文件目录
[root@agent01 ~]# mkdir -p /usr/java
[root@agent02 ~]# mkdir -p /usr/java
# 分发java目录
[root@cm-server software]# scp -r /usr/java/default agent01:/usr/java/
[root@cm-server software]# scp -r /usr/java/default agent02:/usr/java/
# 在各agent节点上增加环境变量参数并source 引用
vim /etc/profile # 增加环境变量
source /etc/profile # 引用配置文件
✨ 2.14 本地yum的配置
# 安装的过程中,需要很多依赖包,所以建议配置本地yum
上传镜像文件并挂载
mount -o loop /software/CentOS-7-x86_64-DVD-1810.iso /mnt
配置yum
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/* /tmp/confbak/yumbak/ >/dev/null 2>&1
cat >> /etc/yum.repos.d/my.repo <<EOF
[Server]
name=oracle_install
baseurl=file:///mnt/
gpgcheck=0
enabled=1
EOF
✨ 2.15 安装MySQL5.7
# 安装缺少的依赖:安装libaio autoconf
[root@cm-server software]# yum install -y libaio autoconf
# 提示mariadb相关的报错:删除mariadb的lib库
[root@cm-server software]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@cm-server software]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
# 进入mysql安装包目录
[root@cm-server ~]# cd /software/mysql
# 安装mysql依赖
[root@cm-server mysql]# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@cm-server mysql]# rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
[root@cm-server mysql]# rpm -ivh mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
# 安装mysql-client
[root@cm-server mysql]# rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
# 安装mysql-server
[root@cm-server mysql]# rpm -ivh 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-06-29T16:09:25.192741Z 1 [Note] A temporary password is generated for root@localhost: oCqwq,Zk#7__
# 通过日志获取到初始密码 oCqwq,Zk#7__
# 用刚刚查到的密码进入mysql(初始密码中可能会有各种符号,命令行登录如果报错,给密码加单引号)
[root@cm-server opt]# mysql -uroot -p'oCqwq,Zk#7__'
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("Jeames@123");
Query OK, 0 rows affected, 1 warning (0.00 sec)
# 更改mysql密码策略
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
# 设置简单好记的密码
mysql> set password=password("123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)
# 切到msyql系统库
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
# 查询user表
mysql> select user, host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
# 修改user表,把Host表内容修改为% , 扩大数据库登录范围
mysql> update user set host="%" where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 刷新更改配置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 退出MySQL
mysql> quit;
Bye
# 查看MySQL版本
[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 4
Server version: 5.7.29 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 导入cdh_db.sql文件;一些服务的库、用户名和密码,可以先自行修改密码再执行
mysql> source cdh_db.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit;
Bye
✨ 2.16 拷贝 JDBC 驱动包
# cm-server上拷贝
[root@cm-server mysql]# cd /software/
[root@cm-server software]# mkdir -p /usr/share/java/
[root@cm-server software]# cp mysql-connector-java-8.0.20.jar /usr/share/java/mysql-connector-java.jar
# 在各agent创建目录
[root@agent01 ~]# mkdir -p /usr/share/java/
[root@agent02 ~]# mkdir -p /usr/share/java/
# 将cm-server的jdbc驱动包分发各agent节点/usr/share/java/目录
[root@cm-server ~]# cd /software/
[root@cm-server software]# scp mysql-connector-java-8.0.20.jar agent01:/usr/share/java/mysql-connector-java.jar
[root@cm-server software]# scp mysql-connector-java-8.0.20.jar agent02:/usr/share/java/mysql-connector-java.jar
✨ 2.17 安装 Clouder Manager Server
cm-server上安装
[root@cm-server software]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@cm-server software]# yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
✨ 2.18 安装Clouder Manager Agent( agent )
# server上分发agent安装包
[root@cm-server software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent01:~/
[root@cm-server software]# scp cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent02:~/
[root@cm-server software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent01:~/
[root@cm-server software]# scp cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent02:~/
# 所有节点上安装agent服务
[root@agent01 ~]# yum localinstall -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@agent01 ~]# yum localinstall -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
# 所有节点上更改agent配置文件
[root@cm-server ~]# vim /etc/cloudera-scm-agent/config.ini
# 将server_host的配置改为server的主机名
server_host=cm-server
✨ 2.19 初始化 Clouder Manager 数据库表
[root@cm-server software]# ll /opt/cloudera/cm/schema/scm_prepare_database.sh
-rwxr-xr-x 1 root root 12450 Sep 25 2019 /opt/cloudera/cm/schema/scm_prepare_database.sh
# 注意替换ip地址,如果创建时,cdh_db.sql的密码改过这里需要对应改密码
[root@cm-server software]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 192.168.6.5 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!
✨ 2.20 拷贝 Parcel 文件到指定目录
[root@cm-server software]# cp /software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
[root@cm-server software]# cp /software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/
注:文件放置在/opt/cloudera/parcel-repo/目录下以后,在后续的界面安装各个服务时,在目录中找到版本文件,可以自动匹配到安装文件,无需连外网下载。
✨ 2.21 启动 Clouder Manager Server
# cm-server
[root@cm-server software]# systemctl start cloudera-scm-server
[root@cm-server software]# systemctl enable cloudera-scm-server
[root@cm-server software]# systemctl status cloudera-scm-server
● cloudera-scm-server.service - Cloudera CM Server Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-06-30 00:37:16 CST; 20s ago
Main PID: 5843 (java)
CGroup: /system.slice/cloudera-scm-server.service
└─5843 /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.ja...
Jun 30 00:37:16 cm-server systemd[1]: Starting Cloudera CM Server Service...
Jun 30 00:37:16 cm-server systemd[1]: Started Cloudera CM Server Service.
Jun 30 00:37:16 cm-server cm-server[5843]: JAVA_HOME=/usr/java/default
Jun 30 00:37:16 cm-server cm-server[5843]: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Jun 30 00:37:18 cm-server cm-server[5843]: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set ...on logging.
Jun 30 00:37:19 cm-server cm-server[5843]: Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is...nnecessary.
Jun 30 00:37:22 cm-server cm-server[5843]: 00:37:22.570 [main] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Table 'scm.CM_VERSION' doesn't exist
Hint: Some lines were ellipsized, use -l to show in full.
##错误日志
tail -200f /var/log/cloudera-scm-server/cloudera-scm-server.log
✨ 2.22 启动 Clouder Manager Agent
# 所有节点
[root@cm-server software]# systemctl start cloudera-scm-agent
[root@cm-server software]# systemctl enable cloudera-scm-agent
[root@agent02 ~]# systemctl status cloudera-scm-agent
● cloudera-scm-agent.service - Cloudera Manager Agent Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-06-30 00:39:16 CST; 16s ago
Main PID: 5660 (cmagent)
CGroup: /system.slice/cloudera-scm-agent.service
└─5660 /usr/bin/python2 /opt/cloudera/cm-agent/bin/cm agent
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread agent INFO Re-using pre-existing directory: /var/run/cloudera-scm-agent/flood
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread agent INFO Re-using pre-existing directory: /var/run/cloudera-scm-agent/supervisor/include
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread agent INFO Re-using pre-existing directory: /var/run/cloudera-scm-agent/cgroups
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread agent INFO Re-using pre-existing directory: /var/run/cloudera-scm-agent/process
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread tmpfs INFO Successfully mounted tmpfs at /var/run/cloudera-scm-agent/process
Jun 30 00:39:17 agent02 cm[5660]: [30/Jun/2023 00:39:17 +0000] 5660 MainThread logging INFO Logging to /var/log/cloudera-scm-agent/cloudera-scm-agent.log
Jun 30 00:39:21 agent02 cm[5660]: status_server: added process group
Jun 30 00:39:21 agent02 cm[5660]: flood: added process group
Jun 30 00:39:21 agent02 cm[5660]: /opt/cloudera/cm-agent/lib/python2.7/site-packages/psutil/_pslinux.py:477: RuntimeWarning: dirty, writeback, mapped, commit_limit me...ere set to 0
Jun 30 00:39:21 agent02 cm[5660]: warnings.warn(msg, RuntimeWarning)
Hint: Some lines were ellipsized, use -l to show in full.
📣 3.CDH集群安装
✨ 3.1 登陆CM
http:cm-serverIP:7180 ( admin / admin )
登陆后,有欢迎页面,无需操作,点击继续即可;
Accept License一些条款协议,点击同意,继续即可;
✨ 3.2 集群安装
设置集群名称
勾选管理节点
选择存储库
CDH集群安装中,选择版本后,Clouder Manager Server 会将 parcel 解压,分发,安装到每一台选择 Clouder Manager Agent 的服务器;需要耐心等待进度完成后才可点击下一步。
一般结果中都会告诉每个问题的处理办法,照着操作即可,最后再重新运行检查
✨ 3.3 群集设置
如果发现需要的数据库、用户名、密码不存在,可以参照执行的sql文件格式,新增库和用户名等
等待各组件安装完成
最后,点击完成后,即可跳转至管理界面了,后续使用以及维护全部围绕管理界面来完成,以及检查监控集群各组件运行情况