一种云计算环境下的大数据存储和处理平台及处理方法与流程

文档序号:14249240阅读:486来源:国知局
一种云计算环境下的大数据存储和处理平台及处理方法与流程

本发明涉及云计算环境下的大数据存储及处理的技术领域,更具体地说,涉及一种云计算环境下的大数据存储和处理平台及处理方法。



背景技术:

云计算与大数据的迅速发展孵化了一批云服务商。而根据他们提供的服务类型,可以将云服务分为三个层面,iaas(infrastructureasaservice)、paas(platformasaservice)以及saas(softwareasaservice)。针对paas(平台即服务)它包括离线数据处理、海量数据在线服务等应用场景。它允许用户按需灵活创建云端集群以及快速简易地使用数据存储及处理服务,主要包括自定义集群软硬件基础设施、丰富的集群作业类型,也可以定制集群作业的执行策略。通过将业务集群托管到云端,可以简化集群的部署、管理及监控,也能够提高集群的可扩展性、可靠性以及安全性,还能够降低企业的成本。针对云计算环境下资源的弹性供给以及不同类型的数据存储及处理需求,构建一个基于云计算的并提供各种不同的数据存储服务以及处理转换分析服务的大数据平台是当下云服务商亟需探索研究的内容。



技术实现要素:

本发明的主要目的在于克服现有技术的缺点与不足,提供一种云计算环境下的大数据存储和处理平台及处理方法,实现针对离线数据处理、实时数据处理以及交互式查询的统一存储、处理。

为了达到上述目的,本发明采用以下技术方案:

本发明提供了一种云计算环境下的大数据存储和处理平台,包括:集群计算框架、集群资源管理器、存储系统、弹性集群管理中心,以及应用程序框架,

所述集群计算框架,用于对用户提交的作业针对不同的业务处理需求进行批处理、流式处理以及交互式处理操作;

所述集群资源管理器,用于负责管理及调度集群资源和作业;

所述存储系统,用于负责输入数据集、处理结果及日志信息的存储管理;

所述弹性集群管理中心,用于负责接收用户的请求、管理用户提交的工作流、监控集群和作业的执行状况、管理集群的配置信息、引导集群和应用程序框架以及保证整个集群的运行是可靠的;

所述应用程序框架,用于构建数据仓库、为大型数据集提供更高层次的抽象处理以及准实时处理;

所述弹性集群管理中心包括用户请求处理器、集群配置管理器、集群引导管理器、作业流程管理器、集群状态监视器、以及集群管理控制器6个模块;

所述用户请求处理器,用于负责接收来自管理客户端、管理接口以及管理命令行用户的请求,并将它转发给相应组成部分;

所述集群配置管理器,用于负责管理集群的配置信息,包括集群虚拟机配置信息、作业配置信息、集群运行策略、以及作业执行策略;

所述集群引导管理器,用于负责集群虚拟机以及计算框架的启动及关闭,以及其它应用程序的引导操作,另外,集群引导管理器也负责调用集群资源重分配的接口;

所述作业流程管理器,用于负责根据用户提交到集群配置管理器的作业相关配置来对整个作业流进行管理与监控;

所述集群状态监视器,用于负责收集集群整体的运行状况并对其进行简单的性能分析、评估及展示;

所述集群管理控制器,用于负责监控用户请求处理器、集群配置管理器、集群引导管理器、作业流程管理器、集群状态监视器五个模块的运行,保证整个弹性集群管理中心正常工作。

本发明还提供了一种云计算环境下的大数据存储和处理平台的处理方法,该方法包括集群配置初始化并创建集群、向集群提交作业流、作业流调度执行、集群资源重新分配、终止集群及获取处理结果这五个方面的流程步骤,具体的实现步骤如下:

s1、集群配置初始化并创建集群:用户登录到集群管理控制台前,需在最佳的外部存储上创建输入数据集、脚本文件的存储目录;然后,用户初始化集群配置和设置集群的运行策略,集群配置包括选择不同类型下的不同规格的虚拟机节点并选择出主节点;此时,用户若选择立即启动虚拟机集群,则弹性集群管理中心的集群引导管理器会加载集群配置管理器中的集群引导操作的相关配置信息,并引导启动虚拟机集群;

s2、向集群提交作业流:启动虚拟机集群后,用户向集群提交一系列作业步骤,在提交作业步骤时,需要指定输入数据集、脚本文件、集群日志位置以及脚本文件的运行参数信息;与此同时,用户可设置作业步骤的调度策略,这些作业配置信息会提交给弹性集群管理中心的用户请求处理器,最终会交由集群配置管理器进行存储管理;在作业步骤配置完后,可选择立刻调度执行,则集群引导管理器会启动集群计算框架及可选的应用程序,并通知集群的主节点根据集群配置信息通过专用网络拷贝存储在外部存储的输入数据集及脚本数据,之后,集群资源管理器会给各节点分配资源,并开始调度执行当前作业步骤;

s3、作业流调度执行:在作业的运行过程中,集群资源管理器会向集群主节点反馈各节点的资源负载及作业执行状况,这些信息会通过主节点最终汇报给弹性集群管理中心的作业流程管理器以及集群状态监视器,作业流程管理器根据集群配置管理器中的作业相关配置信息,对用户提交的作业流进行监控管理,其主要侧重于对作业流的管理与监控,以及对作业步骤的宏观调度,而集群控制管理器会保障集群各个模块的正常运行,恢复并重新启动故障模块;

s4、集群资源重新分配:用户在作业执行的过程中,实时对集群资源进行重分配;用户通过控制台提交修改后的集群配置信息,修改后的集群配置信息会通过用户请求处理器,最终交由集群配置管理器,以重新给集群分配资源,而对于集群自动调整资源分布,是由集群配置管理器、集群管理控制器、集群状态监视器以及集群引导管理器四个模块的协调工作,以达到集群资源自动重分配的目的;

s5、终止集群及获取处理结果:当用户提交的整个作业流调度完毕后,集群主节点会删除集群虚拟机节点的缓存,并且会将作业的处理结果及集群日志拷贝到用户设置的相应的外部存储,而此时作业流程管理器会加载集群配置管理器的配置信息以调用集群引导管理器,对集群执行关闭操作,或者保持集群持续运行。

作为优选的技术方案,步骤s1中,所述最佳外部存储的实践,即将安全性、高效性及可扩展性作为集群数据源的选择依据,并选择性创建集群运行日志存储目录。

作为优选的技术方案,步骤s4中,所述集群资源重新分配是通过自动及手动的方式进行,每种分配方式都包括粗粒度的伸缩集群节点,以及细粒度的调整实例节点的处理器核心数量、处理进程数和对应的线程数。

作为优选的技术方案,弹性集群管理中心的集群引导管理器通过与集群主节点进行通信,以触发添加或移除集群节点的接口,以及调整集群节点资源的接口,通过调试接口对集群资源进行粗粒度的动态添加或移除虚拟机,或重新设置集群实例节点的内存容量、处理器核心数量,甚至针对某些作业可以细化到工作进程数量以及每个工作进程所包含的线程数。

作为优选的技术方案,弹性集群管理中心的集群状态监视器会实时监控集群的健康状况,并进行简单的分析、评估以及可视化的操作;通过集群配置管理器、集群状态监视器、集群引导管理器以及集群管理控制器这四个模块的协调工作可以自动伸缩集群节点,以及动态的更改集群实例节点的内存容量、处理器核心数量。

作为优选的技术方案,集群节点的动态伸缩操作,会考虑到集群节点数据的一致性及均衡性,当集群有大量闲置节点时,在调用动态从集群移除实例节点的接口前,会将节点存储的数据进行转存储,而当有新的虚拟机节点加入集群时,在默认情况下,集群也会进行集群数据的均衡操作。

作为优选的技术方案,步骤s3中,弹性集群管理中心的作业流程管理器会依次调度执行用户提交的作业步骤,并且会重新调度失败的作业步骤,对于执行进度停滞的作业步骤,会额外调度执行其副本作业步骤,并且,对于反复执行失败的作业,会转储其中间执行结果,然后将其标记为失败。

作为优选的技术方案,用户通过设置集群运行策略使集群持续运行,或通过设置作业运行的策略而让集群在调度完整个作业流之后,自动终止执行,并且作业的执行策略的优先级要高于集群的调度策略,用户可在任一时候终止集群,但前提是必须依次取消各个作业步骤的执行;关于作业的所有自动或手动的操作都会作日志记录,且管理员可以通过实时日志监控信息以针对性地调试集群。

作为优选的技术方案,弹性集群管理中心6个模块中的任一模块出现故障,集群管理控制器会恢复并重新启动故障模块,以保证整个集群正常工作运行。

本发明与现有技术相比,具有如下优点和有益效果:

1、本发明的平台由以下几个部分组成:集群计算框架,包含但不局限于hadoopmapreduce及apachespark,负责对用户提交的数据针对不同的业务处理需求进行批处理、流式处理以及交互式处理等操作,并且保证与外部存储系统(比如amazons3、aliyunoss、cumulus以及数据库等)的高效协调工作;集群资源管理器,可以使用开源的apacheyarn,以管理集群资源和调度作业,它会针对作业的每个任务进行粗粒度的资源调度;存储系统,它可以包含多种不同的文件系统,除了hdfs外,还可以包含amazons3、aliyunoss及cumulus等,也包含了关系型或非关系型数据库,比如hbase、mysql等,还包括节点固有的本地文件系统;弹性集群管理中心:它是六个管理模块的组合:用户请求处理器,它负责接收来自(管理客户端、管理接口以及管理命令行)用户的请求,并将它转发给相应模块;集群配置管理器,它负责管理集群的配置信息,这包括集群虚拟机配置信息、作业配置信息、集群运行策略、作业执行策略等;集群引导管理器,它负责集群虚拟机以及计算框架的启动及关闭,以及其它应用程序的引导操作,另外,它也负责调用集群资源重分配的接口;作业流程管理器,它主要负责根据用户提交到集群配置管理器的作业相关配置来对整个作业流进行管理与监控;集群状态监视器,它负责收集集群整体的运行状况,并对其进行简单的性能分析、评估及展示;集群管理控制器,为了保证整个弹性集群管理中心的工作是可靠的,它负责监控上述五个模块的运行,以保证其能正常工作。另外它会读取集群状态监视器的集群状态信息,通过修改集群配置管理器的配置信息来触发集群引导管理控制器的资源调整接口以自动伸缩集群或动态调整节点资源。应用程序框架,它包括但不局限于apachehive、apachepig以及sparkstreaming库等,以用来构建数据仓库、为大型数据集提供更高层次的抽象处理以及准实时处理等。

2、在本发明的方法中,集群中各组件之间通信是异步的;另外,需要指出的是,之所以使用外部存储来保存日志及分析处理结果(这似乎不符合数据本地化的思想),比如amazons3、aliyunoss及cumulus等,是因为这些外部存储本身的存储成本会较实例存储会低,而且其具备高可靠以及弹性扩展的特点,能够让用户更加专注于计算本身,这也符合存储与计算分离的思想,最后集群的专有网络可以加速数据传输效率,也更安全。此大数据处理平台提供多种类型的数据处理分析服务,并且允许用户手动根据业务需求对集群进行伸缩操作以及调整集群各个节点的资源分配,以使得实际的数据处理过程更高效、更可靠、更灵活、更简易、更安全且更经济。

附图说明

图1为本发明方法的流程图。

图2为集群配置初始化并创建集群的流程图。

图3为向集群提交作业流的流程图。

图4为作业流调度执行的流程图。

图5为集群资源重新分配的流程图。

图6为终止集群及获取处理结果的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1所示,描述的是该方法的主要组成部分。此大数据处理平台由以下几个部分组成:集群计算框架,包含但不局限于hadoopmapreduce及apachespark,负责对用户提交的数据针对不同的业务处理需求进行批处理、流式处理以及交互式处理等操作,并且保证与外部存储系统(比如amazons3、aliyunoss、cumulus以及数据库等)的高效协调工作;集群资源管理器,可以使用开源的apacheyarn,以管理集群资源和调度作业,它会针对作业的每个任务进行粗粒度的资源调度;存储系统,它可以包含多种不同的文件系统,除了hdfs外,还可以包含amazons3、aliyunoss及cumulus等,也包含了关系型或非关系型数据库,比如hbase、mysql等,还包括节点固有的本地文件系统;弹性集群管理中心:它是六个管理模块的组合:用户请求处理器,它负责接收来自(管理客户端、管理接口以及管理命令行)用户的请求,并将它转发给相应模块;集群配置管理器,它负责管理集群的配置信息,这包括集群虚拟机配置信息、作业配置信息、集群运行策略、作业执行策略等;集群引导管理器,它负责集群虚拟机以及计算框架的启动及关闭,以及其它应用程序的引导操作,另外,它也负责调用集群资源重分配的接口;作业流程管理器,它主要负责根据用户提交到集群配置管理器的作业相关配置来对整个作业流进行管理与监控;集群状态监视器,它负责收集集群整体的运行状况,并对其进行简单的性能分析、评估及展示;集群管理控制器,为了保证整个弹性集群管理中心的工作是可靠的,它负责监控上述五个模块的运行,以保证其能正常工作。另外它会读取集群状态监视器的集群状态信息,通过修改集群配置管理器的配置信息来触发集群引导管理控制器的资源调整接口以自动伸缩集群或动态调整节点资源。应用程序框架,它包括apachehive、apachepig以及sparkstreaming库等,以用来构建数据仓库、为大型数据集提供更高层次的抽象处理以及准实时处理等。

该方法主要描述集群配置初始化并创建集群、向集群提交作业流、作业流调度执行、集群资源重新分配以及终止集群及获取处理结果这五个方面的流程步骤。图1描述了集群中各个组件的位置以及由它们之间的相互通信而构成的集群配置初始化并创建集群、向集群提交作业流、作业流调度执行、集群资源重新分配以及终止集群及获取处理结果。

本发明的目的是,针对云计算环境下资源的弹性供给,及存在不同类型、作用的数据存储及处理的需求,构建一个提供统一的存储、处理及转换分析服务的大数平台。

具体而言,用户登录到集群管理控制台(接口调用、管理界面)后,创建主从式架构的弹性集群。与此同时,用户需要提供输入数据集的位置,以及创建用于存放处理结果及日志文件等的外部存储目录。另外,用户需要初始化虚拟机集群的节点配置,并设置好集群的运行策略。此后,用户才可以启动集群,向集群提交一系列(各种类型的)作业步骤,并设定好作业的运行参数及作业的调度策略。之后会以弹性集群管理中心为核心来执行一系列的数据存储及处理、转换及分析的操作。此请求会提交给弹性集群管理中心的用户请求处理器模块,最终会由集群配置管理器进行存储管理,之后集群引导管理器会开始启动集群计算框架,并通知集群主节点远程拷贝相关数据文件。在作业步骤调度之前,集群主节点会向集群资源管理器申请资源,而在作业步骤执行过程中,集群资源管理器会将其所在节点的负载信息及任务信息周期性反馈给集群主节点,主节点进一步将这些信息分别发送给集群状态监视器和作业流程管理器,集群状态监视器会对收集到的信息作简单分析及量化展示,而作业流程管理器则侧重对作业进行管理与调度,比如一旦当前作业步骤执行完毕后,会加载集群管理配置器模块中与作业步骤相关的配置信息,以决定后续作业步骤的调度,或者指示集群引导管理器关闭集群。作业流程管理器会反复尝试调度那些失败的作业,并提供竞争性作业和作业数据一致性的功能。根据集群作业执行的具体状况,集群管理控制器、集群状态监视器、集群配置管理器及集群引导管理控制器的相互协作能够实现集群节点的自动伸缩与资源的动态调整。最后当所有作业步骤调度执行完后,整个弹性集群在转储输出结果及日志信息后,会自动关闭集群。

本发明的目的是通过下述技术方案实现:一种云计算环境下的大数据存储和处理平台及处理方法,具体包括如下步骤:

1、集群配置初始化并创建集群:

在创建集群之前,用户需要在外部存储上创建输入数据集、脚本文件等的存储目录,并将安全性、高效性及可扩展性作为外部存储的最佳实践,把集群输入数据存储到外部存储是为了让存储与计算分离,同时外部存储在可靠性、安全性以及扩展性方面也更高。也可以创建集群日志存储目录,这是可选的,如果没有将集群的日志保存到外部存储,在集群运行过程中可以通过webui实时查看集群日志,它们默认会被存储到集群主节点的临时目录当中,当集群终止后,会被删除掉。另外,数据库也可作为集群的数据源及输出位置,比如你可以编写mapreduce程序来读取hbase中的非结构化数据,或者将数据量较小的结构化数据导出到mysql。

然后,用户还需要初始化集群配置和设置集群的运行策略,这包括选择不同类型下的不同规格的虚拟机节点并选择出主节点,以及设置集群的运行策略。关于集群节点,可以划分为三种类型,主节点负责管理集群的元数据信息,另外它会保存任务的执行状态及集群的负载信息。核心节点负责集群的数据计算以及数据存储。计算节点是可选的,用于提供计算资源。在创建集群时,可以根据业务需求初始化一定量的核心节点并选定主节点。另外在节点的规格选择上,需要根据作业的类型来确定,比如有cpu密集型、内存密集型或者普通型。关于集群的运行策略,比如当作业流调度完毕后集群的行为,可以选择立即关闭集群,或者保持持续运行。

这些初始化信息会通过弹性集群管理中心的用户请求处理器模块提交给集群配置管理器模块进行存储与管理。

如果用户在此时选择立即启动虚拟机集群,则此时集群引导管理器会加载集群配置管理器中的关于集群引导操作的相关配置信息,以启动虚拟机集群,分配好实例节点的资源,并选择出主节点。

2、向集群提交作业流:

启动虚拟机集群后,用户便可以向集群提交一系列作业步骤。在提交作业步骤时,需要指定输入数据集、脚本文件、集群日志(可选)的存储位置,以及脚本文件的运行参数。与此同时,用户还可以设置作业步骤的执行策略,这些信息会提交给弹性集群管理中心的用户请求处理器模块,最终会交由集群配置管理器进行存储管理。关于作业步骤的执行策略,比如当作业流的某一作业步骤执行失败后集群的行为。集群此时默认会重新调度此作业步骤,如果是用户程序逻辑错误或者硬件故障而使得作业步骤反复调度执行失败,则会将此步骤的执行状态标记为失败。此种情形下,后续步骤的默认执行策略为取消。而且,此时集群会将作业的执行中间结果转储到指定的外部存储,并作日志记录,以便集群下次可以从此步骤继续调度执行。你也可以选择重置默认策略以取消转储作业的中间执行结果,此种情况下,作业执行的中间结果将会在集群终止后被删除。

当用户向集群提交作业步骤后,一方面,弹性集群管理中心的集群引导管理器模块会向集群主节点传达数据/脚本拷贝命令,以将外部存储的数据集、脚本文件等拷贝到集群各节点,并且会启动集群计算框架的各个后台进程,也会启动其它应用程序(apachehive、apachepig等),如果用户有指定。另一方面,作业流程管理器模块会加载集群配置管理器的作业相关配置信息,通过与集群主节点进行通信,以开始调度第一个作业步骤。此时,集群主节点会向集群资源管理器申请资源,集群资源管理器会为此作业创建一个应用程序代理对象,创建的应用程序代理对象,会定时收集各个节点的负载状况和任务执行情况,并汇报给集群主节点,主节点会将收到的信息分类存储到本节点的临时目录。

3、作业流调度执行:

当我们同时提交多个作业步骤时,它们会依次被弹性集群管理中心的作业流程管理器模块调度。且一般而言,前一个作业步骤的输出会作为后一个步骤的输入。作业在执行的过程中,主节点会主动将作业执行信息汇报给作业流程管理器模块,并将集群的负载信息汇报给集群状态监视器,它会进行简单的分析、评估以及可视化的操作,以供管理员针对集群异常情况进行调试,也作为集群自动伸缩和节点资源动态调整的依据。

作业流程管理器模块会根据集群配置管理器中的作业配置相关信息,对用户提交的作业流进行管理与监控。比如,一个作业执行的中间结果会直接存储在本节点的文件系统或内存中。一旦当前作业步骤调度成功执行完毕后,便会通知集群引导管理器模块引导下一个作业步骤。而集群引导管理器则会通过与集群主节点通信以引导其进行相应操作,比如拷贝此作业步骤的相关输入数据,然后又向集群资源管理器申请资源。相反如果作业执行失败,它默认会重新调度作业步骤,反复尝试多次后,如果依然执行失败,会将此作业步骤标记为失败,而后续的作业步骤会被标记为取消,并转储作业步骤执行的中间结果。除此之外,还有可能出现作业步骤的执行出现停滞的情况,即主节点从资源管理器获取的作业执行进度长时间没有刷新,此时,默认设置下,主节点会复制此步骤的调度,即重新向资源管理器申请资源,以重新调度此步骤,且只要其中任何一个步骤执行完成,集群就会显式地终止另一个步骤的执行。最后,如果所有的作业步骤调度完毕,作业流程管理器会通知集群引导管理器终止集群,如果用户允许的话,否则整个集群将处于等待状态。

当弹性集群管理中心任一子模块出现故障时,集群控制管理器就会重启出现故障的模块,并恢复各处理模块的正常运行。

4、集群资源重新分配:

集群中正在运行的节点会通过资源管理器向主节点周期性汇报本节点的资源消耗以及负载情况。在集群运行时,日志信息会存储在主节点的临时目录中,并且最终会交由弹性集群管理器的集群状态监视器进行分析、评估及展示。我们可以通过集群的管理监控界面,实时查看集群的负载情况,比如利用apacheganglia来生成日志报告并对整个集群或单个节点实例的性能指标数据作可视化。

如果用户提交的作业的任务量显著增加而导致集群的节点的负载达到阀值时,集群主节点会捕捉到此时集群负载处于异常情况。此时,集群提供自动或手动的方式来对集群的资源重新分配。一方面,如果是手动重分配集群资源,用户可以向用户请求处理器重新提交集群资源的配置信息,以覆盖集群配置管理器的相关配置信息,并触发集群引导管理器重新分配集群资源的接口。如果是添加节点操作,集群引导管理器会调用往集群动态添加虚拟机节点的接口(比如amazonec2、openstack、nimbus等)。重分配集群节点资源可以从两个层面进行调控,在细粒度层面,可以更改节点内存容量,处理器核心数量,对于某些作业甚至可以细化到节点的作业进程数量以及每个作业进程所包含的线程数。当节点的资源重分配完成后,资源配置管理器的相关配置信息发生变化,因此会触发集群引导管理器重分配资源的接口,它会通知各个节点以做出相应的资源调整。如果面临内存不足的情况,则会考虑将数据临时交换到本节点的文件系统中;在粗粒度层面,则可以手动增加或者移除集群节点,这通常需要考虑作业的类型,以针对性地伸缩集群节点,包括核心节点和计算节点,新加入的结点需要在主节点进行注册,并且要借助资源管理器中的应用程序代理对象以周期性地将其作业执行情况以及节点负载情况汇报给主节点。相反,被移除的节点需要在主节点删除其注册信息,并且在集群中移除之前需要将其节点数据进行转储,包括内存与磁盘的数据,这个前提是整个集群存在保留的内存或者磁盘资源。另一方面,用户也可以将集群设置为自动伸缩调整,自动伸缩调整的具体流程是:集群控制管理器会定时读取集群状态监视器收集到的集群作业执行状况以及集群的负载情况,如果集群的某一性能指标超过用户设定的阈值,集群控制管理器会通过修改集群配置管理器中集群相关的配置信息来触发集群引导管理器相关接口的调用,最终达到伸缩集群或调整集群资源分配的目的。通过自动或手动伸缩集群以及调整集群节点的资源分配,可以提高作业处理效率以及资源的利用率,集群伸缩操作或者节点资源调整都会作日志记录。

5、终止集群及获取处理结果:

当用户提交的所有作业步骤都被调度完毕后,弹性集群管理中心的作业流程管理器模块会读取集群配置管理器模块的作业执行策略和集群运行策略,作业执行策略优先于集群运行策略。所以一般情况下,为了避免浪费集群资源,可以设置在所有作业步骤执行完毕,终止集群运行。

此时,集群引导管理器会通知集群主节点释放集群实例资源,并且通知集群资源管理器停止工作,而各节点实例会从主节点中删除本节点的元信息。一旦集群终止,弹性集群管理中心所有模块的信息都会被删除。另外需要指明的是,如果集群正在调度作业,或者有作业在等待调度,此时不能直接终止集群,必须先终止作业的执行,或取消作业步骤的提交。

之后,我们可以从外部存储中获取作业流处理分析结果及日志信息,或者交由前端组件作可视化处理。

下面结合具体的实施方法,对本发明的方法做进一步的阐述:

如图2所示,描述的是集群配置初始化并创建集群的过程,即用户初始化集群各组件的配置并启动集群的流程。

①在外部存储上创建目录,并上传输入数据集及脚本文件等。

②在外部存储上创建用于存储日志的目录。

③设置集群节点的类型及规格。

④设置集群的运行策略。

⑤弹性集群管理中心的用户请求处理模块接受集群管理控制台发送的集群初始化创建的请求。

⑥集群配置管理器存储并校验用户请求处理模块发送的配置信息。

⑦集群引导管理器加载集群配置管理器的配置信息。

⑧集群引导管理器调用动态添加虚拟机的接口以创建集群。

⑨集群节点选出主节点,并在各从节点运行之前向主节点注册节点元信息。

如图3所示,描述的是向集群提交作业流的流程。

①指定输入数据集、脚本文件以及集群日志(可选)位置,以及脚本文件的运行参数信息。

②设置作业步骤的执行策略。

③弹性集群管理中心的用户请求处理器模块接收集群管理控制台发送的作业初始化请求。

④集群配置管理器存储并校验用户请求器处理模块发送的作业配置信息。

⑤集群引导管理器模块会向集群主节点传达数据/脚本拷贝命令。

⑥集群主节点将外部存储的数据集和脚本文件等拷贝到集群各节点。

⑦集群引导管理器模块会通知主节点启动集群计算框架的各个后台进程。

⑧集群引导管理器模块远程引导启动其它应用程序(apachehive、apachepig等)。

⑨作业流程管理器模块会加载集群配置管理器的作业配置信息。

⑩作业流程管理器模块开始调度第一个作业步骤。

集群主节点会向集群资源管理器申请资源。

资源管理器创建应用程序代理对象,以定时收集各个节点的负载状况及作业运行情况。

应用程序代理对象将收集的信息定时汇报给集群主节点。

集群主节点将应用程序代理对象汇报的信息保存到临时目录。

如图4所示,描述的是作业流调度执行的流程。

①弹性集群管理中心的作业流程管理器模块对用户提交的作业流依次调度。

②主节点主动将作业执行情况汇报给作业流程管理器模块。

③主节点主动将集群的负载信息汇报给集群状态监视器模块。

④集群状态监视器对集群的负载信息作简单分析、评估以及可视化。

⑤当前作业步骤成功调度执行完毕。

⑥作业流程管理器模块读取集群配置管理器中的作业流配置相关信息。

⑦作业流程管理器模块继续调度下一个作业步骤。

⑧集群引导管理器通知集群主节点拷贝当前作业的运行所需的数据。

⑨集群主节点向集群资源管理器申请资源。

⑩集群主节点对当前作业步骤进行调度执行。

作业流程管理器监控到当前作业执行失败,它默认会重新调度作业步骤。

作业流程管理器重试当前作业若干次,标记此作业步骤执行状态为失败,并取消后续作业步骤的执行。

作业流程管理器监控到当前作业的执行进度出现停滞,默认会启动一个相同的作业步骤进行竞争执行。

作业流程管理器将用户提交的作业流调度完成,整个集群会处于等待状态。

如图5所示,描述的是集群资源重新分配的流程图。

由于集群在运行过程中,集群节点是动态变化的,集群的负载也是实时变化的,所以为了保证集群有条不紊地运行,必须对集群实时监控。集群的资源重分配包含手动调试与自动调整两个方面。

①集群中各节点会通过应用程序代理对象向集群主节点发送资源消耗及负载情况信息。

②弹性集群管理器的集群状态监视器对集群主节点汇报的资源消耗及负载数据进行分析、评估及展示。

③集群管理控制器实时获取集群状态监视器中集群的负载信息。

④如果集群的某一性能指标达到阀值,便主动修改集群配置管理器中集群相关配置信息。

⑤如果集群部分节点处于闲置状态,集群引导管理器会通知集群主节点对闲置的节点的数据进行迁移,如果存储有的话。

⑥被移除的节点从集群主节点中删除本节点的元信息。

⑦集群引导管理器会调用从集群中动态移除节点实例的接口。

⑧如果集群部分节点处于资源过度负载的状态,用户将向集群中动态的添加合适类型、合适规格的节点,并将配置信息提交给用户请求处理器。

⑨用户请求处理器会将集群节点扩展信息转发给集群配置管理器。

⑩集群引导引导管理器检测到集群配置管理器中配置信息发生变化,会调用动态向集群添加虚拟机的接口,以添加节点实例。

新加入的节点实例向集群主节点注册本节点信息。

集群主节点开始调度新加入的节点实例。

用户修改原有节点的配置信息,并提交给用户请求处理器模块。

用户请求处理器会将集群节点扩展信息转发给集群配置管理器。

集群引导管理器检测到集群配置管理中配置信息发生器变化,重新调用节点资源配置接口。

集群资源管理器针对集群资源的重分配进行调整。

主节点对集群资源的重分配操作进行日志记录。

如图6所示,描述的是终止集群及获取处理结果的流程图。

①弹性集群管理中心的作业流程管理器模块完成作业流调度。

②作业流程管理器模块读取集群配置管理器模块中的配置信息。

③作业流程管理器模块通知集群引导管理器模块终止集群。

④集群引导管理器模块通知主节点释放集群资源。

⑤集群各节点从主节点删除本节点的元信息。

⑥集群资源管理器停止对任务、资源的调度。

⑦集群引导管理器调用动态从集群释放节点的接口。

⑧用户向用户请求处理器提交终止作业步骤调度的信息。

⑨用户请求处理器将请求转发给作业流程管理器模块。

⑩作业流程管理器模块终止作业的调度,并将作业标记为取消。

用户从外部存储获取处理结果及日志信息。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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