基于Docker搭建Hadoop集群(ubuntu操作系统)

1.      项目说明

关于Docker方面的内容,我们这里就不做介绍了,大家可以访问Docker官方网站(https://www.docker.com)获取详细的信息,包括Docker安装部署,基本操作命令等等。

 

我这个项目的目标是将Hadoop集群运行在Docker容器中,使Hadoop开发者能够快速便捷地在本机搭建多节点的Hadoop集群,即通过一台Ubuntu节点运行Hadoop集群环境。

 

针对项目的环境信息如下:

Hadoop安装包:hadoop-2.7.3.tar.gz

JDK安装包:jdk-7u80-linux-x64.tar.gz

Linux操作系统(64位)以及内核版本:ubuntu-16.04/4.4.0-36-generic

Docker版本:1.12.1

 

过多的理论知识,我就不做讲解了,有问题的朋友可以咨询我。

 

2.      搭建3个节点的Hadoop集群

2.1   下载Hadoop的Docker镜像

docker pull jiangshouzhuang/hadoop2.7.3-cluster-on-docker:1.0

 

下载完成后,进行验证:

docker images

 

输出结果为:

REPOSITORY                                                              TAG   IMAGE ID          CREATED                SIZE

jiangshouzhuang/hadoop2.7.3-cluster-on-docker 1.0  03b627a5544b  About an hour ago  859.2 MB

 

2.2   下载Github仓库中所需要的配置文件

git clone https://github.com/jiangshouzhuang/hadoop-cluster-on-docker

 

2.3   创建Hadoop集群所需的网络

docker network create --driver=bridge hadoop

 

2.4   运行Docker容器

cd hadoop-cluster-on-docker

chmod +x *

./start-container.sh

 

输出结果为:

output:

start master container...

start slave1 container...

start slave2 container...

root@master:/#

这里我们启动了3个容器,包括一个Master节点,2个Slave节点。

下面步骤的执行都是在master的容器中(root@master:/#)操作的。

 

2.5   启动Hadoop,包括HDFS和YARN

root@master:/# start-hadoop.sh

 

或者你也可以单独启动HDFS和Yarn,如下:

root@master:/# start-dfs.sh

root@master:/# start-yarn.sh

 

2.6   运行WordCount程序验证Hadoop集群环境

root@master:/# run-wordcount.sh

 

如果运行成功的话,结果为:

input file1.txt:

Hello Hadoop

 

input file2.txt:

Hello Docker

 

wordcount output:

Docker        1

Hadoop      1

Hello  2

 

Hadoop相关管理页面如下:

NameNode: http://192.168.1.104:50070/

ResourceManager: http://192.168.1.104:8088/

192.168.1.104为Docker宿主的IP地址。

 

 

2.7   查看正在运行的容器

我们可以通过docker ps查看正在运行的容器,如下:

我们可以看到master容器将NameNode和ResourceManager的管理页面的端口号映射到宿主机上了,如图为0.0.0.0:8088->8088/tcp, 0.0.0.0:50070->50070/tcp。

 

3.      定制需要的N个Hadoop集群

3.1   参考上面的3个Hadoop集群的2.1~2.3步骤

3.2   重新构建Docker镜像

其实这一步主要是修改Hadoop的Slave配置文件slaves。

首先请确保将JDK和Hadoop的安装包放到hadoop-cluster-on-docker目录中。

chmod +x *

./resize-cluster.sh 5

参数的大小根据实际情况指定。

 

3.3   启动Docker

./start-container.sh 5

参数的大小保持和上面一致。

 

3.4   运行Hadoop集群并测试

参考2.5~2.7步骤。

 

4.      最后的几点说明

4.1   目前的项目无法做到在已有的Hadoop集群中增加新节点

4.2   对于HBase,Hive等,可以在此镜像基础上进行构建新的镜像

4.3   如果想保存容器中的HDFS数据,那么可以使用docker volume解决

4.4   对于使用其他版本的JDK和Hadoop,需要修改Dockerfile等文件

你可能感兴趣的:(Hadoop,Docker)