您的位置:首页 > 运维架构 > Docker

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

2016-09-17 08:54 537 查看
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等文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: