超快速使用docker在本地搭建hadoop分布式集群

超快速使用docker在本地搭建hadoop分布式集群

超快速使用docker在本地搭建hadoop分布式集群


学习hadoop集群环境搭建是hadoop入门的必经之路。搭建分布式集群通常有两个办法:

  • 找多台机器来部署(通常找不到机器)
  • 在本地开多个虚拟机(对宿主机器性能要求很高)

如果以上两种办法都对您不适用,那么现在有种更好更方便的办法,使用docker在本地做虚拟化,搭建hadoop伪分布式集群环境。虽然有点大材小用,但是用来练习还是挺好的。

操作思路:

  1. 使用docker构建一个Hadoop运行环境的镜像文件
  2. 使用这个镜像文件分别启动三个容器:1个master节点,2个slave节点
  3. 在master节点上配置slave节点信息
  4. 在master上启动hadoop

什么是docker?

docker是一个开源项目,诞生于2013年,最初是dotCloud公司内部额一个业余项目,它基于google推出的Go语言实现。项目后来加入了linux基金会,遵Apache2.0协议,项目代码在github上进行维护。

docker项目的目标是实现轻量级操作系统虚拟化解决方案。docker的基础是linux容器(LXC)等技术。

在LXC的基础上docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作变得简单。用户操作docker的容器就像操作一个快速轻量级的虚拟机一样简单。

(↑以上来自百度)

docker的安装和基本使用

我使用的是fedora22

su -
dnf update && dnf install docker

为了简化,我们假定使用用户是root

下面是检查安装

docker version

或者是

docker info

以守护进程方式启动Docker

docker -d

还可以设定docker髓系统启动,以便我们不需要每次重启都需要运行上面命令

chkconfig docker on

我们还可以用Busybox来打印hello world

docker run -t busybox /bin/echo "hello world"

在这个命令里,我们会告诉docker在Busybox镜像文件的一个实例/容器里执行 /bin/echo “hello world”。

而Busybox是一个小型化的POSIX环境,将很多小工具都结合到一个单独可执行程序里。

我们还可以拉取/下载 Fedora镜像文件:

docker pull fedora:22

下载完成以后,使用docker images,可以列出所有本地的镜像文件

启动一个容器在后台运行:

docker run -dt fedora:22 /bin/bash

注意:如果我们不指定tag的情况下,默认选择tag为latest的镜像文件启动容器;如果我们不指定执行程序的情况下,docker默认执行/bin/bash。在上面的例子也可以写成就是docker run -dt fedora

执行命令,发现容器几乎瞬间启动起来了。比虚拟机快了不知道多少倍。

另外,列出正在运行的容器及其名字标识:

docker ps

关于如何安装hadoop,可以参考在虚拟机安装hadoop的情况,这是大致相同的。

另外地,当你的容器做好了运行hadoop的环境,是时候保存容器当前的状态为一个镜像文件,以备需要的时候使用。

△注意:为了离开容器环境,你必须顺序按下ctrl+qctrl+p,如果你仅仅在shell执行exit,你在停止容器的时候也会失去了目前所做过的所有工作!

回到docker主机,使用docker commit及容器名和你想要的仓库名字/标签:

[root@8ef06706f88d ~]# exit
[KANO@kelvin ~]$ docker commit -m "hadoop install" 8ef06706f88d fedora:hadoop

现在,你保存了容器的状态到一个镜像里,可以使用 docker stop 停止容器了:

docker stop 8ef06706f88d

甚至我们可以直接使用别人已经建好的hadoop项目,详情请看项目地址:https://github.com/kiwenlau/hadoop-cluster-docker

上一篇:mysql Using filesort 索引不可用问题


下一篇:.Net 如何实现 LINQ~