基于docker的CDH离线安装部署。将cdh安装在docker中,并配置网络

该博客详细介绍了如何在Docker中基于CentOS7离线安装CDH 6.1.1,包括集群规划、网络设置、创建基础镜像、配置Cloudera Manager的Parcel仓库、安装数据库和CM服务器、部署CDH节点。此外,还提供了问题解决方案,如cm_guid不匹配的处理方法,并附带了多个Docker容器内的服务安装和配置,如NTP、MySQL、httpd和redis。
摘要由CSDN通过智能技术生成

规划与规范

确定版本

服务器版本:Centos7

CDH版本:CDH 6.1.1

JDK版本:openjdk1.8

docker engine:19.0.3

Database:mysql 5.7

统一用户密码或设置免密登录

CDH安装过程中需要用到root用户权限,一般使用root用户进行安装。如果必须使用非root用户,请参考官网配置。

如果使用root用户,则统一密码。

如果使用免密登录,则配置免密登录(Centos7配置略)。

密码规范:(略)

集群规划

1台本地仓库repo服务器,带httpd服务。

1台mysql服务器,用作CDH元数据库。

1台cm管理服务器。

6台host节点服务器。

规划网络(内外通讯模式和矩阵)

设置内部局域网,subnet为172.19.0.0/16,gateway为172.19.1.1,只有一个对外堡垒机即CM服务器(配置docker端口映射7180、22两个端口),其他服务器均为局域网内服务器。

网络拓扑图如下:

(略)

规范主机名网络名

主机名规范:假设XX表示cdh集群编号,YY表示服务编号,两者均为从01开始的正整数,则,

cm服务器主机名规范为:cdhXXcmYY

host服务器主机名规范为:cdhXXhostYY

matedatadb主机名规范为:cdhXXmatedbYY

本地仓库repo的主机名为固定为 repo

网络名固定为 e-marker.com

最后的hosts映射关系为:

cdh01cm01.e-marker.com:172.19.0.4

cdh01host01.e-marker.com:172.19.0.5

cdh01host02.e-marker.com:172.19.0.6

cdh01host03.e-marker.com:172.19.0.7

cdh01host04.e-marker.com:172.19.0.8

cdh01host05.e-marker.com:172.19.0.9

cdh01host06.e-marker.com:172.19.0.10

repo.e-marker.com:172.19.0.2

cdh01matedb01.e-marker.com:172.19.0.3

规划挂载卷

1、mysql配置目录:

2、mysql数据目录:

3、HDFS的数据目录:

4、CDH的配置目录:

创建基础镜像

下载centos镜像

docker pull centos:7

必备安装与设置

由于docker版的centos7极度精简,只有220m,很多软件需要自己安装。

#repo服务器创建docker镜像,安装:httpd(设置自启动)。

#cm和host服务器创建docker镜像,

1)安装:openssh-clients、openssh-server(配置SSH登录)、java-1.8.0-openjdk-devel、mysql-connector-java、ntpd(设置自启动)。

2)repo

vi /etc/yum.repos.d/cloudera-repo.repo

[cloudera-repo]

name=cloudera-repo

baseurl=http://repo.e-marker.com/cloudera-repos/cm6/

enabled=1

gpgcheck=0

注意:其中baseurl是!!!!!!!!!!!!!!!!

3)设置root用户密码。

4)Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10,建议设置为1。

修改swappiness参数有临时修改和永久修改两种方法:

----临时修改:

# sysctl vm.swappiness=1

vm.swappiness = 1

----永久修改:

vi /etc/sysctl.conf,添加如下参数:

vm.swappiness=1

或者:

# echo 'vm.swappiness=1'>> /etc/sysctl.conf

保存,重启生效。

#ssh免登录设置

见前面的文章:ssh配置免密登录手动版和脚本版

https://segmentfault.com/a/1190000019919600?share_user=1030000019541827

#禁用防火墙(如果安装了防火墙)

CentOS7防火墙命令

firewall-cmd --state                 查看防火墙

systemctl stop firewalld.service     关闭防火墙

systemctl disable firewalld.service  永久关闭防火墙

注释:docker版centos7不需要。

#禁用SElinux

1)检查SElinux 状态

getenforce

2) 如果输出是 Permissive 或者 Disabled, 则不用配置SElinux,如果输出是enforcing 执行下面步骤设置SElinux

setenforce 0 (临时生效)

修改 /etc/selinux/config 下的 SELINUX=disabled 或者 permissive(重启后永久生效)  

注释:docker版centos7不需要。

#使能NTP服务并同步

Enable an NTP Service | 6.1.x | Cloudera Documentation

注释:docker版centos7没有chronyd,手动安装ntpd服务。

#安装Python 2.7

CDH 6 需要 Python 2.7,RHEL 7系统包含Python 2.7,因此不要安装。查看pyhton 版本

python -V

注释:docker版centos7不需要。

%容器导出镜像%

配置Cloudera Manager 使用Parcel repo

  1. 两种方法二选一,配置parcel
  2. Navigation bar - 导航条
  3. 点击navigation bar 的parcel图标或者点击 Hosts 然后点击 Parcels 标签
  4. 点击 Configuration 按钮
  5. Menu - 菜单
  6. 选择 Administration (管理) -> Settings (设置)
  7. 选择 Category  > Parcels
  8. Remote Pacel Respository URLs 点击添加按钮,并添加。
  9. 填上parcel地址,比如  http://<web_server>/cloudera-parcels/cdh6/6.2.0/
  10. 填写 Reason for change  变更原因,点击 Save Changes 提交保存。

做好集群规划

CM使用两台、hdfs至少3台,kafka至少3台。

配置一台软件仓库服务器,仅仅在安装和升级的时候使用一次即可。固定hostname=bd000.mybd.com

使用本地包仓库部署安装

安装教程参考:

Step 4: Install and Configure Dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值