docker 安装 CDH6 遇到的问题

首先,最重要的是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 使其永久生效

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"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值