一台虚拟机基于docker搭建大数据HDP集群的思路详解

 更新时间:2022年11月02日 08:41:03   作者:叫我阿柒啊  
这篇文章主要介绍了一台虚拟机基于docker搭建大数据HDP集群 ,本篇文章主要讲了大数据集群搭建的架构设计和实现思路部分,后面文章会探讨上层应用的构建,需要的朋友可以参考下

前言

好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做。这个可以参考之前写得关于我大数据毕业设计的文章。这篇文章是将对之前的毕设进行优化。

个人觉得可以分为两个部分。第一个部分就是基础的平台搭建。例如Hadoop集群、Kafka集群。

第二个部分就是上层应用的建设,例如基于大数据平台的数据分析,以及大屏展示之类的可视化应用。前者提供了基础平台能力,让整个设计加入大数据元素;后者提供了上层应用能力,主要是让别人明白你利用大数据平台做了什么。

前些日子闲得无聊,在一台虚拟机上基于docker容器,使用Ambari搭建了一个HDP版本的Hadoop大数据集群。所以就结合这篇文章,对第一部分进行阐述,提供一个新的思路。

思路

在集群搭建的过程中,遇到了形形色色的问题。在问题里去思考、去查阅资料。这是一个蛮有意思的事情。

在上一篇文章也写了,我的大数据毕业设计的Hadoop平台搭建部分,是基于三台虚拟机实现的。当时使用的Apache版本的Hadoop。

Apache版本的缺点是没有一个统一的管控平台。

前期的安装需要在每个节点手动分发安装包、执行启动命令。后期的节点维护、服务启停都需要去后台执行命令。

加上三台虚拟机,每次启动费个老劲。所以我就寻思用Ambari来搭建一个HDP版本的、一个虚拟机就能搞定的、基于docker容器的Hadoop集群。

整体架构

整个架构设计和技术选型,都是根据个人需求选择,可以参考。

1. 技术选型

宿主机和docker的操作系统选择的是centos7。我尝试了centos8,不太行。主要

docker:容器,代替虚拟机节点搭建集群docker-compose:编排容器。对所有容器进行管理、启动Ambari:2.7.3版本。可视化安装、监控、管理所有集群。HDP:3.1版本。其中包括Hadoop、HDFS、Yarn、Spark、Kafka、Zookeeper等服务。MySQL:ambari元数据库。后面应用也会用到。

除此之外,还需要shell编写一些脚本。

2. 架构设计

平台一览

这就是Ambari的首页仪表盘的部分,里面可以看到HDFS的存储,内存使用量指标。

Hadoop集群

Hadoop集群一共用了四个节点。NameNode,一个备用的NameNode,两个DataNode。

点击右侧的NameNode UI可以看到Hadoop集群的UI界面。

集群节点

这里的Hosts指的就是所有集群节点的个数,也是docker节点的个数。这里因为内存有限,所以一个docker启动了好几个服务。

例如这个kafka1节点,即安装了Kafka,又安装了Zookeeper。

环境准备

我在实践docker搭建集群的时候,90%的时间都花费在了环境准备上。同样,遇到的90%的问题也都在这个步骤上。

1. 虚拟机准备

我自己的架构是一台虚拟机,然后其他节点都是用docker代替的。docker你可以理解为轻量虚拟机。

我选择docker的理由:

觉得挺有意思,想挑战一下自己的软肋。*一个虚拟机可能需要占用20G存储,一个docker只占用几百MB**。只需要启动一台虚拟机即可。docker作为应用服务运行在这台虚拟机上。

其实,这里我是建议使用3 ~ 4台虚拟机的。因为docker本身对于很多人来说是有一定难度的,再加上需要将docker构建成节点,是需要花费很多时间的。

2. docker容器准备

如果说是头铁非要用docker,那么可以看看这一步。我在这一步构建节点docker镜像的时候,反复构建了很多次。

dockerfile

我们要自己编写dockerfile几月centtos7来构建docker容器的系统镜像。而且,docker容器代替了虚拟机,那么docker容器里的环境就要和虚拟机一样。所以dockerfile需要满足以下条件。

开放22端口,启动sshd服务配置jdk、scala生成密钥,配置ssh免密登录python2.7(centos7自带)yum安装一些软件,例如chrony等配置hosts

在编写dockerfile阶段,查阅了很多资料,反复构建,尝试了很多次才成功。

docker-compose

docker-compose是docker容器的编排工具,需要编写一个yaml配置文件,通过start/stop来启动/停止所有的容器。

这个centos_hdp就是我自己构建的镜像,ports来开放容器的端口,volumes来挂载宿主机的目录。

3. 下载安装包

我在2016年毕业设计中,所搭建的大数据平台的各个组件都是独立下载安装的。Hadoop的安装包需要去Hadoop官网下载,Kafka安装包需要去Kafka官网下载。想安装哪个版本就安装哪个版本。

基于Ambari安装,所有组件都包含在HDP安装包里,不过这个安装包挺大的,10G。

ambari-2.7.3.0-centos7.tar.gz
HDP-3.1.0.0-centos7-rpm.tar.gz
HDP-UTILS-1.1.0.22-centos7.tar.gz
HDP-GPL-3.1.0.0-centos7-gpl.tar.gz

上面就是所需安装包的列表,下载到之后,放到本地搭建的http服务器中,在ambari安装中时使用。

结语

本篇文章主要讲了大数据集群搭建的架构设计和实现思路部分,后面文章会探讨上层应用的构建。我现在自己也在学前端,想自己实现一些web应用。关于大数据集群搭建、后台实现以及前端技术,可以私我加群互相交流。

基于docker使用Ambari搭建Hadoop是有难度的,谨慎尝试。

到此这篇关于一台虚拟机基于docker搭建大数据HDP集群 的文章就介绍到这了,更多相关docker搭建HDP集群 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker如何创建一个Jar服务容器

    Docker如何创建一个Jar服务容器

    这篇文章主要介绍了Docker如何创建一个Jar服务容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker拉取镜像过慢或卡死的解决方法(亲测有效)

    Docker拉取镜像过慢或卡死的解决方法(亲测有效)

    本文主要介绍了Docker拉取镜像过慢或卡死的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker命令行与守护进程的交互方法

    Docker命令行与守护进程的交互方法

    这篇文章主要介绍了Docker命令行与守护进程的交互方法的相关资料,需要的朋友可以参考下
    2017-06-06
  • docker镜像访问本地elasticsearch端口操作

    docker镜像访问本地elasticsearch端口操作

    这篇文章主要介绍了docker镜像访问本地elasticsearch端口操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker安装MySQL并使用Navicat连接的使用示例

    Docker安装MySQL并使用Navicat连接的使用示例

    在Docker里运行MySQL的方式还是很方便的,本文主要介绍了Docker安装MySQL并使用Navicat连接的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Linux/Docker 中使用 System.Drawing.Common 踩坑记录分享

    Linux/Docker 中使用 System.Drawing.Common 踩坑记录分享

    这篇文章主要介绍了Linux/Docker 中使用 System.Drawing.Common 踩坑记录,本文通过两种方案给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 使用Dockerfile脚本定制镜像的方法

    使用Dockerfile脚本定制镜像的方法

    Dockerfile 是⼀个⽂本⽂件,其内包含了⼀条条的指令(Instruction),每⼀条指令构建⼀层,因此每⼀条指令的内容,就是描述该层应当如何构建,这篇文章主要介绍了使用Dockerfile脚本定制镜像,需要的朋友可以参考下
    2022-07-07
  • docker之如何设置日志文件大小及个数

    docker之如何设置日志文件大小及个数

    这篇文章主要介绍了docker之如何设置日志文件大小及个数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 5款超好用的开源 Docker工具强烈推荐

    5款超好用的开源 Docker工具强烈推荐

    这篇文章主要介绍了5款超好用的开源 Docker工具强烈推荐,这5个工具非常实用,有需要同学可以学习下
    2021-03-03
  • docker部署mysql和nginx服务的示例详解

    docker部署mysql和nginx服务的示例详解

    这篇文章主要为大家详细介绍了docker部署mysql和nginx服务的相关知识,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04

最新评论