docker 打包cdh镜像
Last updated on November 20, 2025 am
🧙 Questions
使用docker安装cdh
☄️ Ideas
抢占一台可以联网的服务器
推荐centos系统
docker run -itd \
--privileged=true \
--name=cdh \
-e TZ=Asia/Shanghai \
centos:centos7.9.2009 /sbin/init下载cdh安装包
cd /tmp
nohup wget xxxxxxx >> download_cdh.log 2>&1 &
tail -f download_cdh.log将安装包拷贝到容器
docker cp /tmp/cdh.zip cdh:/tmp/进入容器
docker exec -it cdh /bin/bash安装阿里软件源
mkdir -p /etc/yum.repos.d_bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d_bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache前提安装软件和jdbc驱动
yum install python3 bind-utils postgresql-server java-1.8.0-openjdk-devel java-1.8.0-openjdk unzip openssh-clients vim net-tools ntp telnet -y
cd /tmp && unzip cdh.zip
cp /tmp/cdh/jdbc/mysql-connector-java-8.0.23.jar /usr/share/java/mysql-connector-java.jar安装cdh-scm软件
cd /tmp/cdh/cdh6.2.0/cloudera-repos-6.2.0
yum install -y cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
yum install -y cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
yum install -y cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm优化配置
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled安装ntp服务
vim /etc/ntp.conf# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 3systemctl enable ntpd
systemctl start ntpd
systemctl status ntpd
ntpq -np
timedatectl status打包新的cdh-cms镜像
# 删除多余的安装资源
rm -rf /tmp/cdh.zip /tmp/cdh /tmp/__MACOSX
exit
docker commit cdh cdh-cms:1.0
# docker stop cdh
# docker rm cdh
docker images -a生成一个httpd的镜像
docker run -itd \
--privileged=true \
--name=cdh-httpd \
-e TZ=Asia/Shanghai \
centos:centos7.9.2009 /sbin/init
docker cp /tmp/cdh.zip cdh-httpd:/tmp/
docker exec -it cdh-httpd /bin/bashmkdir -p /etc/yum.repos.d_bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d_bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache安装httpd软件
yum install httpd unzip vim createrepo -y
cd /tmp && unzip cdh.zip
systemctl start httpd
vim /etc/httpd/conf/httpd.conf修改端口号
#Listen 12.34.56.78:80
Listen 30108systemctl restart httpd
systemctl enable httpd
systemctl status httpdmkdir -p /var/www/html/cdh6_parcel
mkdir -p /var/www/html/cdh6_parcel/cm6
cp /tmp/cdh/cdh6.2.0/parcel-6.2.0/* /var/www/html/cdh6_parcel
cp /tmp/cdh/cdh6.2.0/cloudera-repos-6.2.0/* /var/www/html/cdh6_parcel/cm6/生成cdh软件源
cd /var/www/html/cdh6_parcel/cm6/
createrepo .rm -rf /tmp/cdh.zip /tmp/cdh /tmp/__MACOSX
exit
docker commit cdh-httpd cdh-httpd:1.0
docker images启动一个httpd
docker run -itd \
--privileged=true \
--name=cdh-httpd-test \
-e TZ=Asia/Shanghai \
--net=host \
cdh-httpd:1.0 /sbin/init- parcel镜像地址: http://101.132.253.79:30108/cdh6_parcel/ (CDH and other software)
- cm6镜像地址: http://101.132.253.79:30108/cdh6_parcel/cm6/ (Cloudera Manager Agent)
启动一个docker节点,打包cdh-node镜像
docker run -itd \
--privileged=true \
--name=cdh-agent \
--add-host=cdh-master:172.19.189.246 \
centos:centos7.9.2009 /sbin/init
docker cp /tmp/cdh.zip cdh-agent:/tmp/
docker exec -it cdh-agent /bin/bash安装必须软件
mkdir -p /etc/yum.repos.d_bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d_bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache
yum install openssh-server vim net-tools iproute passwd openssl java-1.8.0-openjdk-devel java-1.8.0-openjdk openssh-clients ntp python3 bind-utils postgresql-server unzip telnet -y优化配置
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled拷贝jdbc
cd /tmp && unzip cdh.zip
cp /tmp/cdh/jdbc/mysql-connector-java-8.0.23.jar /usr/share/java/mysql-connector-java.jar安装ntp服务
指向cms
vim /etc/ntp.conf# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server cdh-master iburstsystemctl enable ntpd
systemctl start ntpd
systemctl status ntpd
ntpq -np
timedatectl status节点容器中启动ssh服务,修改端口号
vim /etc/ssh/sshd_configPort 30115
PermitRootLogin yessed -i "s/#UseDNS.*/UseDNS no/g" /etc/ssh/sshd_config
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''启动ssh服务
/usr/sbin/sshd
# 修改密码
passwd root
# 设置密码 xCQUuqSidwV2SA_国产sshd算法太新的问题
vim /etc/ssh/sshd_config
# KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
# 查看当前策略
update-crypto-policies --show
# 通常是 DEFAULT 或 FIPS
# 切换到 LEGACY 策略(启用 SHA1、弱 DH 等)
sudo update-crypto-policies --set LEGACY
# 重启 sshd
sudo systemctl restart sshd在节点容器内添加cdh软件源
vim /etc/yum.repos.d/cloudera-manager.repo[cloudera-manager]
name=Cloudera Manager 6.2.0
baseurl=http://cdh-master:30108/cdh6_parcel/cm6
gpgcheck=0
enabled=1提前安装oracle-j2sdk1.8.x86_64和cloudera-manager-agent
yum-config-manager --enable cloudera-manager
yum clean all && yum makecache
yum -y install oracle-j2sdk1.8.x86_64 cloudera-manager-agent容器节点打包新的镜像cdh-node
rm -rf /tmp/cdh.zip /tmp/cdh /tmp/__MACOSX
exit
docker commit cdh-agent cdh-node:1.0
# docker stop cdh-agent
# docker rm cdh-agent
docker images -a使用镜像安装cdh
在服务器上使用docker安装一个mysql(外部/master主机)
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf.d
docker run \
--name cdh-mysql \
--privileged=true \
--restart=always \
-d \
-p 30306:3306 \
-e MYSQL_ROOT_PASSWORD=ispong123 \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
mysql:8.0创建数据库
docker exec -it cdh-mysql bash
mysql -h localhost -u root -pispong123 -P 3306CREATE DATABASE cdh_scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE cdh_hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE cdh_monitor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;重启一个cdh-cms的真实容器
hostnamectl set-hostname cdh-master
vim /etc/hosts#172.19.189.246 iZuf68w6yjxihq83rqzxeiZ iZuf68w6yjxihq83rqzxeiZ
172.19.189.246 cdh-masterdocker run -itd \
--privileged=true \
--name=cdh-cms \
--net=host \
-e TZ=Asia/Shanghai \
cdh-cms:1.0 /sbin/init在cms容器中,初始化数据库,并启动cms服务
docker exec -it cdh-cms /bin/bash
/opt/cloudera/cm/schema/scm_prepare_database.sh -h cdh-master -P 30306 mysql cdh_scm root ispong123启动cms服务
systemctl enable cloudera-scm-server
systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log访问cdh服务
- http://101.132.253.79:7180
- admin
- admin
启动一个node容器
docker run -itd \
--privileged=true \
--name=cdh-node \
--net=host \
-e TZ=Asia/Shanghai \
cdh-node:1.0 /sbin/init
docker exec -it cdh-node /bin/bash使用scm界面安装
使用内网ip
节点信息
hostname: cdh-master
port: 30115
user: root
password: xCQUuqSidwV2SA_
- parcel镜像地址: http://cdh-master:30108/cdh6_parcel/ (CDH and other software)
- cm6镜像地址: http://cdh-master:30108/cdh6_parcel/cm6/ (Cloudera Manager Agent)
tail -n 500 /var/log/cloudera-scm-agent/cloudera-scm-agent.log
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.logDataNode Data Directory: /data/dfs/dn
NameNode Data Directories: /data/dfs/nn
HDFS Checkpoint Directories: /data/dfs/snn
NodeManager Local Directories: /data/yarn/nm/data/dfs/dn
/data/dfs/nn
/data/dfs/snn
/data/yarn/nm
/var/lib/zookeeper
/var/lib/cloudera-service-monitor
/var/lib/cloudera-host-monitor
/var/local/kafka/data
/data/cloudera/parcels
/opt/cloudera/parcel-repo压缩镜像导出
docker save -o /tmp/cdh-node-1.0-amd64.tar cdh-node:1.0
docker save -o /tmp/cdh-cms-1.0-amd64.tar cdh-cms:1.0
docker save -o /tmp/cdh-httpd-1.0-amd64.tar cdh-httpd:1.0
scp root@101.132.253.79:/tmp/cdh-node-1.0-amd64.tar ~/Downloads
scp root@101.132.253.79:/tmp/cdh-cms-1.0-amd64.tar ~/Downloads
scp root@101.132.253.79:/tmp/cdh-httpd-1.0-amd64.tar ~/Downloads🔗 Links
docker 打包cdh镜像
https://ispong.isxcode.com/kubernetes/docker/docker 打包cdh镜像/