使用docker安装hadoop的实现过程

bangongJIAO1@c 发布于 2025-12-14 阅读(4)
目录
  • 1.拉镜像
  • 2.创建容器
    • 1.创建hadoop内部网络
    • 2.创建master容器,开放端口
    • 3.创建slave1容器,不开放端口
    • 4.创建slave2容器,不开放端口
  • 3.三台主机都修改/etc/hosts文件
    • 4.格式化hdfs
      • 5.启动hadoop
        • 6.web访问测试

          1.拉镜像

          这里推荐第一个

          docker pull registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base

          或者

          docker pull qianiqan/hadoop_only

          2.创建容器

          三个容器的名称分别是Master、Slave1、Slave2

          1.创建hadoop内部网络

          目的是实现容器与容器之间的相互通信

          docker network create --driver=bridge hadoop

          hadoop:是创建的网络名

          2.创建master容器,开放端口

          docker run -it --network hadoop -h Master --name Master -p 9870:9870 -p 8088:8088 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash

          --network hadoop :指定该容器使用创建的hadoop网络

          --name Master :把该容器名称命名为Master

          -p 9870:9870 :将宿主机的9870端口号,映射到容器的9870端口

          -p 8088:8088 : 将宿主机的8088端口号,映射到容器的8088端口

          这两个开放端口

          3.创建slave1容器,不开放端口

          docker run -it --network hadoop -h Slave1 --name Slave1 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash

          不开端口,只有master容器开

          4.创建slave2容器,不开放端口

          docker run -it --network hadoop -h Slave2 --name Slave2 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash

          不开端口,只有master容器开

          3.三台主机都修改/etc/hosts文件

          分别进入三台主机,然后修改他们的hosts文件

          vim /etc/hosts
          **************添加下面内容*************
          172.20.0.2	Master    #(容器ip   容器主机名)
          172.20.0.3	Slave1
          172.20.0.4	Slave2

          查看容器ip的方法

          docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器ID

          4.格式化hdfs

          在master容器内操作

          进入hadoop的bin目录格式化

          可以看出hadoop的存放目录为/usr/local/hadoop/

          cd /usr/local/hadoop/bin
          -
          ./hadoop namenode -format

          5.启动hadoop

          三台主机容器内部都可以

          cd /usr/local/hadoop/sbin
          -
          ./start-all.sh

          6.web访问测试

          宿主机ip:9870