闲暇之余自己做了一份安装手册,按照手册步骤来完全可以安装好。
- CDH安装服务器规划
系统:CentOS Linux 7.9
用户:root
主机IP:最少三台
Jdk:oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
Mysql:mysql-8.3.0-1.el7.x86_64.rpm-bundle
Jar包:mysql-connector-java-8.0.14
CDH:CDH6.3.2版本
- 前期部署工作
- 修改主机名(所有节点)为所有节点设置唯一主机名,确保系统识别和网络通信
各节点依次执行:
hostnamectl set-hostname cdh01
hostnamectl set-hostname cdh02
hostnamectl set-hostname cdh03
2、修改IP和Host映射关系(所有节点)配置/etc/hosts文件,将IP地址映射到主机名,以支持网络通信。
vim /etc/hosts
10.8.42.54 cdh01
10.8.42.55 cdh02
10.8.42.56 cdh03
3、配置免密登陆,便于节点之间传输文件(所有节点)生成SSH密钥并分发到所有节点,实现节点间的无密码SSH访问,便于管理和文件传输。
ssh-keygen -t rsa #一路回车,生成无密码密钥
#各节点分别执行:
ssh-copy-id cdh01
ssh-copy-id cdh02
ssh-copy-id cdh03
#测试
ssh cdh01
ssh cdh02
ssh cdh03
#在该目录文件下能查看到相应的主机映射:
cat /etc/hosts
4、关闭并禁用防火墙(所有节点)确保所有节点的防火墙不会阻止CDH组件间的通信
#查看防火墙运行状态:
systemctl status firewalld
#关闭防火墙:
systemctl stop firewalld
#禁用防火墙:
systemctl disable firewalld
5、关闭SELINUX(所有节点)临时和永久关闭安全增强功能,避免其限制CDH服务的运行。
#查看SELINUX服务的运行状态:
getenforce
#临时关闭:
setenforce 0
#永久关闭:
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
#或者
vi /etc/selinux/config #把文件里改成SELINUX=disabled
#验证:
cat /etc/selinux/config
- 禁用透明大页(所有节点)调整Linux内核的内存管理策略,提高大规模数据处理的效率。
#查看透明大页的设置和启动状态:
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
#临时关闭:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
#永久关闭(将临时关闭命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限):
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
#验证:
cat /etc/rc.d/rc.local
- 修改配置系统参数(所有节点)调整系统参数(如vm.swappiness),优化系统性能。
#查看参数:
cd /usr/lib/tuned
grep "vm.swappiness" * -R
#修改:
sed -i s/"vm.swappiness = 30"/"vm.swappiness = 10"/g /usr/lib/tuned/virtual-guest/tuned.conf
- 安装jdk(所有节点)JDK是运行CDH服务所必需的,安装指定版本的JDK,并配置环境变量以确保系统能找到Java执行环境。
#查询是否有已经安装的JDK:
rpm -qa | grep java
#若之前安装过Java组件,先将其卸载:
yum remove java*
#上传安装包oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm到/opt目录下
#启动安装:
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
#查找JDK安装路径:
find / -name java
#配置环境变量:
vim /etc/profile
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
#验证:
java -version
- 上传JDBC依赖包(所有节点)将MySQL的JDBC驱动包重命名并分发到所有节点,以便CDH服务能通过JDBC连接MySQL数据库。
#创建目录:
mkdir -p /usr/share/java
#将mysql-connector-java-8.0.14.jar重命名为mysql-connector-java.jar:
mv mysql-connector-java-8.0.14.jar mysql-connector-java.jar
#将mysql-connector-java.jar移动或复制到每个节点的/usr/share/java:
cp mysql-connector-java.jar /usr/share/java/
scp mysql-connector-java.jar cdh1:/usr/share/java/
scp mysql-connector-java.jar cdh2:/usr/share/java/
scp mysql-connector-java.jar cdh3:/usr/share/java/
- 安装Mysql(master节点)在主节点上安装MySQL数据库,CDH的某些组件(如Cloudera Manager和Hive Metastore)需要数据库支持。
#查询已经安装的mariadb:
rpm -qa | grep mariadb
#卸载mariadb,文件名为上述命令查询出来的文件:
rpm -e --nodeps <文件名>
#上传压缩包到/opt目录下
#解压安装包:
tar -xvf mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
#检查安装依赖:
rpm -qa|grep 'libaio\|net-tools'
#若不存在,则进行安装:
yum install -y libaio net-tools perl
#依次进行以下安装:
rpm -ivh mysql-community-common-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.3.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.3.0-1.el7.x86_64.rpm
#初始化mysql:
mysqld --initialize --console
#更改目录主信息:
chown -R mysql:mysql /var/lib/mysql/
#启动mysql:
systemctl start mysqld
#设置开机启动:
systemctl enable mysqld
#查看MySQL初始化密码:
cat /var/log/mysqld.log|grep localhost
#进入mysql并输入初始化密码:
mysql -uroot -p
#修改MySQL密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#退出重进验证密码
#允许root远程登陆:
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
#建立必要的MySQL数据库:
create user 'cm'@'%' identified by '123456';
create user 'hive'@'%' identified by '123456';
create user 'sentry'@'%' identified by '123456';
create database cm default character set utf8;
create database metastore default character set utf8;
create database sentry default character set utf8;
grant all privileges on cm.* to 'cm'@'%';
grant all privileges on metastore.* to 'hive'@'%';
grant all privileges on sentry.* to 'sentry'@'%';
exit
- 安装httpd服务(master节点)安装HTTP服务器,用于托管CDH的Web界面和API服务
#安装并启动:
yum install -y httpd
systemctl start httpd
#设置开机自启:
systemctl enable httpd
#在网页中输入:10.8.42.54 验证是否能打开test页面
- 配置Cloudera Manager安装包yum源(master节点)在主节点上设置本地YUM源,包含CDH和Cloudera Manager的安装包,便于节点安装和管理软件包。
#创建目录:
mkdir -p /var/www/html/cloudera-repos/cm6
#将下载好的rpm安装包上传到/var/www/html/cloudera-repos/cm6
#创建仓库:
cd /var/www/html/cloudera-repos/cm6
yum install -y createrepo
createrepo .
#创建repo文件(所有节点)
vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://[IP地址或master节点名称]/cloudera-repos/cm6
gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera
gpgcheck=0
enabled=1
autorefresh=0
type=rpm-md
#分发到另外两台节点:
scp /etc/yum.repos.d/cloudera-manager.repo cdh02:/etc/yum.repos.d/cloudera-manager.repo
scp /etc/yum.repos.d/cloudera-manager.repo cdh03:/etc/yum.repos.d/cloudera-manager.repo
#清理并缓存(所有节点):
yum clean all
yum makecache
#打开10.8.42.54/cloudera-repos/cm6/
- 安装cloudera manager(master节点)在主节点上安装Cloudera Manager Server和相关服务,它是管理CDH集群的中心组件。
#在master节点安装daemons、agent、server:
yum -y install openssl-libs
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
#在另外两台节点安装agent、deamons:
yum install cloudera-manager-daemons cloudera-manager-agent
#安装完cm后在/opt/下会出现cloudera目录,上传CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel到/opt/cloudera/parcel-repo目录,cd到cloudera目录下查看有parcel-repo文件,cd到parcel-repo目录下查看有parcel文件:
mv /opt/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel .
#执行校验:
sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
#执行cm初始化脚本:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm root 123456
#启动服务查看状态:
systemctl start cloudera-scm-server.service
systemctl status cloudera-scm-server.service
#netstat -anp|grep 7180查看端口使用
- CDH集群搭建
10.8.42.54:7180进入集群
输入账户密码admin/admin,点击“登录”