Docker环境下Hadoop分布式集群搭建

原创 2017年01月30日 23:57:28

Docker环境下Hadoop分布式集群搭建

2017年伊始,距离上篇blog更新已有3年之久,如今已经而立之年,这几年,五味杂陈,各中滋味,只能感叹时光飞逝!抱着归零的心态,春节期间,了解了一下Hadoop技术,在windows环境下,利用dockerTool box,搭建hadoop分布式集群,以便后续持续学习。整理如下:

1.集群环境介绍

如下表所示,集群中共3台服务器,master服务器充当了namenode和jobtacker的角色。slave1和slave2充当了datanode和tasktracker的角色

服务器名称 ip HDFS role MapReduce Role
master 172.18.0.10 namenode jobtracker
slave1 172.18.0.11 datanode tasktracker
slave2 172.18.0.12 datanode tasktracker

2.服务器容器创建

hadoop的docker镜像,从该网站拉取,分区拉取了namenode镜像和datanode镜像

docker pull uhopper/hadoop-namenode
docker pull uhopper/hadoop-datanode

考虑希望生成的容器具备静态ip,便于后期hdfs配置中的配置,所以先需要创建docker自定义网络,其次基于该网络,分别创建master,slave1,slave2三个容器,

docker network create --subnet=172.18.0.0/16 hadoopNet
docker run -d --name namenode1 -h master --net hadoopNet --ip 172.18.0.10 -p 50070:50070 -v //c//Users//admin//hadoop//share://home//share -e "CORE_CONF_fs_defaultFS=hdfs://172.18.0.10:8082" -e "HDFS_CONF_DFS_REPLICATION=2" -e "CLUSTER_NAME=cluster0" uhopper/hadoop-namenode:latest

docker run -d --name datanode1 -h slave1 --net hadoopNet --ip 172.18.0.11 -e "CORE_CONF_fs_defaultFS=hdfs://172.18.0.10:8082" -e "HDFS_CONF_DFS_REPLICATION=2" -e  
"CLUSTER_NAME=cluster0" uhopper/hadoop-datanode:latest

docker run -d --name datanode2 -h slave2 --net hadoopNet --ip 172.18.0.12 -e "CORE_CONF_fs_defaultFS=hdfs://172.18.0.10:8082" -e "HDFS_CONF_DFS_REPLICATION=2" -e  

具体环境变量的配置,可参考uhopper说明,值得一提的是环境变量的配置,并没有针对mapred.site.xml文件配置,个人觉得这确实是一个bug,所以还需要针对三台服务器中/etc/hadoop/mapred.site.xml,进行jobtracker单独配置。以进入master服务器为例:

docker exec -it namenode1 //bin//bash
cat /etc/hadoop/mapred.site.xml

在该mapred.site.xml文件中追加jobtacker rpc远程调用属性

<properyt>
<name>mapred.job.tracker</name>
<value>172.18.0.10:9001</value>
</property>

对于slave1,slave2,两台服务器,笔者直接用rsync同步工具,进行文件拷贝的。

最后需要修改三台服务器,/etc/hosts以及/etc/hadoop/slaves文件,文件追加节点信息,不知道为什么,如果不追加的话,当往hdfs文件系统中提交大文件的时候会报错

3.环境验证

现在可以尝试向hdfs里面追加文件了。笔者将《hadoop权威指南》里面的1901年天气数据提交到hdfs中,并提交最高气温天气计算jar包到分布式集群,生成的1901最高气温数据,保存到/output/part-r-00000文件中

hadoop fs -put /home/predator/1901 /input
hadoop jar test.jar MaxTemprature hdfs://172.18.0.10:8082/input/1901 /output

相关文章推荐

构建微服务实验环境(二):Docker Swarm 集群

微服务架构目前最流行的方案(最佳实践)是容器集群。AWS 的 ECS、Docker 的 Swarm、google 的 Kubernetes(K8s),apache 的 mesos,包括 Rancher...
  • pmlpml
  • pmlpml
  • 2017年05月13日 08:37
  • 1084

眼泪汪汪,花了近10小时解决无法访问yarn管理界面的问题

各位看官,不管你们信或不信,昨天我从晚上6点一直搞到第二天凌晨2点,一直未解决一个问题,客户端浏览器那就是无法访问yarn管理界面,以及nodemanager会自动关闭等问题。hdfs 与 zk 都格...

Linux环境下使用Docker搭建Hadoop分布式集群

学习在Linux服务器上使用Docker进行Hadoop的分布式集群搭建
  • deCoin
  • deCoin
  • 2017年02月07日 12:22
  • 196

使用docker搭建hadoop分布式集群

使用Docker搭建部署hadoop分布式集群  在网上找了很长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,只能自己写一个了。  一:环境准备:  1:首先要有一个Cent...

使用docker搭建hadoop分布式集群

使用docker搭建部署hadoop分布式集群 在网上找了很长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,只能自己写一个了。 一:环境准备: 1:首先要有一个Cent...

构建Hadoop分布式集群环境

  • 2013年06月14日 22:55
  • 2.05MB
  • 下载

Hadoop分布式集群搭建 (一 Centos7 环境准备)

机器准备 Centos7 Vmware10 jdk 安装和配置IP 主机名称 用户 密码 ip master master master 192.168.1.122 ...

Hadoop分布式集群搭建

  • 2016年06月18日 11:52
  • 7KB
  • 下载

基于docker的hadoop分布式集群

Hydra-hadoop项目地址:https://github.com/KDF5000/hydra-hadoop 使用docker在单机部署hadoop和hbase的分布式环境,本项目具有一下特征:...

从零开始搭建hadoop分布式集群环境:(一)新建hadoop用户以及用户组

搭建hadoop集群环境不仅master和slaves安装的hadoop路径要完全一样,也要求用户和组也要完全一致。因此第一步就是新建用户以及用户组。对于新手来言,新建用户用户组,并赋予适当的权限无疑...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Docker环境下Hadoop分布式集群搭建
举报原因:
原因补充:

(最多只允许输入30个字)