一、部署前准备
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# systemctl stop firewalld.service && systemctl disable firewalld.service
# setenforce 0
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
1.安装以下依赖命令
# yum -y install rsync wget unzip
2.设置hosts(所有主机):
# cat >> /etc/hosts << EOF
172.16.151.101 cdh01
172.16.151.102 cdh02
172.16.151.103 cdh03
172.16.51.104 cdh04
172.16.51.105 cdh05
EOF
3.集群之间设置免密登录(所有主机):
[root@cdh01 ~]# ssh-keygen -t rsa
[root@cdh01 ~]# ssh-copy-id cdh02 #root密码
4.集群同步脚本
[root@cdh01 software]# mkdir -p /data/bin
[root@cdh01 software]# cat /data/bin/xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=2; host<6; host++)); do
echo ------------------- cdh0$host --------------
rsync -av $pdir/$fname $user@cdh0$host:$pdir
done
[root@cdh01 software]# vim /data/bin/xcall.sh
[root@cdh01 software]# cat /data/bin/xcall.sh
#! /bin/bash
for i in cdh01 cdh02 cdh03 cdh04 cdh05
do
echo --------- $i ----------
ssh $i "$*"
done
[root@cdh01 software]# chmod 777 /data/bin/xcall.sh /data/bin/xsync
5.安装JDK组件并同步给所有主机
[root@cdh01 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
[root@cdh01 software]# cat /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@cdh01 software]# /data/bin/xsync /usr/java/
[root@cdh01 software]# /data/bin/xsync /etc/profile.d/my_env.sh
[root@cdh01 software]# /data/bin/xcall.sh source /etc/profile.d/my_env.sh
[root@cdh01 software]# /data/bin/xcall.sh java -version
6.安装mysql5.7服务(主节点cdh01):
[root@cdh01 MySQL5.7]# ls /opt/software/MySQL5.7/
卸载mariadb、解压 mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
在上传有mysql的目录下执行:
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --nodeps --force
启动MySQL数据库:
[root@cdh01 MySQL5.7]# systemctl start mysqld && systemctl enable mysqld
[root@cdh01 ~]# grep 'temporary password' /var/log/mysqld.log
2023-06-09T08:43:28.652660Z 1 [Note] A temporary password is generated for root@localhost: u#efkjKcX8hz
[root@cdh01 ~]# mysql -uroot -pu#efkjKcX8hz
mysql> alter user root@localhost identified by 'Cnhqd@123';
mysql> flush privileges;
二、CM的安装部署
1.mysql数据库中建库
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Scm@123456';
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
flush privileges;
查看数据库:show databases;
2.CM安装
将mysql-connector-java-5.1.27-bin.jar拷贝到/usr/share/java路径下,并重命名:
[root@cdh01 software]# mkdir /usr/share/java
[root@cdh01 java]# wget -P /usr/share/java/ https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.27/mysql-connector-java-5.1.27.jar
[root@cdh01 java]# mv /usr/share/java/mysql-connector-java-5.1.27.jar /usr/share/java/mysql-connector-java.jar
[root@cdh01 java]# /data/bin/xsync /usr/share/java
创建cloudera-manager目录,存放cdh安装文件:
[root@cdh01 java]# mkdir /data/cloudera-manager
[root@cdh01 software]# tar -xvf cm6.3.1-redhat7.tar.gz
[root@cdh01 software]# cd cm6.3.1/RPMS/x86_64/
[root@cdh01 x86_64]# mv cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm /data/cloudera-manager/
[root@cdh01 x86_64]# cd /data/cloudera-manager/
[root@cdh01 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
把这个目录下的所有文件复制到其他服务器上:
/data/bin/xsync /opt/cloudera
/data/bin/xsync /data/cloudera-manager/
其余机器安装:
# rpm -ivh /data/cloudera-manager/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
所有机器安装cloudera-manager-agent:
# yum install -y bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
# rpm -ivh /data/cloudera-manager/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
安装agent的server节点配置更改(所有都要改)
# sed -i 's#server_host=localhost#server_host=cdh01#g' /etc/cloudera-scm-agent/config.ini
安装cloudera-manager-server:
# rpm -ivh /data/cloudera-manager/cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
# cat /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdh01:3306
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=Scm@123456
com.cloudera.cmf.db.setupType=EXTERNAL
上传CDH的包到parcel-repo:
[root@cdh01 parcel-repo]# ls /opt/cloudera/parcel-repo
allkeys.asc CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 manifest.json
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.torrent
[root@cdh01 parcel-repo]# mv 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.sha
启动server服务:
[root@cdh01 parcel-repo]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password:Scm@123456
[root@cdh01 parcel-repo]# systemctl start cloudera-scm-server.service
[root@cdh01 parcel-repo]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
所有节点启动客户端服务:
# systemctl start cloudera-scm-agent
三、集群安装
admin,admin