Docker 搭建完全分布式CDH集群

本文档详细介绍了如何使用Docker Swarm在多台物理机上搭建完全分布式的CDH集群。从卸载并安装Docker,初始化Swarm,到创建网络,再到启动和配置容器,最后测试跨服务容器间的网络通讯和SSH设置,整个过程详尽而实用。此外,还涉及到了Parcel安装包的配置和CDH服务的启动。

前言

        基于前面的搭建,就会发现三台容器都是发布到一台物理机上,在一台物理机上实现了CDH集群的效果,这拿来测试还行,当时实际环境下,资源是远远不够用的。

        接下来,将基于前面的的步骤,使用安装包搭建完全分布式的CDH集群,在多个物理机上时间CDH集群的搭建。

        跨服务容器之间的通讯问题是搭建完全分布式CDH集群的难点,这里将使用Dokcer Swarm网络解决了这个问题。

1. 拷贝安装包

将镜像安装包拷贝到各个节点

主节点拷贝 master-server.tar.gz,hadoop_CDH.zip

从节点拷贝 agent-server.tar.gz

2. 卸载Docker(各个节点)

systemctl stop docker
yum -y remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
卸载旧版本:
yum -y remove docker docker-client docker-client-latest docker-common docker-latest \
    docker-latest-logratate docker-logrotate docker-engine

3. 安装Docker(各个节点)

安装需要的软件包:yum install -y yum-utils
添加国内yum源:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum索引:yum makecache fast
安装docker:yum -y install docker-ce docker-ce-cli containerd.io
测试命令:
    systemctl start docker \
    && docker version 
结果:
Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41

#配置镜像加速
sudo mkdir -p /etc/docker \
&& ( cat <<EOF
{"registry-mirrors":["https://qiyb9988.mirror.aliyuns.com"]}
EOF
) >> /etc/docker/daemon.json \
&& sudo systemctl daemon-reload \
&& sudo systemctl restart docker \
&& systemctl status docker 

3. 初始化swarm (主节点asrserver001作为manager)

# 如果初始使用,则强制swarm节点离开(各个节点)
docker swarm leave --force

# 注意:advertise-addr必须是内网地址,为了各个节点且能够相互ping通,ssh免密登录,
# 不然会导致节点内的容器相互访问异常(比如22端口访问拒绝)
[root@server001 ~]# docker swarm init --advertise-addr 172.16.0.6

结果:
Swarm initialized: current node (iqs8gjyc6rbecu8isps4i5xv9) is now a manager.
To add a worker to this swarm, run the following command:
    # 成为worker需执行的命令
    docker swarm join --token SWMTKN-1-66m3f30eafi307affyhjwp4954kuai9n5xb1lveetflg4u7bkb-cqzfkonnjxxtk7zqcl9omhs5b 172.16.0.6:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

注意:如果部署在云服务上,出站端口记得开放2377 端口

4. 加入worker节点(从节点server002-003 作为work)

# 获取上一步的执行命令,分别在从节点上执行
[root@server002 ~]# docker swarm join --token SWMTKN-1-66m3f30eafi307affyhjwp4954kuai9n5xb1lveetflg4u7bkb-cqzfkonnjxxtk7zqcl9omhs5b 172.16.0.6:2377
[root@server003 ~]# docker swarm join --token SWMTKN-1-66m3f30eafi307affyhjwp4954kuai9n5xb1lveetflg4u7bkb-cqzfkonnjxxtk7zqcl9omhs5b 172.16.0.6:2377
 # 从上可知,swarm node通过2377端口接入到swarm集群中的,务必开启该端口
 
 结果:
 This node joined a swarm as a worker.

5. 查看集群node信息(主节点)

[root@server001 ~]# docker node ls

# 结果
ID                            HOSTNAME       STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
iqs8gjyc6rbecu8isps4i5xv9 *   asrserver001   Ready     Active         Leader           20.10.8
rqrxol843ojajibfqbfcsk1l8     asrserver002   Ready     Active                          20.10.8
yu7udkwkul8nujgwdsx1tp5yo     asrserver003   Ready     Active                          20.10.8
从上诉可知各个节点已经形成集群,server001为Leader(manager),其他节点为worker

6. 创建overlay网络(主节点)

[root@server001 ~]# docker network create --opt encrypted --driver overlay --attachable cdh-net && docker n
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

secretWHD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值