Docker安装部署Hadoop环境,通过三个容器来模拟三个节点,最后只保留Master节点实现搭建。
安装环境
Ubuntu 22.04.1 LTS 和Docker 23.0.1
安装过程
拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base
在Docker中创建网络,方便通信
docker network create --driver=bridge hadoop
创建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端口 这两个开放端口,其他节点不暴露端口
创建slave1和slave2节点
docker run -it --network hadoop -h Slave2 --name Slave2 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash
docker run -it --network hadoop -h Slave2 --name Slave2 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash
分别进入三个容器修改hosts文件
在修改之前,先分别查看三台主机的容器IP,后面的是你的容器id,可以通过docker ps查看
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 9883affae876
我这里的三台主机的IP为:
Master 172.19.0.2
Slave1 172.19.0.3
Slave2 172.19.0.4
进入容器修改/etc/hosts文件
docker exec -it 9883affae876 bash
在Master执行集群初始化
先进入Master节点容器的/usr/local/hadoop/bin
./hadoop namenode -format
在看到这个结果就算成功了
启动集群
回到sbin目录下,输入
./start-all.sh
然后再访问IP:9870就可以查看了
总结,通过Docker安装真的很方便,如果大家并没有那么多时间去做这些运维的工作,Docker部署真的是一个很好的方式