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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用docker安装hadoop(已实现) - Python技术站