一种基于容器云技术快速搭建Hadoop集群的方法与流程

文档序号:12693942阅读:344来源:国知局
一种基于容器云技术快速搭建Hadoop集群的方法与流程

本发明涉及Hadoop集群的创建技术领域,特别是一种基于容器云技术快速搭建Hadoop集群的方法。



背景技术:

目前,Hadoop集群通常是基于虚拟机或PC来进行搭建;在预先设定好集群的规模(包括主节点和从节点数量等)之后,需要根据预设的规模建立指定数量台虚拟机或购买指定数量台PC;建立好这些服务器之后,需要逐台安装操作系统,并安装搭建Hadoop集群所必要的JDK等服务,指定好每台服务器的主机名,配置好每两台服务器之间的SSH免密认证;最后,需要在主节点部署Hadoop,修改配置后,分发给集群中其余的每台服务器;完成这些步骤之后,才可以使用Hadoop的启动脚本启动集群。

江苏物联网研究发展中心公开的发明专利一种基于OpenStack的提供Hadoop服务的方法(CN104065716A)中,采用如下图所示的架构搭建Hadoop集群;该系统首先搭建基于OpenStack的云平台,并另外架设一个系统控制节点,当用户需要服务时,选择云平台中预装的计算环境及特定的配置,发送请求给系统控制节点,利用云平台虚拟化技术,架设虚拟主机,启动已经安装Hadoop的系统镜像,通过系统控制节点发送命令,上传配置文件,启动Hadoop服务,通过云平台内部网络交互消息,完成Hadoop平台的启动。

然而,由于厂商众多,发行版本众多,OpenStack有各种技术上的难点;首先,OpenStack在集成性、扩展性和稳定性上还远远不足;Nova、Swift、Cinder和Neutron分别使用各自的数据库存储配置信息,安装和升级均费时费力;

其次,OpenStack缺乏完整性;OpenStack只能提供计算、存储、网络三种云产品,如果基于OpenStack自助搭建Hadoop集群,需要打通OpenStack和Hadoop之间的账户、安全、管理运维和监控体系,流程复杂而繁琐;

再者,OpenStack不能提供端到端的服务保障;用户拿到手的只是散落的“框架”和组建,必须手工将多厂商、多版本的功能集成起来;

最后,OpenStack缺乏通用的基础版本;OpenStack目前可下载的厂商定制版有20多个,客户不清楚应该选择哪个版本,更不清楚如何根据自己的需求来在不同版本之间进行组合、混搭和迁移;以上这些缺陷导致了江苏物联网研究发展中心公开的这个发明专利在系统安装实施耗时较长,藕合性也较高,系统稳定性也无法保证,需要专门进行系统维护,或对OpenStack代码进行优化。

使用多台PC或物理服务器来搭建Hadoop集群,成本相对较高,资源利用率较低;使用虚拟机会提供整个虚拟化硬件层,但是使用成本也会显著提升,资源利用率同样不高;此外,使用PC或虚拟机搭建Hadoop集群后,若使用时破坏了集群环境,很难立即发现问题;发现环境被破坏后,需要将被破坏的单台或多台服务器或虚拟机的环境进行重建,处理的及时性得不到保证。



技术实现要素:

本发明所要解决的技术问题是,克服现有技术的缺点,提供一种基于容器云技术快速搭建Hadoop集群的方法。

为了解决以上技术问题,本发明提供一种基于容器云技术快速搭建Hadoop集群的方法,包括如下具体步骤:

根据实际需要确定选用的物理服务器数量,将这些选取好的物理服务器整体看做一个集群,指定该集群的master节点,并分配实际部署节点,即作为slave节点;

为集群中的每台物理服务器安装CentOS7操作系统;

在该集群的每个master节点上采用yum install命令安装并启动容器编排服务Kubernetes和网络服务Flannel;

在预先分配好的master节点上安装MySQL数据库、镜像仓库服务及管理门户;

使用管理员账户登录管理门户界面,建立用户;使用建立的用户登录管理门户,创建该用户的集群环境并搭建Hadoop集群。

技术效果:相比基于OpenStack或VMWare等虚拟机技术来搭建Hadoop集群,本发明在步骤3直接使用Kubernetes服务来编排用户创建的集群环境中的各个容器实例,保证服务的稳定性的同时,利用容器的轻量性特点,使得建立这些集群服务器的速度有很大提升,而且每台服务器所占用的系统资源相对于虚拟机技术也有所减少,因此可以搭建出更多的Hadoop集群。

此外,本发明在镜像仓库中做好了集成包括Hadoop集群在内的多种大数据集群环境的快速搭建脚本,因此可以在步骤6中实现一键搭建Hadoop集群,优化用户体验;Kubernetes官方提供了一系列的原子性API接口,在实际调用中,往往需要按照一定的顺序依次执行多个接口来完成诸如容器实例创建、容器实例销毁等在内的操作。

本发明中针对搭建Hadoop集群环境等实际业务需求,封装了Kubernetes的这些API,提供了一组操作容器的方法,也就是集成在管理门户中的k8Sclient接口:

底层使用Docker容器实例取代虚拟机或物理服务器来向用户提供Hadoop集群服务器环境,它们之间采用flannel进行网络通讯,并提供标准的Docker API;

Kubernetes通过调用Docker API和镜像仓库的获取镜像接口来编排和操纵底层容器,并提供了一组REST接口Kubernetes API;

MySQL提供了集群管理和用户管理两个数据操纵接口;

管理门户通过内部集成的k8Sclient调用Kubernetes API来创建Hadoop集群环境,并调用MySQL的集群管理和用户管理接口来记录和展示每个用户的集群环境。

本专利由于采用了Docker容器来取代虚拟机或物理服务器,使得对用户来说每台集群中的服务器开销更小,创建速度更快,还能够搭建出更多的Hadoop集群环境;每个Docker容器实例实际上只运行Hadoop服务,符合容器技术中每个容器实例只运行单个服务的规范;且由于容器的隔离性,单个用户集群重新创建不会影响到其它用户的集群;采用谷歌推出的成熟的容器编排服务Kubernetes来维护底层的Docker容器实例,保证了整个服务的稳定性,并且能够很快发现问题节点,快速实现故障恢复。

本发明进一步限定的技术方案是:

进一步的,前述的基于容器云技术快速搭建Hadoop集群的方法,步骤中搭建Hadoop集群的具体步骤为:

用户登录管理门户,在界面上点击创建Hadoop集群环境,管理门户向Kubernetes发送创建集群服务器请求,Kubernetes从镜像仓库获取指定镜像并调用Docker API创建集群容器实例,并将创建结果通过管理门户返回给用户;

用户在管理门户界面点击一键搭建Hadoop集群,管理门户直接向该用户创建的集群容器实例发送搭建Hadoop集群的请求,集群容器实例接收到请求后,执行内置的搭建Hadoop集群脚本,自动完成SSH免密认证、设置master和slave节点、同步Hadoop集群配置、启动Hadoop服务等动作,并将搭建结果通过管理门户返回给用户。

前述的基于容器云技术快速搭建Hadoop集群的方法,管理门户为基于ApacheTomcat的网站,内部集成了k8Sclient接口。

本发明中管理门户集成的k8Sclient接口所提供的主要功能如下:

创建Namespace(命名空间);

删除Namespace;

获取指定Namespace;

获取全部Namespace;

获取指定Node(节点);

获取所有Node;

创建Pod(容器组);

删除Pod;

获取指定Pod;

获取全部Pod;

获取指定Pod的日志;

更新Pod信息;

创建RC(副本控制器);

删除RC;

获取指定RC;

获取全部RC;

更新RC信息;

创建Service(服务);

删除Service;

获取指定Service;

获取全部Service;

更新Service信息。

本发明中的镜像仓库中加入了跟快速搭建Hadoop等大数据集群相关的6个自定义镜像,它们均采用基于CentOS7的基础镜像,并在其基础上完成了防火墙调整、时钟同步等基础配置,安装了JDK和Hadoop等各种大数据相关的软件及服务,还导入了自行编写的一键部署脚本等脚本,以供用户使用,具体步骤如下:①基于CentOS7镜像,安装ssh等必需的软件及服务、安装并配置JAVA环境,导入Hadoop2.7.1版本安装包并设置Hadoop环境变量;

②导入Hadoop实验相关数据;

③导入编写好的Hadoop集群的一键搭建脚本;

④导入编写好的API_Server,并设置随master节点自动启动;

⑤生成Hadoop集群镜像。

用户使用我们的镜像创建指定的大数据集群后,无需再寻找Hadoop等大数据相关的软件包,也无需再进行防火墙设置、时钟同步、JDK安装等复杂繁琐的前置性环境配置,可以快速搭建Hadoop集群,专注于大数据的应用。

本发明的有益效果是:

本发明所设计的基于容器云技术快速搭建Hadoop集群的方法能够针对不同的用户需求提供定制化的服务方案;相比于传统的虚拟机和OpenStack虚拟化技术,该方法具有安装部署简便、资源利用率高、服务稳定和提供的集群数量多等优势,适用于受到物理服务器规模限制的希望进行大数据科研和运算的中小企业或科研院所,可以显著减少它们搭建和部署大数据集群的硬件成本,并使用户可以更便利地采用Hadoop等框架来进行大数据相关分析或计算;此外,各学校也可以使用该方法来在有限几台物理服务器上搭建出几十或上百个集群环境,以开展大数据相关学科的教学和实验,填补大数据行业的人才缺口。

附图说明

图1为专利CN104065716A中所搭建的Hadoop集群的架构示意图;

图2为本发明中所设计的基于容器云技术快速搭建Hadoop集群的方法的组件图;

图3为本发明中搭建的Hadoop集群的时序图。

具体实施方式

如图2-3所示,本实施例提供的一种基于容器云技术快速搭建Hadoop集群的方法,包括如下具体步骤:

根据实际需要确定选用的物理服务器数量,将这些选取好的物理服务器整体看做一个集群,指定该集群的master节点,并分配实际部署节点,即作为slave节点;

为集群中的每台物理服务器安装CentOS7操作系统;

在该集群的每个master节点上采用yuminstall命令安装并启动容器编排服务Kubernetes和网络服务Flannel;

在预先分配好的master节点上安装MySQL数据库、镜像仓库服务及管理门户;

使用管理员账户登录管理门户界面,建立用户;使用建立的用户登录管理门户,创建该用户的集群环境并搭建Hadoop集群;管理门户为基于ApacheTomcat的网站,内部集成了k8Sclient接口。

步骤中搭建Hadoop集群的具体步骤为:

用户登录管理门户,在界面上点击创建Hadoop集群环境,管理门户向Kubernetes发送创建集群服务器请求,Kubernetes从镜像仓库获取指定镜像并调用Docker API创建集群容器实例,并将创建结果通过管理门户返回给用户;

用户在管理门户界面点击一键搭建Hadoop集群,管理门户直接向该用户创建的集群容器实例发送搭建Hadoop集群的请求,集群容器实例接收到请求后,执行内置的搭建Hadoop集群脚本,自动完成SSH免密认证、设置master和slave节点、同步Hadoop集群配置、启动Hadoop服务等动作,并将搭建结果通过管理门户返回给用户。

相比基于OpenStack或VMWare等虚拟机技术来搭建Hadoop集群,本发明在步骤3直接使用Kubernetes服务来编排用户创建的集群环境中的各个容器实例,保证服务的稳定性的同时,利用容器的轻量性特点,使得建立这些集群服务器的速度有很大提升,而且每台服务器所占用的系统资源相对于虚拟机技术也有所减少,因此可以搭建出更多的Hadoop集群。

此外,本发明在镜像仓库中做好了集成包括Hadoop集群在内的多种大数据集群环境的快速搭建脚本,因此可以在步骤6中实现一键搭建Hadoop集群,优化用户体验;Kubernetes官方提供了一系列的原子性API接口,在实际调用中,往往需要按照一定的顺序依次执行多个接口来完成诸如容器实例创建、容器实例销毁等在内的操作。

本发明中针对搭建Hadoop集群环境等实际业务需求,封装了Kubernetes的这些API,提供了一组操作容器的方法,也就是集成在管理门户中的k8Sclient接口:

底层使用Docker容器实例取代虚拟机或物理服务器来向用户提供Hadoop集群服务器环境,它们之间采用flannel进行网络通讯,并提供标准的Docker API;

Kubernetes通过调用Docker API和镜像仓库的获取镜像接口来编排和操纵底层容器,并提供了一组REST接口Kubernetes API;

MySQL提供了集群管理和用户管理两个数据操纵接口;

管理门户通过内部集成的k8Sclient调用Kubernetes API来创建Hadoop集群环境,并调用MySQL的集群管理和用户管理接口来记录和展示每个用户的集群环境。

本专利由于采用了Docker容器来取代虚拟机或物理服务器,使得对用户来说每台集群中的服务器开销更小,创建速度更快,还能够搭建出更多的Hadoop集群环境;每个Docker容器实例实际上只运行Hadoop服务,符合容器技术中每个容器实例只运行单个服务的规范;且由于容器的隔离性,单个用户集群重新创建不会影响到其它用户的集群;采用谷歌推出的成熟的容器编排服务Kubernetes来维护底层的Docker容器实例,保证了整个服务的稳定性,并且能够很快发现问题节点,快速实现故障恢复。

本发明中管理门户集成的k8Sclient接口所提供的主要功能如下:

创建Namespace(命名空间);

删除Namespace;

获取指定Namespace;

获取全部Namespace;

获取指定Node(节点);

获取所有Node;

创建Pod(容器组);

删除Pod;

获取指定Pod;

获取全部Pod;

获取指定Pod的日志;

更新Pod信息;

创建RC(副本控制器);

删除RC;

获取指定RC;

获取全部RC;

更新RC信息;

创建Service(服务);

删除Service;

获取指定Service;

获取全部Service;

更新Service信息。

本发明中的镜像仓库中加入了跟快速搭建Hadoop等大数据集群相关的6个自定义镜像,它们均采用基于CentOS7的基础镜像,并在其基础上完成了防火墙调整、时钟同步等基础配置,安装了JDK和Hadoop等各种大数据相关的软件及服务,还导入了自行编写的一键部署脚本等脚本,以供用户使用,具体步骤如下:

①基于CentOS7镜像,安装ssh等必需的软件及服务、安装并配置JAVA环境,导入Hadoop2.7.1版本安装包并设置Hadoop环境变量;

②导入Hadoop实验相关数据;

③导入编写好的Hadoop集群的一键搭建脚本;

④导入编写好的API_Server,并设置随master节点自动启动;

⑤生成Hadoop集群镜像。

用户使用我们的镜像创建指定的大数据集群后,无需再寻找Hadoop等大数据相关的软件包,也无需再进行防火墙设置、时钟同步、JDK安装等复杂繁琐的前置性环境配置,可以快速搭建Hadoop集群,专注于大数据的应用。本实施例在实际应用中,以9台物理服务器为例,设置ip地址为从192.168.10.101到192.168.10.109;

1.设置每台主机的主机名为从node-101到node-109,并使用ssh-keygen和ssh-copy-id命令为每两台服务器之间配置SSH密钥认证方式,实现彼此之间的免密登录;

2.指定node-101为Kubernetes的主节点,在该服务器上安装Kubernetes、Flannel和镜像仓库服务;

3.指定node-109为管理门户节点,在该服务器上安装Flannel、MySQL和管理门户Tomcat服务;

4.其余7台服务器为Kubernetes的从节点,在这些服务器上安装Kubernetes和Flannel服务;

5.使用一键部署脚本完成所有服务器上Flannel和Kubernetes服务的配置调整并启动这些服务;

6.使用默认管理员账号登录管理门户,创建用户;

7.使用创建的用户登录管理门户,测试是否可以创建Hadoop集群环境并一键搭建Hadoop集群。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1