如何基于Docker快速搭建多节点Hadoop集群
发布网友
发布时间:2022-04-21 16:34
我来回答
共1个回答
热心网友
时间:2022-05-02 23:05
1. 拉取镜像
sudo docker pull index.alauda.cn/kiwenlau/hadoop-master:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/hadoop-slave:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/hadoop-base:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/serf-dnsmasq:0.1.0
3~5分钟OK~也可以直接从我的DokcerHub仓库中拉取镜像,这样就可以跳过第2步:
sudo docker pull kiwenlau/hadoop-master:0.1.0 sudo docker pull kiwenlau/hadoop-slave:0.1.0 sudo docker pull kiwenlau/hadoop-base:0.1.0 sudo docker pull kiwenlau/serf-dnsmasq:0.1.0
查看下载的镜像:
sudo docker images
运行结果:
其中hadoop-base镜像是基于serf-dnsmasq镜像的,hadoop-slave镜像和hadoop-master镜像都是基于hadoop-base镜像。所以其实4个镜像一共也就777.4MB。
2. 修改镜像tag
sudo docker tag d63869855c03 kiwenlau/hadoop-slave:0.1.0 sudo docker tag 7c9d32ede450 kiwenlau/hadoop-master:0.1.0 sudo docker tag 5571bd5de58e kiwenlau/hadoop-base:0.1.0 sudo docker tag 09ed89c24ee8 kiwenlau/serf-dnsmasq:0.1.0
查看修改tag后镜像:
sudo docker images
运行结果:
之所以要修改镜像,是因为我默认是将镜像上传到Dockerhub, 因此Dokerfile以及shell脚本中得镜像名称都是没有alauada前缀的,sorry for this....不过改tag还是很快滴。若直接下载我在DockerHub中的镜像,自然就不需要修改tag...不过Alauda镜像下载速度很快的哈~
3.下载源代码
git clone https://github.com/kiwenlau/hadoop-cluster-docker
为了防止GitHub被XX,我把代码导入到了开源中国的Git仓库:
git clone http://git.oschina.net/kiwenlau/hadoop-cluster-docker
4. 运行容器
cd hadoop-cluster-docker ./start-container.sh
运行结果:
start master container... start slave1 container... start slave2 container... root@master:~#
一共开启了3个容器,1个master, 2个slave。开启容器后就进入了master容器root用户的根目录(/root)。
查看master的root用户家目录的文件:
ls
运行结果:
hdfs run-wordcount.sh serf_log start-hadoop.sh start-ssh-serf.sh
start-hadoop.sh是开启hadoop的shell脚本,run-wordcount.sh是运行wordcount的shell脚本,可以测试镜像是否正常工作。
5.测试容器是否正常启动(此时已进入master容器)
查看hadoop集群成员:
serf members
运行结果:
master.kiwenlau.com 172.17.0.65:7946 alive slave1.kiwenlau.com 172.17.0.66:7946 alive slave2.kiwenlau.com 172.17.0.67:7946 alive
若结果缺少节点,可以稍等片刻,再执行“serf members”命令。因为serf agent需要时间发现所有节点。
测试ssh:
ssh slave2.kiwenlau.com
运行结果:
Warning: Permanently added 'slave2.kiwenlau.com,172.17.0.67' (ECDSA) to the list of known hosts. Welcome to Ubuntu 15.04 (GNU/Linux 3.13.0-53-generic x86_64) * Documentation: https://help.ubuntu.com/ The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the indivial files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@slave2:~#
退出slave2:
exit
运行结果:
logout Connection to slave2.kiwenlau.com closed.
若ssh失败,请稍等片刻再测试,因为dnsmasq的dns服务器启动需要时间。测试成功后,就可以开启Hadoop集群了!其实你也可以不进行测试,开启容器后耐心等待一分钟即可!
6. 开启Hadoop
./start-hadoop.sh
上一步ssh到slave2之后,请记得回到master啊!运行结果太多,忽略,Hadoop的启动速度取决于机器性能....
7. 运行wordcount
./run-wordcount.sh
运行结果:
input file1.txt: Hello Hadoop input file2.txt: Hello Docker wordcount output: Docker 1 Hadoop 1 Hello 2
wordcount的执行速度取决于机器性能....
如何基于Docker快速搭建多节点Hadoop集群
直接用机器搭建Hadoop集群是一个相当痛苦的过程,尤其对初学者来说。他们还没开始跑wordcount,可能就被这个问题折腾的体无完肤了。而且也不是每个人都有好几台机器对吧。你可以尝试用多个虚拟机搭建,前提是你有个性能杠杠的机器。我的目标是将Hadoop集群运行在Docker容器中,使Hadoop开发者能够快速便捷地...
在Linux服务器上使用docker部署高可用HDFS
首先,需下载Hadoop、Zookeeper和Java安装包,选择合适的版本。接着,基于centos7镜像制作SSH服务可用的Docker镜像,并将其封装为hadoop-3.2.4镜像。此镜像用于后续部署。然后,利用Docker构建容器,分别命名为hadoop1、hadoop2、hadoop3,并将hadoop-3.2.4镜像应用到容器中。在每个容器内部,配置无密码SSH...
大数据学习笔记:基于docker的大数据集群搭建(二)———搭建zookeeper,hiv...
1. ZookeeperZookeeper,作为分布式协调服务,为分布式应用提供关键的协调和配置维护功能,确保系统的稳定性和效率。它就像一个分布式文件系统,支持数据同步、发布/订阅和集群节点协调,广泛应用于服务注册、配置管理、分布式锁和队列等场景,是构建复杂分布式应用的核心组件。2. YARNYARN,作为Hadoop的资源管理系...
docker部署大数据平台(hadoop生态及flink)
通过docker-compose一键部署,实现大数据平台快速搭建。组件版本如下:Apache Hadoop 3.2、Prestodb 0.247、Kafka 2.0+、Hbase 2.2、Hive 3.1.2、ELK 7.9.1、Flink on yarn 1.11.3。部署步骤如下:1. 安装docker,确保系统兼容性。2. 安装docker-compose工具。3. 通过git clone获得docker com...
docker 怎样部署hadoop 集群
目前,Hortonworks的一个客户已经在考虑他们自己的数据平台利用HDP支持Docker的方法。他们利用Cloudbreak在云中的Docker容器中部署Hadoop,并计划把他们自己的数据应用程序制作成Docker镜像以便在YARN上运行。此外,很多用户也因为这种方式的敏捷性和兼容性,利用其进行未知环境的部署。
有没有人试过用 docker 在云平台上搭建 hadoop 集群
在VMware上操作Hadoop时发现资源消耗大,配置麻烦,所以思考能不能使用docker搭建Hadoop集群,感谢上面链接的大神弄的集群镜像,所以很快就能搭建出Hadoop3节点集群。
秒云助力大数据应用快速落地
在大数据生态的快速发展中,Hadoop和Spark等工具虽便利了数据处理,但部署和维护难题也随之而来。然而,秒云凭借其基于Docker容器技术的解决方案,为大数据应用的快速落地提供了有力支持。秒云应用商店中的Hadoop集群部署案例清晰展示了这一优势。用户只需几步操作:打开商店,选择并自定义部署Hadoop应用,点击...
Docker的mysql集群节点可以正常创建,但无法正常连接到宿主机的mysql应 ...
除了预置的组件之外,Ambari还支持自定义组件的安装,同时,支持RESTful的API,继而可以通过命令行等方式调用Ambari来完成一些自动化的任务。本文共分为两部分,第一部分介绍如何在Docker虚拟化环境中部署Ambari;第二部分介绍如何基于Ambari来部署和管理Hadoop集群。环境信息* Docker发行版:Docker for Mac* ...
如何快速手动部署Hue到EMR集群
Hue是提供基于Web的Hadoop生态系统用户界面,支持Amazon EMR和Apache Hadoop。它使用户可以使用熟悉的界面与多种应用程序交互,无需登录集群。当EMR集群已自定义配置或安装了其他组件时,可能需要手动部署Hue。本文档将介绍使用Docker部署Hue的步骤。在部署过程中,您需要关注Hue.ini文件,这是一个配置文件,...
用docker搭建hadoop有什么作用
虚拟构建。docker构建是一种虚拟软件,使用docker搭建hadoop可以虚拟构建的作用,对构建进行预先模拟。防止构建的时候出现错误。