基于docker的hadoop分布式集群
2016-05-16 16:41
686 查看
Hydra-hadoop
项目地址:https://github.com/KDF5000/hydra-hadoop使用docker在单机部署hadoop和hbase的分布式环境,本项目具有一下特征:
* 使用serf和dnsmasq 作为集群节点管理和dns解析
* 可以自定义集群hadoop和hbase的配置,配置完后只需重新build镜像即可
* ssh远程登录集群节点容器
项目目录
serf-dnsmasq: serf和dnsmasq服务,用于管理集群节点的退出和添加,dnsmasq用于dns的解析hadoop-fake: 实现一个伪分布式的hadoop环境
hadoop-hydra: 基于
hadoop-fake实现一个完全分布式的集群环境,master和slave均使用该镜像
使用说明
默认本机已经安装了docker环境和git工具0x01 clone
git clone https://github.com/KDF5000/hydra-hadoop[/code]
0x02 创建镜像
按照下面的顺序执行相应操作
* 进入serf-dnsmasq目录,执行sudo docker build -t="kdf5000/serf-dnsmasq" .
进入hadoop-fake目录,执行sudo docker build -t="kdf5000/ubuntu-hadoop" .
进入hadoop-hydra目录,执行sudo docker build -t="kdf5000/hydra-hadoop"
创建集群
进入项目根目录,执行$./start-container.sh [num] //num可选,默认为3
默认时启动三个容器,一个作为master,两个slave,如果想要启动其他数目的容器,直接在后面添加数目即可
启动hadoop
上一步,启动容器之后,回直接进入master的shell交互界面,可以使用下面的命令验证dns和serf服务是否正确$serf members
如果出现下面的结果说明服务已经正确安装和启动root@master:~# serf members master.kdf5000.com 172.17.0.2:7946 alive slave1.kdf5000.com 172.17.0.3:7946 alive slave2.kdf5000.com 172.17.0.4:7946 alive
如果没有出现上面的结果,请仔细检查前面步骤是否有问题,否则下面步骤将不能正确执行
在master主机进入用户(root)目录,然后执行根目录下的脚本start_service.sh,将启动hadoop集群。
使用jps验证是否启动成功,如果在master上出现下面信息说明启动成功root@master:~# jps 1598 HRegionServer 393 NameNode 909 NodeManager 1415 HQuorumPeer 6209 Jps 666 SecondaryNameNode 515 DataNode 812 ResourceManager
使用下面命令进入slave主机,进行同样验证,出现下面信息及说明启动成功root@master:~/# ssh slave1.kdf5000.com Warning: Permanently added 'slave1.kdf5000.com,172.17.0.3' (ECDSA) to the list of known hosts. Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-85-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Sun May 15 13:29:30 2016 from master.kdf5000.com root@slave1:~# root@slave1:~# jps 1853 Jps 293 NodeManager 195 DataNode
wordcount测试
进入master主机的用户根目录,执行wordcount.sh脚本,观察执行过程,如果最后输出下面信息说明完全分布式hadoop环境搭建成功wordcount output: 16/05/15 14:01:38 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 2 ello 1 ocker 1 adoop
参考项目
https://github.com/kiwenlau/hadoop-cluster-docker
https://github.com/alvinhenrick/docker-serf
https://github.com/alvinhenrick/hadoop-mutinode
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- centos6.5上安装docker
- docker容器的网络信息查看
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
- RedHat 5.8 安装Oracle 11gR2_Grid集群
- 单机版搭建Hadoop环境图文教程详解
- Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别
- mysql集群之MMM简单搭建
- openstack kilo-with-dokcer
- 在windows下的安装Docker的教程
- 8个你可能不知道的Docker知识
- C#分布式事务的超时处理实例分析
- Erlang分布式节点中的注册进程使用实例
- MySQL的集群配置的基本命令使用及一次操作过程实录
- MySQL slave_net_timeout参数解决的一个集群问题案例
- hadoop常见错误以及处理方法详解