目錄
- 1.拉鏡像
- 2.創(chuàng)建容器
- 1.創(chuàng)建hadoop內(nèi)部網(wǎng)絡(luò)
- 2.創(chuàng)建master容器,開放端口
- 3.創(chuàng)建slave1容器,不開放端口
- 4.創(chuàng)建slave2容器,不開放端口
- 3.三臺(tái)主機(jī)都修改/etc/hosts文件
- 4.格式化hdfs
- 5.啟動(dòng)hadoop
- 6.web訪問測(cè)試
1.拉鏡像
這里推薦第一個(gè)
docker pull registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base
或者
docker pull qianiqan/hadoop_only
2.創(chuàng)建容器
三個(gè)容器的名稱分別是Master、Slave1、Slave2
1.創(chuàng)建hadoop內(nèi)部網(wǎng)絡(luò)
目的是實(shí)現(xiàn)容器與容器之間的相互通信
docker network create --driver=bridge hadoop
hadoop:是創(chuàng)建的網(wǎng)絡(luò)名
2.創(chuàng)建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 :指定該容器使用創(chuàng)建的hadoop網(wǎng)絡(luò)
–name Master :把該容器名稱命名為Master
-p 9870:9870 :將宿主機(jī)的9870端口號(hào),映射到容器的9870端口
-p 8088:8088 : 將宿主機(jī)的8088端口號(hào),映射到容器的8088端口
這兩個(gè)開放端口
3.創(chuàng)建slave1容器,不開放端口
docker run -it --network hadoop -h Slave1 --name Slave1 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash
不開端口,只有master容器開
4.創(chuàng)建slave2容器,不開放端口
docker run -it --network hadoop -h Slave2 --name Slave2 registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base bash
不開端口,只有master容器開
3.三臺(tái)主機(jī)都修改/etc/hosts文件
分別進(jìn)入三臺(tái)主機(jī),然后修改他們的hosts文件
vim /etc/hosts **************添加下面內(nèi)容************* 172.20.0.2 Master #(容器ip 容器主機(jī)名) 172.20.0.3 Slave1 172.20.0.4 Slave2
查看容器ip的方法
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器ID
4.格式化hdfs
在master容器內(nèi)操作
進(jìn)入hadoop的bin目錄格式化
可以看出hadoop的存放目錄為/usr/local/hadoop/
cd /usr/local/hadoop/bin - ./hadoop namenode -format
5.啟動(dòng)hadoop
三臺(tái)主機(jī)容器內(nèi)部都可以
cd /usr/local/hadoop/sbin - ./start-all.sh
6.web訪問測(cè)試
宿主機(jī)ip:9870