基于hadoop与MapReduce的分布式编程
在上一章中,我们使用docker构建了Hadoop的分布式环境镜像,并使用docker run
命令从该镜像中部署了一主两从的三个分布式节点:master、worker01、worker02。(需要把实验一的master 、worker01、worker02先用 docker rm xxxx删掉)
重新部署命令如下:
sudo docker run -p 8088:8088 -p 9000:9000 -v /home/ryu/Documents/hadoop/master/share:/root/share -it -h master --name master <IMAGE NAME>
sudo docker run -v /home/ryu/Documents/hadoop/worker01/share:/root/share -it -h worker01 --name worker01 62afe84074f5
sudo docker run -v /home/ryu/Documents/hadoop/worker02/share:/root/share -it -h worker02 --name worker02 <IMAGE NAME>
在端口映射上,需要打开9000
端口,方便客户端访问分布式文件系统HDFS。
另外,8088
端口为Hadoop的应用程序web界面,打开后可以通过web查看应用程序与节点的状态。
(下面内容只是用另一种方式部署网络,即实验一的最后几步程序),实际上在实验一的基础上可以直接跑本次实验的程序)通过docker run
命令部署仍然稍显麻烦,下一节将介绍使用docker-compose部署容器的方法。
通过docker-compose部署容器
安装docker-compose
查询docker版本号。
在host上执行。
sudo docker -v
根据查询到的版本号,在下列网站找到对应的docker-compose版本。
https://github.com/docker/compose/releases
这里,我们使用最新的1.25.5版本。
执行下列命令,安装docker-compose。
docker-compose为单一可执行文件,将其放到/usr/local/bin
中,给予文件执行权限即可使用。
当前使用的是1.25.5版本。
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/d