首先,最重要的是cdh6.3.2 最高支持centos7.9 ,如果用centos8 会安装不了agent rpm包。
CDH6.2.0不兼容CentOS8的问题_centos8 cdh_mylife512的博客-CSDN博客
1.制作centos7的镜像
docker pull centos:7
docker images
docker run -itd --name=hadoop --privileged centos:7 /usr/sbin/init
docker exec -it hadoop bash
1.1 解决 centos7 yum下载慢的问题
#1、备份
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#2、下载源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#还是慢 解决
yum install -y wget
# 失败 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#centos7
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
测试
yum update -y
yum -y install vim net-tools
1.2 下载 安装ssh 和下载cdh 安装的官方jdk
#java 路径/usr 下,这在后面的hadoop hbase集群要配置
yum install -y openssh-clients openssh-server
systemctl enable sshd && systemctl start sshd
java -version
netstat -lnpt
安装jdk
#到主机上拷贝到容器
docker cp oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm hadoop:/opt
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
rm -rf oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
ln -s /usr/java/jdk1.8.0_181-cloudera /usr/java/jdk1.8
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8
export CLASSPATH=.:$JAVA_HOMdE/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
vim /etc/bashrc #和上面一样的配置添加
1.3 下载 cdh安装所需的环境
yum -y remove mariadb-libs
yum update
yum -y install vim
yum -y install wget lrzsz
yum -y install net-tools psmisc
yum -y install iptables-services curl
yum -y install sudo chkconfig
yum -y install rsync ntp
yum -y install gcc gcc-c++
yum -y install python-devel
systemctl start ntpd
systemctl enable ntpd
#NTP模块时间同步
yum -y install ntp
chkconfig ntpd on
systemctl is-enabled ntpd
ntpdate -u ntp.aliyun.com
#半个小时同步一次(非必须)
echo '0,30 * * * * root ntpdate -u ntp.aliyun.com' >> /etc/crontab
cat /etc/crontab
# 查看时间是否准确
date
时间不对是时区问题
Centos7更新时间和一直不准确问题_centos .pool.ntp.org时间慢_xinhe96的博客-CSDN博客
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ll /etc/localtime
ll /usr/share/zoneinfo/Asia/Shanghai
date
1.4 免密登陆
#ssh 免密登陆
cd ~
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
2. 配置网卡
docker network create --driver=bridge CDH
docker network ls
3. 将这个容器打成 cdh镜像
docker commit -m "java and cdh idea" hadoop cdh
docker 安装 cdh 和上一篇安装hadoop集群差不多,这里记录一些不同的配置
4. 将 cdh1 作为后面的父本,相同的环境在这配置
docker run -itd --network CDH -h "CDH1" --name "CDH1" -p 3306:3306 --privileged cdh /sbin/init
docker exec -it CDH1 bash
5 安装mysql 主节点 安装cm6 的daemons
5.1 安装mysql
复制安装包到容器
docker cp mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz CDH1:/opt
docker cp mysql-connector-java-5.1.47.jar CDH1:/opt
具体参考链接
https://blog.csdn.net/qq_43565940/article/details/125344323
cd /opt
tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql5.7
安装完mysql5.7 后,要在mysql里建几个库。 这里cmf 和scm 二选其一,我是都创建了。
##DROP DATABASE scm;
##DROP USER scm;
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE cmf 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;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
GRANT ALL ON cmf.* TO 'scm'@'%' IDENTIFIED BY 'cmf';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
docker 安装要新增的内容
mysql服务启动失败,显示缺少文件,要如下下载
yum install -y libaio.so.1
yum install -y libaio
#ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
无法用service 要下载
yum list | grep initscripts
yum install initscripts -y
mysql 开机自启建议在 CDH2 开启
5.2 配置其他环境
yum -y install chkconfig httpd vim wget lrzsz net-tools psmisc iptables-services gcc gcc-c++ fop lsb bison flex readline-devel zlib-devel python libxslt-devel python-devel psmisc zlib sqlite cyrus-sasl-plain postgresql-libs.x86_64 cyrus-sasl-gssapi fuse fuse-libs redhat-lsb openssl-devel docbook-dtds docbook-style-xsl libxslt perl bind-utils portmap mod_ssl python-psycopg2 MySQL-python
yum -y install krb5-workstation krb5-libs
yum -y install httpd
chkconfig httpd on
service httpd start
systemctl is-enabled httpd.service
systemctl is-active httpd
sysctl vm.swappiness=10
echo 'vm.swappiness=10'>> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'>> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'>> /etc/rc.local
mkdir -p /opt/cloudera/parcel-cache
mkdir -p /opt/cloudera/parcel-repo
mkdir -p /opt/cloudera/parcels
mkdir -p /opt/cloudera/csd
mkdir -p /opt/cloudera-manager
useradd --system --home=/opt/cloudera-manager/cm-5.13.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false cloudera-scm
chown -R cloudera-scm:cloudera-scm /opt/cloudera
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
mv mysql-connector-java-5.1.47.jar /usr/share/java/
cd /usr/share/java/
mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* /opt/cloudera/parcel-repo/
mv manifest.json /opt/cloudera/parcel-repo/
#.sha1 文件都改为.sha
5.3 安装daemons
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
exit
docker stop CDH1
docker commit CDH1 cdh1
6.启动CDH2 CDH3 CDH4 容器
docker run -itd --network CDH -h "CDH02" --name "CDH02" -p 9870:9870 -p 8088:8088 -p 2181:2181 -p 7180:7180 --privileged cdh1 /sbin/init
docker exec -it CDH02 bash
#开启mysql自启
#将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld
#赋予可执行权限
chmod +x /etc/init.d/mysqld
#添加服务
chkconfig --add mysqld
#显示服务列表
chkconfig --list
docker run -itd --network CDH -h "CDH03" --name "CDH03" --privileged cdh1 /sbin/init
docker exec -it CDH03 bash
docker run -itd --network CDH -h "CDH04" --name "CDH04" --privileged cdh1 /sbin/init
docker exec -it CDH04 bash
docker run -itd --network CDH -h "CDH05" --name "CDH05" --privileged cdh1 /sbin/init
docker exec -it CDH05 bash
7. 安装 server 和agent
克隆完成后,每个节点安装agent
yum -y localinstall cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
主节点服务器安装server
yum -y localinstall cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cm6 安装完成
8. 安装 CDH主节点配置数据库信息
vim /etc/cloudera-scm-server/db.properties
修改信息。
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=CDH02
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=root
com.cloudera.cmf.db.password=123
com.cloudera.cmf.db.setupType=EXTERNAL
所有节点 将 localhost 改为 CDH02
vim /etc/cloudera-scm-agent/config.ini
9.CDH启动,停止服务等命令(方便复制版)
配置 server agent自启动
systemctl enable cloudera-scm-server
systemctl enable cloudera-scm-agent
systemctl enable cloudera-scm-agent
查看服务状态
systemctl status cloudera-scm-server
systemctl status cloudera-scm-agent
systemctl status cloudera-scm-agent
启动服务
systemctl start cloudera-scm-server
systemctl start cloudera-scm-agent
systemctl start cloudera-scm-agent
停止服务
systemctl stop cloudera-scm-server
systemctl stop cloudera-scm-agent
systemctl stop cloudera-scm-agent
10 . 修改 docker 容器的host 使其永久生效
systemctl stop docker.socket
systemctl stop docker
cd /var/lib/docker/containers
vim hostconfig.json
找到 ExtraHosts 配置项,修改:
["CDH02:178.18.0.2","CDH03:178.18.0.3","CDH04:178.18.0.4"]
["CDH02:172.18.0.2","CDH03:172.18.0.3","CDH04:172.18.0.4","CDH05:172.18.0.5"]