0. 写在前面

网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程。

目标:使用docker搭建一个一主两从三台机器的hadoop2.7.7版本的集群

准备

  • 首先要有一台内存8G以上的centos7机器,我用的是阿里云主机。

  • 其次将jdk和hadoop包上传到服务器中。

1. 步骤

大致分以下几步:

  • 安装docker

  • 基础环境准备

  • 配置网络,并启动docker容器

  • 配置host及ssh免密登录

  • 安装配置hadoop

  • 测试使用hadoop

1.1 安装docker

依次执行如下步骤安装docker。如果有docker环境的可以跳过。ff23f2624579df396e76193d62725521.png

1.2 基础环境准备

1.2.1 创建基础的centos7镜像

拉取官方centos7镜像

通过build Dockfile生成带ssh功能的centos镜像

创建Dockerfile文件

vi Dockerfile

将如下内容写入Dockerfilefb2a9964237a0ac901fcf85ec9cea4f0.png

上述内容大概意思是:以centos镜像为基础,设置密码为wqe123,安装ssh服务并启动

构建Dockerfile

docker build -t="centos7-ssh" .

将生成一个名为centos7-ssh的镜像,可以通过docker images查看

1.2.2 生成有hadoop和jdk环境的镜像

将准备好的包放在当前目录下。hadoop-2.7.7.tar.gz和jdk-8u202-linux-x64.tar.gz

通过build Dockfile生成带hadoop和jdk环境的centos镜像

刚才已经创建了一个Dockerfile了,先将他移开。mv Dockerfile Dockerfile.bak

创建Dockerfile

vi Dockerfile

将以下内容写入:d6a2530493b9d0d2d7b0c11d86bbc00d.png

上述内容大概意思是:以上面生成的centos7-ssh为基础,将hadoop和jdk包放进去,然后配好环境变量。

构建Dockerfile

docker build -t="hadoop" .

将生成一个名为hadoop的镜像

1.3 配置网络,并启动docker容器

因为集群间必须要能网络连通,所以要先配置好网络。

创建网络

docker network create --driver bridge hadoop-br

以上命令创建了一个名为hadoop-br的bridge类型的网络

启动docker时指定网络fc6c2d5c5a326c96e488b01eca5e1fad.png

查看网络情况

docker network inspect hadoop-br 

执行以上命令就可以看到对应的网络信息:f2bc521443861f4c14490b3c5800f651.png

我们可以得知3台机器对应的ip:

172.18.0.2 hadoop1 172.18.0.3 hadoop2 172.18.0.4 hadoop3 

登录docker容器,互相之间就可以ping通了。

docker exec -it hadoop1 bash
docker exec -it hadoop2 bash
docker exec -it hadoop3 bas

本文转载自博客园:

https://www.cnblogs.com/upupfeng/p/13616125.html

微软MVP组建的.Net社区

你加入了吗?

微软MVP:Eleven组建

国内首屈一指的.Net活跃社区

完整配套的学习资料

最新最热的技术文章

社区内优质岗位直推

全部免费奉送给大家

优质内容持续更新中

戳以下文章立即获取

???

禁止外传!社区内部VIP干货资料自取

(课程视频+面试题+技术专刊+岗位内推)

8655eebcb8340a0ead8343b22cf86b79.gif

978ff72962a727cd7b25fb7bcd822d25.png

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐