基于服务发现和容器技术的大数据平台弹性伸缩方法技术

技术编号:17784168 阅读:18 留言:0更新日期:2018-04-22 15:35
本发明专利技术公开了一种基于服务发现和容器技术的大数据平台弹性伸缩方法,包括以下步骤:(1)使用容器技术组件化大数据平台;(2)启动大数据集群,注册集群元数据信息;(3)向服务代理汇报心跳数据并更新相关信息;(4)代理服务周期向服务代理读取大数据集群管理信息,判断是否存在节点失效或者需求变更情况,如果存在,则执行第五步骤;否则,执行第六步骤;(5)若存在节点失效情况,则尝试恢复失效的节点容器;若存在需求变更情况,则根据需求变更元数据,为集群添加或则删除节点容器;(6)重复执行以上第三至第五步骤,直至集群服务终止运行。本发明专利技术能够感知大数据平台内部状态从而进行有效弹性伸缩和提高集群资源使用率。

【技术实现步骤摘要】
基于服务发现和容器技术的大数据平台弹性伸缩方法
本专利技术涉及云计算大数据弹性伸缩领域,特别涉及一种基于服务发现和容器技术的大数据平台弹性伸缩方法。
技术介绍
在云计算相关领域,弹性伸缩有助于数据中心保持资源管理的鲁棒性,能够降低能耗缓解系统资源浪费。目前不管是流量巨大的电商、游戏等娱乐行业,还是请求量波动极大的视频、直播等新媒体行业,都需要在“资源不足”和“资源浪费”之间做权衡。邓子凡针对水平伸缩和垂直伸缩各自的缺点,提出一种将水平伸缩和垂直伸缩两种方式相结合的弹性伸缩模式,但依然存在虚拟机技术带来的缺点。在Gandhi等人的研究中指出了传统的解决方案的缺陷:AlwaysOn采用全冗余的方式会造成严重的资源浪费;Reactive采用延迟启动策略,但在虚拟机或应用环境启动时setup延迟时间太长,一般都会超过200秒;Predictive尝试利用线性回归等策略来拟合负载模型,提前启动虚拟机来缩短setup时间;弹性伸缩方法根据请求量动态调整资源配给,但由于虚拟机的启动延迟等缺陷,而采用了与Predictive结合的方式。随着容器技术的发展,弹性伸缩方法得到了更广泛的利用。例如在YWChen等人的研究中利用容器的弹性伸缩加速异构环境中的大数据作业,但在其解决方案中需要扩展大数据平台的相关模块,缺乏通用性。ToffettiG等人利用容器的弹性伸缩提出了一种能够自我管理的微服务架构,在其实现中采用etcd作为状态持久化中心,可以实时响应到集群状态的节点故障,从而实现自我恢复。HEYu等人提出了一种基于容器的高性能计算集群弹性伸缩架构,但其实现中用单节点维护服务状态,容易出现单点故障,缺乏可用性,KanC等人实现了一种基于容器的弹性伸缩云平台,该实现采用了与Predictive方法相结合的方式来预测流量变化,不能应对流量突变。虽然最近几年在面向大数据平台的弹性伸缩方向上已经开展了不少研究工作,然而,从传统的架构上来看,弹性伸缩需要结合Predictive方法预测流量的变化,这是由于虚拟机具有较高的启动延迟的缺点,而且这样的方法无法实时应对流量突变。此外,当前基于容器技术的弹性伸缩方法要不就是需要额外的扩展,要不就是存在功能上的缺陷,对目前流行的大数据平台不具有普遍适用性。
技术实现思路
鉴于上述现有技术存在的不足,本专利技术目的是提供一种基于服务发现和容器技术的大数据平台弹性伸缩方法,能根据服务代理提供大数据服务的生命周期信息,从而能够感知到集群内部的状态变化,为大数据集群提供按需的、灵活的弹性伸缩服务,并有效提高集群资源利用率。为实现以上目的,本专利技术采取如下技术方案:本专利技术的一种基于服务发现和容器技术的大数据平台弹性伸缩方法,包括以下步骤:第一步骤:使用容器技术对各大数据平台进行组件化封装处理;第二步骤:初始化大数据集群管理的元数据目录,在大数据集群启动时,拉取并启动相应大数据平台组件,并将集群元数据信息注册到服务代理;第三步骤:每个主机集群节点的状态监控器周期向服务代理汇报心跳数据,并更新相关信息,实现对集群内部的状态感知;第四步骤:主机集群的代理服务周期向服务代理读取大数据集群管理信息,判断是否存在节点失效或需求变更情况,若在心跳周期内服务代理未接收到容器节点的状态数据则将该节点视为节点失效,此时服务代理从元数据中将该节点运行状态标记为失效,反之节点运行状态标记为有效,如果存在节点失效或需求变更情况,则执行第五步骤;否则,执行第六步骤;第五步骤:若存在节点失效情况,则尝试恢复失效的节点容器;若存在需求变更情况,则根据需求变更元数据,相应代理服务为集群添加或删除节点容器;第六步骤:重复执行以上第三至第五步骤,直至集群服务终止运行。作为优选的技术方案,在第一步骤中,所述对各大数据平台的进行组件化封装处理,具体使用Docker容器虚拟化技术对大数据平台进行镜像化封装处理,形成大数据组件库,包括Hadoop镜像、Spark镜像、Kafka镜像、以及Storm镜像。作为优选的技术方案,在第二步骤中,所述元数据目录,具体包括根目录为每个注册的大数据集群单独维护的一个128位GUID、作为每个独立大数据集群个体的标识、子目录存储集群各节点的相关信息、以及集群需求变更元数据信息,其中,所述集群需求变更元数据信息,无变更以0标识,增加节点以“1”+主机ip字符串标识,删除节点以“2”+主机ip字符串标识;所述子目录存储集群各节点的相关信息,具体包括所属集群ID、自身IP地址、节点运行状态、CPU使用率、内存使用率、以及IO负载情况,并使用JSON格式进行存储,所述节点运行状态,有效以0标记,失效以1标记。作为优选的技术方案,在第三步骤中,所述每个主机集群节点的状态监控器周期向服务代理汇报心跳数据,并更新相关信息的方法为:状态监控器获取当前主机以及通过容器API获取运行在当前主机上的所有容器的相关信息,向服务代理汇报心跳数据并进行更新,其中,所述相关信息具体包括当前主机以及运行在当前主机上的各容器的IP地址、运行状态和各资源信息,所述各资源信息包括CPU使用率、内存使用率以及IO负载情况;同时设置心跳包响应超时周期为5s。作为优选的技术方案,在第四步骤中,所述服务代理作为服务与外界通信的桥梁,提供一切保存在服务端的相关信息,同时具备更新相关信息的功能,所述相关信息包括服务运行的程序文件、依赖库、配置和数据;所述代理服务采用订阅发布设计模式实现异步通信,负责周期性的轮询访问订阅列表中的所有组件信息,根据获取的服务状态信息处理各节点的节点失效或需求变更情况,按需求进行重启节点或增删节点操作;所述判断是否存在节点失效或需求变更的具体方法为:根据各节点周期反馈的资源信息,获取最近的10个心跳周期的资源利用率信息,设一个大数据集群容器节点有N个,用Ci、Mi、Ii分别表示第i个节点的CPU使用率、内存使用率、以及IO负载,则各资源平均使用率为和总资源综合使用率为T=w1×Cavg+w2×Mavg+w3×Iavg,即其中ω1、ω2、ω3分别表示CPU使用率、内存使用率、以及IO负载的权重,且有ω1+ω2+ω3=1,ω1=ω2=ω3=1/3,当在连续的10个心跳周期中均有T>80%时,则表示需要在负载最小的主机节点中增加一个大数据容器节点,同样使用T评价负载,更改需求变更元数据为字符串“1”+主机ip;当在连续的10个心跳周期中均有T<20%时,则表示需要在负载最大的主机节点中删除一个大数据容器节点,同样更改需求变更元数据为字符串“2”+主机ip;不符合上述条件的,则将需求变更元数据标记为无需更改状态。作为优选的技术方案,在第五步骤中,所述根据需求变更元数据,相应代理服务为集群添加或删除节点容器的方法为:若字符串的首字母为“1”时,当其中一个代理服务读取到字符串剩余部分所代表ip与自身所属主机ip相同时,则进行增加容器节点操作;若字符串的首字母为“2”时,当其中一个代理服务读取到字符串剩余部分所代表ip与自身所属主机ip相同时,则进行删除容器节点操作。本专利技术相对于现有技术具有如下的优点和效果:1、本专利技术采用容器化解决方案,流量变化可以从服务代理中实时获得,不但极大的降低弹性伸缩的响应时间,还可以实时感知到负本文档来自技高网
...
基于服务发现和容器技术的大数据平台弹性伸缩方法

【技术保护点】
一种基于服务发现和容器技术的大数据平台弹性伸缩方法,其特征在于,包括以下步骤:第一步骤:使用容器技术对各大数据平台进行组件化封装处理;第二步骤:初始化大数据集群管理的元数据目录,在大数据集群启动时,拉取并启动相应大数据平台组件,并将集群元数据信息注册到服务代理;第三步骤:每个主机集群节点的状态监控器周期向服务代理汇报心跳数据,并更新相关信息,实现对集群内部的状态感知;第四步骤:主机集群的代理服务周期向服务代理读取大数据集群管理信息,判断是否存在节点失效或需求变更情况,若在心跳周期内服务代理未接收到容器节点的状态数据则将该节点视为节点失效,此时服务代理从元数据中将该节点运行状态标记为失效,反之节点运行状态标记为有效,如果存在节点失效或需求变更情况,则执行第五步骤;否则,执行第六步骤;第五步骤:若存在节点失效情况,则尝试恢复失效的节点容器;若存在需求变更情况,则根据需求变更元数据,相应代理服务为集群添加或删除节点容器;第六步骤:重复执行以上第三至第五步骤,直至集群服务终止运行。

【技术特征摘要】
1.一种基于服务发现和容器技术的大数据平台弹性伸缩方法,其特征在于,包括以下步骤:第一步骤:使用容器技术对各大数据平台进行组件化封装处理;第二步骤:初始化大数据集群管理的元数据目录,在大数据集群启动时,拉取并启动相应大数据平台组件,并将集群元数据信息注册到服务代理;第三步骤:每个主机集群节点的状态监控器周期向服务代理汇报心跳数据,并更新相关信息,实现对集群内部的状态感知;第四步骤:主机集群的代理服务周期向服务代理读取大数据集群管理信息,判断是否存在节点失效或需求变更情况,若在心跳周期内服务代理未接收到容器节点的状态数据则将该节点视为节点失效,此时服务代理从元数据中将该节点运行状态标记为失效,反之节点运行状态标记为有效,如果存在节点失效或需求变更情况,则执行第五步骤;否则,执行第六步骤;第五步骤:若存在节点失效情况,则尝试恢复失效的节点容器;若存在需求变更情况,则根据需求变更元数据,相应代理服务为集群添加或删除节点容器;第六步骤:重复执行以上第三至第五步骤,直至集群服务终止运行。2.根据权利要求1所述的基于服务发现和容器技术的大数据平台弹性伸缩方法,其特征在于,在第一步骤中,所述对各大数据平台的进行组件化封装处理,具体使用Docker容器虚拟化技术对大数据平台进行镜像化封装处理,形成大数据组件库,包括Hadoop镜像、Spark镜像、Kafka镜像、以及Storm镜像。3.根据权利要求1所述的基于服务发现和容器技术的大数据平台弹性伸缩方法,其特征在于,在第二步骤中,所述元数据目录,具体包括根目录为每个注册的大数据集群单独维护的一个128位GUID、作为每个独立大数据集群个体的标识、子目录存储集群各节点的相关信息、以及集群需求变更元数据信息,其中,所述集群需求变更元数据信息,无变更以0标识,增加节点以“1”+主机ip字符串标识,删除节点以“2”+主机ip字符串标识;所述子目录存储集群各节点的相关信息,具体包括所属集群ID、自身IP地址、节点运行状态、CPU使用率、内存使用率、以及IO负载情况,并使用JSON格式进行存储,所述节点运行状态,有效以0标记,失效以1标记。4.根据权利要求1所述的基于服务发现和容器技术的大数据平台弹性伸缩方法,其特征在于,在第三步骤中,所述每个主机集群节点的状态监控器周期向服务代理汇报心跳数据,并更新相关信息的方法为:状态监控器获取当...

【专利技术属性】
技术研发人员:林伟伟吴梓明张子龙
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1