基于Docker快速搭建hadoop集群

基于Docker快速搭建hadoop集群

序言

我自己本身是从事 Java 后端开发,与大数据关系不大,只不过出于业务考虑,来借用下 Hadoop 的 Mapreduce 进行一些非实时的千万级数据处理,前前后后花费不少时间进行踩坑,主要是一开始就是想着 Spring-hadoop ,老是基于后端开发的思想来去学习大数据,导致走了不少弯路,如果有和我处境一样的伙伴,还是建议老老实实从最基础的 Mapreduce 开始弄起。
接下来该文章主要讲讲我是如何免配置编辑进行快速搭建 Hadoop 集群的过程。


参考博客

Centos安装Docker

Docker搭建Hadoop环境

Hadoop配置参数汇总


前期准备

  1. 虚拟机/服务器
  2. Docker环境,git 环境

环境准备

  1. 在 虚拟机/服务器 根路径上创建文件夹 hadoop ,这个文件夹是为了用于挂载,方便我们将写好的程序挂载到容器里面运行
mkdir /hadoop
  1. 下载 git 项目 (主要是 Dockerfile 文件和一些配置好的配置文件)
cd /hadoop

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

这个 git 项目是基于大神 kiwenlau 创建的 Dockerfile 进行改进,主要改进点是将 jdk 升级为 8,要不然我通过 jdk8 编写的 mapreduce 程序无法在上面运行

  1. 设置 docker 网桥,用于集群之间的通信 (集群里面是已经配置了对应的 hosts 的,因此只需要在同一个网桥上面即可)
docker network create --driver=bridge hadoop

这里的网桥名字要填写 hadoop,如果你想改为别的,那就修改
hadoop-cluster-docker/start-container.sh 脚本里面的 docker 启动命令,指定对应网桥名。

  1. 接下来就是构造 docker 镜像,由于已经有对应的 Dockerfile ,进入 hadoop-cluster-docker 文件夹 ,运行以下命令:
cd /hadoop/hadoop-cluster-docker

docker build -t jdk8-hadoop-master .

这里镜像名同理,如果你要指定自己的镜像名字,那就修改 hadoop-cluster-docker/start-container.sh 脚本里面的 docker 启动命令

docker build 命令最后还有个 “ . ” ,别忘了

如果觉得构建镜像过久,有可能是你的 docker 镜像源没有设置为国内的,参考最上面的菜鸟网站设置镜像源


启动集群

做完了环境相关的准备,接下来启动集群也是极为简单的事情,我们只需要在 hadoop-cluster-docker 文件夹里面运行以下命令即可启动集群:

./start-container.sh

命令后面可以接一个整数参数,例如 ./start-container.sh 5 代表我要启动五个 docker 容器,其中一个 master ,四个 slave ,如果不传,默认创建一个 master 和一个 slave1 容器

命令执行完后,我们会直接进入 master 容器里面,这个时候其实只是启动了容器,但是容器里面的 hadoop 还没启动,因此我们直接运行以下命令来启动 hadoop(记住是在 master 容器里执行以下命令):

./start-hadoop.sh 

现在我们 master 节点的 hadoop 也已经启动了,这个时候我们要测试一下这个节点有没有启动成功,直接运行以下命令来跑一个 hadoop 的经典例子,wordcount :

./run-wordcount.sh

结果:

input file1.txt:
Hello Hadoop
input file2.txt:
Hello Docker
wordcount output:
Docker 1
Hadoop 1
Hello 2

接下来如果要启动从节点的 hadoop ,建议是打开新的 ssh 客户端窗口,然后运行以下命令进入对应的从节点容器:

docker exec -it hadoop-slave1 /bin/bash

./start-hadoop.sh 

hadoop-slave1最后的1代表了是第一个从节点,可以通过 docker ps -a 来查看你的其他从节点名字

启动完从节点后,我们可以通过进入主节点的管理页面进行查看,在浏览器输入:

你的虚拟机/服务器ip:50070/dfshealth.html#tab-datanode

看到以下界面说明子节点启动成功
在这里插入图片描述
至此,hadoop集群环境的搭建就告一段落了,如果有问题,建议在下方评论提出。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值