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