使用docker-compose 构建hadoop集群基础环境(ssh免密以及java的安装)端口映射可自己改

有两种方式可运行一种是docker-compose 一种是拉取镜像后docker run

docker-compose 方式

docker-compose.yml文件

version: "3"

services:
  hadoop01:
    image: yujiangxian/hadoop-basic:master
    container_name: master
    privileged: true
    command: ['/usr/sbin/init']
    hostname: master
    tty: true
    stdin_open: true
    ports:
      - 50070:50070
      - 9870:9870
      - 9000:9000
      - 8088:8088
      - 19888:19888
    networks:
      net:
        ipv4_address: 172.18.0.12

  hadoop02:
    image: yujiangxian/hadoop-basic:slave1
    container_name: slave1
    privileged: true
    command: ['/usr/sbin/init']
    hostname: slave1
    tty: true
    stdin_open: true
    networks:
      net:
        ipv4_address: 172.18.0.13
      
  hadoop03:
    image: yujiangxian/hadoop-basic:slave2
    container_name: slave2
    privileged: true
    command: ['/usr/sbin/init']
    tty: true
    stdin_open: true
    hostname: slave2
    networks:
      net:
        ipv4_address: 172.18.0.14

networks:
  net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/24
          gateway: 172.18.0.1

首先 进入此文件夹路径下的命令行

docker-compose up -d 拉取三镜像并启动容器

然后进入三台容器对每台容器进行环境初始化

docker exec -it 容器名 /bin/bash
cd /root/
source .bash_profile
java -version
systemctl status sshd

最后,hadoop相关软件为了容器大小这里就不放镜像了,需要你们自己添加到容器内
添加命令

docker cp 你的文件路径 容器ID或容器名:容器文件路径

docker run 方式

先拉取镜像

docker pull yujiangxian/hadoop-basic:master
docker pull yujiangxian/hadoop-basic:slave1
docker pull yujiangxian/hadoop-basic:slave2

创建网桥

docker network create -d bridge net --subnet=172.18.0.0/24 --gateway=172.18.0.1

master run

docker run -itd –-privileged=true --name master --hostname master --net docker-hadoopha_net --ip 172.18.0.12 --add-host master:172.18.0.12 -d -p 50070:50070 -p 9870:9870 -p 9000:9000 -p 8088:8088 -p 19888:19888 master /usr/sbin/init

enter master
docker exec -it master /bin/bash

初始化环境变量 检验java和ssh服务

cd  /root/

source .bash_profile

java -version

systemctl status sshd

slave1 run

docker run -itd --privileged=true --name slave1 --hostname slave1 --net docker-hadoopha_net --ip 172.18.0.13 --add-host slave1:172.18.0.13 -d slave1 /usr/sbin/init
enter slave1
docker exec -it slave1 /bin/bash

初始化环境变量 检验java和ssh服务

cd  /root/

source .bash_profile

java -version

systemctl status sshd

slave2 run

docker run -itd --privileged=true --name slave2 --hostname slave2 --net docker-hadoopha_net --ip 172.18.0.14 --add-host slave2:172.18.0.14 -d slave2ssh /usr/sbin/init
enter slave2
docker exec -it slave2 /bin/bash

初始化环境变量 检验java和ssh服务

cd  /root/

source .bash_profile

java -version

systemctl status sshd

常见问题:

ERROR: Pool overlaps with other one on this address space\n

网络地址资源被占用
docker network ls 查看有哪些网桥

docker network  inspect 你的网桥名字

docker network rm brideg(占用资源网桥名字)   删除占用资源网桥

然后再进行docker-compose up -d
如果是docker run运行容器 需要自行创建网桥

docker network create -d bridge net --subnet=172.18.0.0/24 --gateway=172.18.0.1

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玉江仙。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值