在docker上搭建hadoop集群
在docker上搭建hadoop集群
Java 分布式应用
共1Star
详细介绍
在docker上搭建hadoop集群
1 安装docker
参考教程《Docker——从入门到实践》安装章节。要注意的是,本repo中的脚本默认你已经建立的docker用户组,并且已经将当前用户添加到docker用户组了。
2 测试hadoop集群
拷贝本repo:
git clone https://github.com/ymdd/hadoop-docker.git
下载hadoop-2.7.3.tar.gz到目录hadoop-docker/src
下,构建hadoop镜像:
wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz -O hadoop-docker/src/hadoop-2.7.2.tar.gz
cd hadoop-docker
docker build -t ymdd/hadoop:0.1 .
在docker中建立hadoop网络:
docker network create --driver=bridge hadoop
启动container:
./start-container.sh
该脚本默认情况下会启动三个contianer,包括一个hadoop-master和两个hadoop-slave,接着你会进入hadoop-master的/
目录下。
进入/root
目录,并启动hadoop:
cd && ./start-hadoop.sh
察看hadoop-master启动了哪些进程:
jps
# 输出三个进程
NameNode
SecondaryNameNode
ResourceManager
察看hadoop-slave1启动了哪些进程:
ssh hadoop-slave1
jps
# 输出两个进程
DataNode
NodeManager
如果确认无误,说明hadoop集群已经正常启动。
回到hadoop-master,执行wordcount测试:
logout
./wordcount.sh
观察输出,如果得到:
input file1.txt:
Hello Docker
input file2.txt:
Hello Hadoop
wordcount output:
Docker 1
Hadoop 1
Hello 2
说明hadoop集群已成功执行mapreduce程序。
注:hadoop-master的8088
和50070
端口已经映射到宿主机相同的端口,可以通过宿主浏览器察看集群状态以及mapreduce程序执行情况。
3 更改hadoop集群的节点数目
退出hadoop-master,执行resize-cluster.sh脚本:
exit
./resize-cluster.sh #nodes
#nodes表示新集群节点点的总数,包括一个master,剩下的都是slaves(暂不支持更复杂的集群配置,以后的版本会考虑加入)。该脚本会重新构建hadoop镜像。