文章目录
- @[toc]
- 一、CM简介
- 1、ClouderaManager的概念
- 2、ClouderaManager的功能
- 3、ClouderaManager的架构
- 二、准备清单
- 1、部署步骤
- 2、集群规划
- 3、软件环境准备
- 三、安装清单
- 1、操作系统iso包
- 2、JDK包
- 3、MySQL包
- 4、CM和CDH包
- 5、部署ansible
- 四、基础环境准备
- 1、配置网络
- 2、配置host解析
- 3、关闭防火墙
- 4、配置swap
- 5、关闭透明大页
- 6、 配置最大进程数和最大文件句柄数
- 7、禁用atime(暂时不操作)
- 8、搭建私有源
- 1)配置centos源(h1)
- 2)安装httpd
- 3)centos源配置为http方式获取
- 4)部署离线parcel源
- 5)生成repodata文件
- 6)配置cm服务端源
- 7)配置cm客户端源
- 8)配置cdh服务端源
- 9)配置cdh客户端源
- 11、配置chronyd
- 1)时区设置为本地时区
- 1)配置chrony服务端
- 2)配置chronyd客户端
- 12、安装jdk
- 13、安装MySQL
- 1)下载安装
- 2)安全加固
- 3)登录查看
- 4)配置远程登录
- 5)卸载MySQL
- 五、CM6.3.1安装步骤
- 1、配置JDBC驱动包
- 2、修改MySQL配置文件
- 3、创建cm所数据库
- 1)创建所需数据
- 2)按照官方创建数据库
- 3、安装服务端
- 4、安装客户端
- 5、初始化scm库
- 1)MySQL和服务同机
- 2)MySQL和服务不同机
- 3)CM的数据库配置文件已经修改
- 4)启动server
- 5)配置本地的parcel文件
- 6)修改config.ini
- 7)上传allkeys.asc
- 6、访问
- 六、配置集群
- 1、登录配置
- 2、设置集群名
- 3、选择集群主机
- 4、配置CDH安装包
- 5、配置CDH parcel的位置
- 6、安装Agent
- 7、安装parcels
- 8、检查集群
- 9、选择服务
- 1)选择安装的内容和服务
- 2)自定义角色分配
- 3)数据库配置
- 4)CM管理页面
文章目录
- @[toc]
- 一、CM简介
- 1、ClouderaManager的概念
- 2、ClouderaManager的功能
- 3、ClouderaManager的架构
- 二、准备清单
- 1、部署步骤
- 2、集群规划
- 3、软件环境准备
- 三、安装清单
- 1、操作系统iso包
- 2、JDK包
- 3、MySQL包
- 4、CM和CDH包
- 5、部署ansible
- 四、基础环境准备
- 1、配置网络
- 2、配置host解析
- 3、关闭防火墙
- 4、配置swap
- 5、关闭透明大页
- 6、 配置最大进程数和最大文件句柄数
- 7、禁用atime(暂时不操作)
- 8、搭建私有源
- 1)配置centos源(h1)
- 2)安装httpd
- 3)centos源配置为http方式获取
- 4)部署离线parcel源
- 5)生成repodata文件
- 6)配置cm服务端源
- 7)配置cm客户端源
- 8)配置cdh服务端源
- 9)配置cdh客户端源
- 11、配置chronyd
- 1)时区设置为本地时区
- 1)配置chrony服务端
- 2)配置chronyd客户端
- 12、安装jdk
- 13、安装MySQL
- 1)下载安装
- 2)安全加固
- 3)登录查看
- 4)配置远程登录
- 5)卸载MySQL
- 五、CM6.3.1安装步骤
- 1、配置JDBC驱动包
- 2、修改MySQL配置文件
- 3、创建cm所数据库
- 1)创建所需数据
- 2)按照官方创建数据库
- 3、安装服务端
- 4、安装客户端
- 5、初始化scm库
- 1)MySQL和服务同机
- 2)MySQL和服务不同机
- 3)CM的数据库配置文件已经修改
- 4)启动server
- 5)配置本地的parcel文件
- 6)修改config.ini
- 7)上传allkeys.asc
- 6、访问
- 六、配置集群
- 1、登录配置
- 2、设置集群名
- 3、选择集群主机
- 4、配置CDH安装包
- 5、配置CDH parcel的位置
- 6、安装Agent
- 7、安装parcels
- 8、检查集群
- 9、选择服务
- 1)选择安装的内容和服务
- 2)自定义角色分配
- 3)数据库配置
- 4)CM管理页面
一、CM简介
1、ClouderaManager的概念
简单来说,Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
2、ClouderaManager的功能
- 1)、管理:对集群进行管理,如添加、删除节点等操作。
- 2)、监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
- 3)、诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
- 4)、集成:多组件进行整合。
3、ClouderaManager的架构
- 1)、Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。
- 2)、Agent:安装在每台主机上。负责启动和停止的过程,配置,监控主机。
- 3)、Management Service:由一组执行各种监控,警报和报告功能角色的服务。
- 4)、Database:存储配置和监视信息。
- 5)、Cloudera Repository:软件由Cloudera 管理分布存储库。(有点类似Maven的中心仓库)
- 6)、Clients:是用于与服务器进行交互的接口(API和Admin Console)
CM6.3.1+CDH6.3.2 组件版本如下:
组件 | 版本 | 发行版 | CDH |
---|---|---|---|
版本Supervisord | 3 | 不可用 | 不适用 |
Cloudera Manager Agent | 6.3.1 | 1466458.el7 | 不适用 |
Cloudera Manager Management Daemon | 6.3.1 | 1466458.el7 | 不适用 |
Flume NG | 1.9.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Hadoop | 3.0.0+cdh | 6.3.2 | 1605554 |
HDFS | 3.0.0+cdh | 6.3.2 | 1605554 |
HttpFS | 3.0.0+cdh | 6.3.2 | 1605554 |
hadoop-kms | 3.0.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
MapReduce 2 | 3.0.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
YARN | 3.0.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
HBase | 2.1.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Lily HBase Indexer | 1.5+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Hive | 2.1.1+cdh6.3.2 | 1605554 | CDH 6.3.2 |
HCatalog | 2.1.1+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Hue | 4.2.0+cdh6.3.21605554 | CDH 6.3.2 | |
Impala | 3.2.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Java 8 | java version 1.8.0_131 | 不可用 | 不适用 |
Kafka | 2.2.1+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Kite(仅限 CDH 5 ) | 1.0.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
kudu | 1.10.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Oozie | 5.1.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Parquet | 1.9.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Pig | 0.17.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
sentry | 2.1.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Solr | 7.4.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
spark | 2.4.0+cdh6.3.2 | 1605554 | CDH 6.3.2 |
Sqoop | 1.4.7+cdh6.3.2 | 1605554 | CDH 6.3.2 |
ZooKeeper | 3.4.5+cdh6.3.2 | 1605554 | CDH 6.3.2 |
二、准备清单
1、部署步骤
- 网络配置(所有节点)
- hosts配置
- 关闭防火墙(所有节点)
- 免密(所有节点)
- ntpd同步
- 安装jdk-u8-131(所有节点)
- 安装MySQL(主节点)
- 初始化MySQL(主节点)
- 部署/启动CM Server(主节点)
- 部署/启动CM Agent(从节点)
- 配置CDH
其他
- 停止集群步骤
- 启动集群步骤
2、集群规划
节点名称 | IP | CentoS | CPU | 内存 | 磁盘 | 组件 |
---|---|---|---|---|---|---|
h1 | 192.168.6.61 | 7.9 | 2 | 10G | /dev/sda3 250G | mysql5.7,http,ntp,jdk-8u131 |
h2 | 192.168.6.62 | 7.9 | 2 | 8G | /dev/sda3 250G | ntp,jdk-8u131 |
h3 | 192.168.6.63 | 7.9 | 2 | 8G | /dev/sda3 250G | ntp,jdk-8u131 |
h4 | 192.168.6.64 | 7.9 | 2 | 8G | /dev/sda3 250G | ntp,jdk-8u131 |
3、软件环境准备
序号 | 软件名称 | 版本信息 | 备注 |
---|---|---|---|
1 | Centos操作系统发行版 | CentOS Linux release 7.9.2009 x86_64 | CDH要求7.2或更高 |
2 | MySQL数据库 | 5.7.43 x86_64 | CDH6推荐5.7或更高,务必使用utf8编码而非utf8mb4编码 |
3 | JDK | 1.8.0_181 x86_64 | CDH6将不再支持JDK1.7推荐1.8u181 |
4 | python | 2.7.5 | |
5 | CDH | 6.3.2 | |
6 | CM | 6.3.1 |
三、安装清单
1、操作系统iso包
- 本地镜像yum源包:CentOS-7-x86_64-Everything-2003.iso
- 下载地址:https://developer.aliyun.com/mirror/
2、JDK包
- JDK包:jdk-8u281-linux-x64.tar.gz
- 下载地址:https://www.oracle.com/java/technologies/downloads/archive/
3、MySQL包
- MySQL包:mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
- MySQL驱动包:mysql-connector-java-5.1.49.jar
- 下载地址:https://downloads.mysql.com/archives/community/
4、CM和CDH包
CM包:
allkeys.asc
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
CDH包:
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
manifest.json
5、部署ansible
安装方式二
#登录后复制
cd /tmp
wget -c https://github.com/ghl1024/ansible-offline-install/releases/download/V1/ansible-offline-install.tar.gz
tar xf ansible-offline-install.tar.gz
cd ansible
sh install.sh
#设置参数为不检查key
sed -i "s/#host_key_checking = False/host_key_checking = False/g" /etc/ansible/ansible.cfg
#如果有提示安装则安装
yum install -y sshpass
cat >/etc/ansible/hosts <<EOF
[all:vars]
ansible_ssh_user='root'
ansible_ssh_port=7009
ansible_ssh_pass='Abcd@123456'
[k8s]
192.168.6.61
192.168.6.62
192.168.6.63
192.168.6.64
EOF
ansible all -m raw -a " df -h"
四、基础环境准备
1、配置网络
Centos7静态网络配置文件是/etc/sysconfig/network-scripts/ifcfg-,我本机网络接口名称为p2p1,修改所有节点网络配
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.6.61 #改为对应节点IP
GATEWAY=192.168.6.1
NETMASK=255.255.255.0
DNS1=61.139.2.69
DNS2=8.8.8.8
#重启网络可立即生效
systemctl restart network
2、配置host解析
- 所有节点操作
#修改所有节点的hostname,重启节点立即生效
ansible 192.168.6.61 -m raw -a "hostnamectl set-hostname h1"
ansible 192.168.6.62 -m raw -a "hostnamectl set-hostname h2"
ansible 192.168.6.63 -m raw -a "hostnamectl set-hostname h3"
ansible 192.168.6.64 -m raw -a "hostnamectl set-hostname h4"
- 所有节点操作
ansible all -m raw -a "echo '192.168.6.61 h1' >>/etc/hosts"
ansible all -m raw -a "echo '192.168.6.62 h2' >>/etc/hosts"
ansible all -m raw -a "echo '192.168.6.63 h3' >>/etc/hosts"
ansible all -m raw -a "echo '192.168.6.64 h4' >>/etc/hosts"
3、关闭防火墙
- 所有节点操作
ansible all -m raw -a "systemctl stop firewalld"
ansible all -m raw -a "systemctl disable firewalld"
#关闭seliunx
ansible all -m raw -a "sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config"
ansible all -m raw -a "setenforce 0"
4、配置swap
内核参数swappiness用于控制系统在内存紧张时将内存中的数据交换到硬盘交换空间(swap)中 ,一般而言,swappiness值可以设置在 0 到 100 之间。内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上推荐设置一个比较小的值,而不要禁用交换。
ansible all -m raw -a "echo \"vm.swappiness=10\">> /etc/sysctl.conf"DD
#ansible all -m raw -a "echo \"net.ipv6.conf.all.disable_ipv6 = 1\">> /etc/sysctl.conf"
ansible all -m raw -a "sysctl -p"
- Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。
5、关闭透明大页
#临时关闭
ansible all -m raw -a "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
ansible all -m raw -a "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
#永久关闭,每个节点添加
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
#验证查看,如果是never则表示成功。
ansible all -m raw -a "cat /sys/kernel/mm/transparent_hugepage/defrag;cat /sys/kernel/mm/transparent_hugepage/enabled"
#授权
ansible all -m raw -a "chmod +x /etc/rc.local"
6、 配置最大进程数和最大文件句柄数
用户的进程和文件句柄数配置文件是/etc/security/limits.conf,类型包括硬限制(hard)和软限制(soft),*表示所有用户,nproc表示打开最大进程数,nofile表示最大文件句柄数。Cloudera推荐最大进程数nproc为65536或26214。
- pssh批量修改所有用户的进程和文件句柄最大限制
ansible all -m raw -a"echo '* soft nproc 65535' >> /etc/security/limits.conf"
ansible all -m raw -a "echo '* hard nproc 65535' >> /etc/security/limits.conf"
ansible all -m raw -a "echo '* soft nofile 65535' >> /etc/security/limits.conf"
ansible all -m raw -a "echo '* hard nofile 65535' >> /etc/security/limits.conf"
#查看是否生效
ansible all -m raw -a "ulimit -a"
- -a:显示目前资源限制的设定;
- -c <core文件上限>:设定core文件的最大值,单位为区块;
- -d <数据节区大小>:程序数据节区的最大值,单位为KB;
- -f <文件大小>:shell所能建立的最大文件,单位为区块;
- -H:设定资源的硬性限制,也就是管理员所设下的限制;
- -m <内存大小>:指定可使用内存的上限,单位为KB;
- -n <文件数目>:指定同一时间最多可开启的文件数;
- -p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;
- -s <堆叠大小>:指定堆叠的上限,单位为KB;
- -S:设定资源的弹性限制;
- -t <CPU时间>:指定CPU使用时间的上限,单位为秒;
- -u <程序数目>:用户最多可开启的程序数目;
- -v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。
7、禁用atime(暂时不操作)
Linux文件系统会保留记录每个文件访问时间的元数据,这可能会导致即使是读取操作也会导致磁盘写入。为了提高文件读取性能,Cloudera建议在/etc/fstab配置文件中使用noatime挂载选项来禁用atime选项。
- pssh批量禁用文件最后访问时间,本机的挂载数据目录是/data
# 数据目录添加noatime
ansible all -m raw -a "sed -i 's/\/data ext4 defaults/\/data ext4 defaults,noatime/' /etc/fstab"
# 重新挂载不需要重启节点
#mount -o remount /data
8、搭建私有源
- 镜像源作用范围:只能在机器h1使用。
- 目的:为了安装httpd服务和createrepo服务。
1)配置centos源(h1)
【阿里下载地址】http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
#上传
mkdir -p /data/isos
cd /data/isos
rz
#挂载centos7镜像
mkdir /mnt/cdrom
chmod o+x CentOS-7-x86_64-Everything-2003.iso
mount -t iso9660 /data/isos/CentOS-7-x86_64-Everything-2003.iso /mnt/cdrom
lsblk |grep /mnt/cdrom
#移除自带的源
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup
#新建一个本地yum源
cat > /etc/yum.repos.d/local.repo << EOF
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
EOF
#更新源和缓存
yum clean all && yum makecache
#验证
yum repolist|grep Centos
#检测源
yum remove tree -y
yum install tree -y
2)安装httpd
- h1节点安装Apache httpd服务,用于后续通过Http方式访问和下载CDH和CM安装包
# 安装httpd
yum -y install httpd
# 启动
systemctl start httpd
# 开机启动
systemctl enable httpd
3)centos源配置为http方式获取
- h1节点
#在http服务的静态资源目录创建centos目录
mkdir -p /var/www/html/cdh6.3.1
mkdir /var/www/html/cdh6.3.1/centos
#将centos的镜像文件复制到centos目录
\cp -rf /mnt/cdrom/* /var/www/html/cdh6.3.1/centos
#修改cdh-1的本地centos源的配置
sed -i 's#baseurl=file:///mnt/cdrom#baseurl=file:///var/www/html/cdh6.3.1/centos#g' /etc/yum.repos.d/local.repo
#取消挂载
umount /mnt/cdrom/
#更新h1的源
##刷新源
yum clean all && yum makecache
#验证
yum repolist
#重启http
systemctl restart httpd
可以通过http访问了:http://192.168.6.61/cdh6.3.1/centos/
- 其他节点
#移除自带的源
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup
#添加共享源
cat >/etc/yum.repos.d/local.repo << EOF
[c6-media]
name=CentOS-$releasever - Media
baseurl=http://h1/cdh6.3.1/centos/
gpgcheck=0
enabled=1
EOF
#刷新源
yum clean all && yum makecache
验证
yum repolist
#测试源
yum remove -y lsof
#安装
yum install -y lsof
4)部署离线parcel源
- 移动文件安装包文件到http服务器静态文件目录(h1)
#在/var/www/html创建存放cm包的文件夹和cdh安装包的文件夹
mkdir /var/www/html/cdh6.3.1/{cm,cdh}
#上传CDH6.3.2
rz
unzip CDH6.3.2 -d /opt/
tar -xf /opt/CDH6.3.2/cm6.3.1-redhat7.tar.gz -C /opt/
#移动cdh安装包和元数据文件
cd /opt/CDH6.3.2/
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel manifest.json CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /var/www/html/cdh6.3.1/cdh/
mv /var/www/html/cdh6.3.1/cdh/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /var/www/html/cdh6.3.1/cdh/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
mv /opt/CDH6.3.2/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 /var/www/html/cdh6.3.1/cdh/
#解压移动cm安装包
tar -xf /opt/CDH6.3.2/cm6.3.1-redhat7.tar.gz -C /opt/
mv /opt/cm6.3.1/RPMS/x86_64/* /var/www/html/cdh6.3.1/cm/
#授权
chmod 755 /var/www/html/cdh6.3.1/cm
chmod 755 /var/www/html/cdh6.3.1/cdh
- 移动 sha1 名称⽂件时,需要重命名,去掉最后的1,不然在部署过程中,CM 会认为如上⽂件下载不完整,会重新下载。
#查看
[root@h1 html]# ls -l /var/www/html/cdh6.3.1/
total 4
drwxr-xr-x. 2 root root 77 Sep 11 21:14 cdh
drwxr-xr-x. 8 root root 220 Sep 11 21:02 centos
drwxr-xr-x. 2 root root 4096 Sep 11 21:18 cm
[root@h1 html]# ls -l /var/www/html/cdh6.3.1/cm
total 1380420
-rw-r--r--. 1 2001 2001 10483568 Sep 25 2019 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001 1203832464 Sep 25 2019 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001 11488 Sep 25 2019 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001 10996 Sep 25 2019 cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 2001 2001 14209868 Sep 25 2019 enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
-rw-rw-r--. 1 2001 2001 184988341 Sep 25 2019 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
[root@localhost CDH6.3.2]# ls -l /var/www/html/cdh6.3.1/cdh/
total 2033432
-rw-r--r--. 1 root root 2082186246 Jan 8 2021 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r--. 1 root root 40 Jan 11 2021 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r--. 1 root root 64 Jan 11 2021 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
-rw-r--r--. 1 root root 33887 Jan 11 2021 manifest.json
5)生成repodata文件
- 制作cm和cdh源生成repodata文件,需要用到createrepo这个包(h1)
#查看
yum install tree -y
tree /var/www/html/
# 生成repodata文件夹
mv /etc/yum.repos.d/backup/CentOS-Base.repo /etc/yum.repos.d/
yum clean all && yum makecache
yum install -y createrepo
cd /var/www/html/cdh6.3.1/cm/
createrepo .
cd /var/www/html/cdh6.3.1/cdh/
createrepo .
systemctl restart httpd
访问浏览器:http://192.168.6.61/cdh6.3.1/cm/
6)配置cm服务端源
cat >/etc/yum.repos.d/cloudera-manager.repo<<EOF
[base-local]
name=cm-local
baseurl=file:///var/www/html/cdh6.3.1/cm
enabled=1
gpgcheck=0
EOF
#刷新源
yum clean all && yum makecache
#检测本地源是否配置成功
yum repolist|grep cm-local
7)配置cm客户端源
cat >/etc/yum.repos.d/cloudera-manager.repo<<EOF
[base-local]
name=cm-local
baseurl=http://h1/cdh6.3.1/cm
enabled=1
gpgcheck=0
EOF
#刷新源
yum clean all && yum makecache
#检测本地源是否配置成功
yum repolist|grep cm-local
8)配置cdh服务端源
cat >/etc/yum.repos.d/cdh-local.repo<<EOF
[cdh-local]
name=cdh-local
baseurl=file:///var/www/html/cdh6.3.1/cdh
enabled=1
gpgcheck=0
EOF
#刷新源
yum clean all && yum makecache
#检测本地源是否配置成功
yum repolist|grep cdh-local
9)配置cdh客户端源
cat >/etc/yum.repos.d/cdh-local.repo<<EOF
[cdh-local]
name=cdh-local
baseurl=http://h1/cdh6.3.1/cdh
enabled=1
gpgcheck=0
EOF
#刷新源
yum clean all && yum makecache
- [base-local] #本源的名字,不能和其他的重复(随便,不重复)
- name=CentOS-local #名字(随意)
- baseurl=file:///mnt/ #上方步骤一挂载镜像创建的目录(必须同步)
- enabled=1 #yum源是否启用 1-启用 0-不启用
- gpgcheck=1 #安全检测 1-开启 0-不开启
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
11、配置chronyd
Centos7默认使用Chrony工具而非NTP进行时间同步,Chrony和NTP两者有冲突只能选其一,CDH6推荐使用Chrony。
chrony-2.2.1.tar.gz 下载地址:https://download.tuxfamily.org/chrony/
1)时区设置为本地时区
#硬件时钟设置为UTC
ansible all -m raw -a"timedatectl set-local-rtc 0"
#设置本地时区,显示本地时间
ansible all -m raw -a"timedatectl set-timezone Asia/Shanghai"
#手动加载RTC设置
ansible all -m raw -a"hwclock --systohc"
#查看时间
ansible all -m raw -a"timedatectl"
1)配置chrony服务端
#安装
ansible all -m raw -a"yum -y install chrony"
ansible all -m raw -a"systemctl start chronyd"
#修改服务器配置⽂件
cp /etc/chrony.conf /etc/chrony.$(date +'%s')
cat > /etc/chrony.conf <<EOF
#编辑该行,设置ntp服务器地址,pool.ntp.org 替换为ntp服务器地址,注:保留1个即可,其他NTP服务器地址注销
pool pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 0.0.0.0/0
local stratum 10
logdir /var/log/chrony
EOF
#看正确时间,进行修改
date -s 09:57:00
#同步到硬件时间
clock -w
#启动chronyd
systemctl restart chronyd
systemctl enable chronyd
2)配置chronyd客户端
#安装
yum -y install chrony
# 修改服务器配置文件,以阿里云时间服务器为上游服务器
cp /etc/chrony.conf /etc/chrony.$(date +'%s')
cat > /etc/chrony.conf <<EOF
server 192.168.6.61 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
EOF
# 启动 chronyd服务
systemctl restart chronyd
systemctl enable chronyd
#重启后等几分钟,让系统识别到时间服务器,期间可多次执行chronyc sources或chronyc sources -v查询状态。
[root@localhost yum.repos.d]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* h1 3 6 377 4 +874us[+1148us] +/- 49ms
[root@localhost ~]# timedatectl
Local time: Mon 2023-12-11 10:05:51 CST
Universal time: Mon 2023-12-11 02:05:51 UTC
RTC time: Mon 2023-12-11 02:05:51
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
12、安装jdk
- 参考网址:https://blog.csdn.net/BlogPan/article/details/132384949
- 每个节点安装java环境
#上传到ansible管理节点
rz #jdk-8u131-linux-x64.tar.gz
#拷贝到各个节点
ansible all -m copy -a "src=jdk-8u131-linux-x64.tar.gz dest=/root/jdk-8u131-linux-x64.tar.gz"
#安装jdk
tar -xzf /root/jdk-8u131-linux-x64.tar.gz
mkdir -p /usr/java/
mv jdk1.8.0_131/ /usr/java/
#、配置JAVA环境变量,/etc/profile配置文件中末尾加入如下代码
cp /etc/profile /etc/profile.bak
cat >>/etc/profile<<EOF
#################################################################
export JAVA_HOME=/usr/java/jdk1.8.0_131
export CLASSPATH=\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib
export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH:\$HOMR/bin
##################################################################
EOF
#执行如下代码使其环境变量,并查看环境变量,命令如下:
source /etc/profile
java -version
13、安装MySQL
1)下载安装
- 参考地址:https://blog.csdn.net/BlogPan/article/details/132393695
- h1安装MySQL
- 注意连接网络源才能下载,否则需要使用二进制部署。
#检测mysql,有则卸载
rpm -qa | grep -i mysql
rpm -qa|grep mariadb
#yum list installed | grep mariadb
#rpm -e --nodeps mariadb-libs-xxx
#rm -rf /etc/my.cnf
#查找指令rpm方式:rpm -qa|grep mysql
#查找指令yum方式:yum list installed | grep mysql
#find查看指令:find / -name mysql
#whereis查看指令:whereis mysql
#删除指令:rm -rf /etc/selinux/targeted/active/modules/100/mysql
#删除指令:rm -rf /usr/lib64/mysql
#noarch表示该软件包不依赖特定Linux发行版
wget -c https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm --no-check-certificate
rpm -ivh mysql57-community-release-el7-11.noarch.rpm ##安装Yum源配置文件
yum -y install mysql-community-server --nogpgcheck #安装MySQL服务器, --nogpgcheck跳过源认证。
systemctl start mysqld&&systemctl enable mysqld&&systemctl status mysqld #启动MySQL服务器
grep "password" /var/log/mysqld.log #获取临时密码
2)安全加固
- 执行安全脚本,加固MySQL安全性,设置新的root密码
#登录改密码
[root@h1 ~]# grep "password" /var/log/mysqld.log #获取临时密码
2023-04-18T07:39:06.811617Z 1 [Note] A temporary password is generated for root@localhost: eR-UFk;F<8UD
[root@h1 ~]# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root: #输入密码:eR-UFk;F<8UD
The existing password for the user account root has expired. Please set a new password.
New password: Abcd$12356A
Re-enter new password: Abcd$12356A
- 输入要求的密码后可继续如下配置
# 移除匿名用户
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
# 禁用远程root登录
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
# 删除测试数据库及权限
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
# 重新加载授权表
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
3)登录查看
#登录
mysql -uroot -p
输入密码:Abcd$12356A
#设置开机启动和重启
systemctl enable mysqld&&systemctl restart mysqld
4)配置远程登录
- 登录本机,针对root用户赋权和设置密码
# 授权,all表示所有ddl和dml操作权限,*.*表示针对所有数据库所有表,%表示本机和远程主机均能访问
grant all privileges on *.* to 'root'@'%' identified by 'Abcd$12356A' with grant option;
# 刷新权限
flush privileges;
#退出
exit
#测试远程访问
yum install mysql -y
mysql -P 3306 -h 192.168.6.61 -uroot -p
输入密码:Abcd$12356A
5)卸载MySQL
- 不操作
#卸载MySQL之前,首先需要停止MySQL服务
systemctl stop mysqld
#卸载MySQL软件包
yum -y remove mysql-server mysql-client mysql-common mysql-libs
#删除配置文件
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
#卸载Yum源配置文件
rpm -e mysql57-community-release-el7-11.noarch
#清理MySQL用户和组
userdel mysql
groupdel mysql
#清理MySQL日志文件和临时文件
rm -rf /var/log/mysql
rm -rf /tmp/mysql*
五、CM6.3.1安装步骤
1、配置JDBC驱动包
- ansible节点操作
#配置JDBC驱动包
cd /root/
wget -c https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz --no-check-certificate
tar -xf mysql-connector-java-5.1.46.tar.gz
mv mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar /root/mysql-connector-java.jar
#创建目录
ansible all -m raw -a 'mkdir -p /usr/share/java/'
# 复制到各个节点
ansible all -m copy -a 'src=/root/mysql-connector-java.jar dest=/usr/share/java/'
# 修改权限
ansible all -m raw -a 'cd /usr/share/java;chmod 775 mysql-connector-java.jar'
# 验证是否创建成功
ansible all -m raw -a 'ls -l /usr/share/java'
2、修改MySQL配置文件
- https://zhuanlan.zhihu.com/p/140873987?utm_id=0
WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
注意此处有坑:对于MySQL5.7高版本,启动CM Server连接MySQL时可能会报com.mysql.jdbc.exceptions.jdbc4.CommunicationsException异常,原因是默认开启了SSL认证,相当于useSSL=true,解决方法就是在配置中添加skip-ssl重启MySQL服务,另外[mysqld_safe]配置项已废弃不用,以下的配置均已经过验证。
[mysqld]
# 务必禁用掉ssl,相当于useSSL=false
skip-ssl
#和重启
systemctl restart mysqld
3、创建cm所数据库
1)创建所需数据
#登录
mysql -uroot -p
输入密码:Abcd$12356A
#创建
CREATE DATABASE scm DEFAULT CHARACTER SET UTF8;
CREATE USER scm@'%' IDENTIFIED WITH mysql_native_password BY 'Abcd$12356A';
GRANT ALL PRIVILEGES ON scm.* TO scm@'%';
CREATE DATABASE hive DEFAULT CHARACTER SET UTF8;
CREATE USER hive@'%' IDENTIFIED WITH mysql_native_password BY 'Abcd$12356A';
GRANT ALL PRIVILEGES ON hive.* TO hive@'%';
FLUSH PRIVILEGES;
SELECT user,host,plugin FROM mysql.user;
exit
2)按照官方创建数据库
- Cloudera官网要求初始化的数据库及用户如下:
# scm
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Abcd$12356A';
# amon
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Abcd$12356A';
# rman
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Abcd$12356A';
# hue
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Abcd$12356A';
# hive
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'Abcd$12356A';
# sentry
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Abcd$12356A';
# nav
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Abcd$12356A';
# navms
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Abcd$12356A';
# oozie
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Abcd$12356A';
# 最后刷新一下权限
flush privileges;
# 检查
show databases;
3、安装服务端
- 只需要在h1节点上安装
yum install mysql-community-libs-compat-5.7.44-1.el7.x86_64 -y --nogpgcheck
#h1安装server和agent
yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
#安装报错,使用网络源
cd /etc/yum.repos.d
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all&&yum makecache
#MySQL报错 Failing package is: mysql-community-libs-compat-5.7.44-1.el7.x86_64
yum install mysql-community-libs-compat-5.7.44-1.el7.x86_64 -y --nogpgcheck
4、安装客户端
- 只需要在h2、h3、h4节点上安装
#h2安装agent
yum -y install cloudera-manager-agent cloudera-manager-daemons
#h3安装agent
yum -y install cloudera-manager-agent cloudera-manager-daemons
#h4安装agent
yum -y install cloudera-manager-agent cloudera-manager-daemons
5、初始化scm库
1)MySQL和服务同机
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
输入密码:Abcd$12356A
2)MySQL和服务不同机
- 初始化指令格式:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h 数据库ip --scm-host scm的ip scm scm Abcd$12356A
#/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h 192.168.6.65 --scm-host 192.168.6.61 scm scm Abcd$12356A
3)CM的数据库配置文件已经修改
- 初始化成功自动生成下面数据,修改文件。
#替换
sed -i s'#com.cloudera.cmf.db.host=localhost#com.cloudera.cmf.db.host=h1#'g /etc/cloudera-scm-server/db.properties
#查看
[root@h1 ~]# cat /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=h1
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=Abcd$12356A
4)启动server
- 在主节点启动Cloudera Manager
systemctl restart cloudera-scm-server
systemctl status cloudera-scm-server -l
netstat -tnlp|grep 7180
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
5)配置本地的parcel文件
cp -r /var/www/html/cdh6.3.1/cdh/* /opt/cloudera/parcel-repo/
groupadd cloudera-scm&&useradd -r -g cloudera-scm cloudera-scm
chown -R cloudera-scm:cloudera-scm /opt/cloudera
6)修改config.ini
- agent节点上修改cm agent的配置,指向server节点为:h1
ansible all -m raw -a "sed -i 's/server_host=localhost/server_host= h1/g' /etc/cloudera-scm-agent/config.ini"
7)上传allkeys.asc
cd /var/www/html/cdh6.3.1/cm
rz
allkeys.asc
6、访问
- 访问地址:http://192.168.6.61:7180/cmf/login
- 登陆-默认账号/密码:admin/admin
六、配置集群
1、登录配置
2、设置集群名
- 编辑集群名称,填入:cdh6.3.2,安装成功后可以重命名集群,点击“继续”。
3、选择集群主机
- 使用模式输入主机名称(h[1-4])或者IP地址(192.168.6.[61-63]),点击“搜索”找到主机后勾选节点,点击“继续”。
4、配置CDH安装包
- Cloudera Manager Agent的自定义存储库输入CM仓库地址:http://192.168.6.61/cdh6.3.1/cm
5、配置CDH parcel的位置
- CDH and other software选择“使用 Parcel (建议)”,点击“更多选项”进入Parcel存储库设置页面。“Parcel目录”和“本地Parcel存储库路径”不用编辑选择默认目录就好,编辑“远程Parcel存储库URL”,输入CDH仓库地址: http://192.168.6.61/cdh6.3.1/cdh/,点击“-”删除其它URL,点击“保存更改”。
6、安装Agent
【提示】
/tmp/scm_prepare_node.4jhFYJdo
http://192.168.101.105/cdh6/6.3.1/parcels/allkeys.asc
【解决】
上传allkeys.asc到cm的目录下
7、安装parcels
如果出现"主机运行状况不良"
- 进入 /var/lib/cloudera-scm-agent下,把cm_guid文件 删除。然后重启代理服务节点
- 命令: service cloudera-scm-agent restart
- 重启之后 cloudera manager 等待片刻自动安装
【报错】
Parcel not distributed but have active state ACTIVATING
[root@localhost ~]# curl -u admin:admin "http://h1:7180/api/v18/clusters"
[root@h1 ~]# curl -u admin:admin -X POST http://192.168.6.61:7180/api/v18/clusters/Cluster1/parcels/products/CDH6/versions/6.3.2-1.cdh6.3.2.p0.1605554/commands/deactivate
【解决】
https://blog.51cto.com/u_14049791/5701635
【报错】
cdh6安装过程报错 failure due to stall on seeded torrent
【解决】
#找到报错节点重启
systemctl restart cloudera-scm-agent.service
8、检查集群
先点击 Inspect Network Performance 再点击 Inspect Hosts
注意:没有黄色提示才能继续下一步,否则需要解决。
9、选择服务
1)选择安装的内容和服务
- 安装的内容包括HDFS,YARN,ZooKeeper,Oozie,Hive,Hue,Spark,Impala,Hbase。
2)自定义角色分配
- 具体角色配置可查看CM
3)数据库配置
- 选择各个数据库,用户名,密码,并进行测试
- 审核更改,默认设置(配置各个参数),命令详细信息
- 如果集群资源不够,可以先申请一个集群,然后依次添加服务;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| amon |
| hive |
| hue |
| metastore |
| mysql |
| nav |
| navms |
| oozie |
| performance_schema |
| rman |
| scm |
| sentry |
| sys |
+--------------------+
4)CM管理页面
- 之后出现的任何告警等,都可以进行自定义配置和解决
- 安装的各个服务的版本,可通过cdh的mansion.json文件查看