分布式框架中用于实现集群动态伸缩的方法及装置与流程

文档序号:12176676阅读:233来源:国知局
分布式框架中用于实现集群动态伸缩的方法及装置与流程

本发明涉及网络技术,尤其是涉及一种分布式框架中用于实现集群动态伸缩的方法以及分布式框架中用于实现集群动态伸缩的装置。



背景技术:

在分布式技术领域中,由于Hadoop的系统底层细节透明而成为目前应用较为广泛的分布式框架。基于Hadoop的集群(即Hadoop集群)伸缩通常是指集群规模和处理能力的调整。

目前,Hadoop集群伸缩的实现方法通常为:在Hadoop集群中需要增加新的从节点时,先对该从节点所在的服务器进行配置,然后,中断Hadoop集群中的各节点中的服务,并在通知Hadoop集群中的各节点增加了新的从节点后,启动Hadoop集群的各节点中的服务,从而使新的从节点加入Hadoop集群;在Hadoop集群中需要缩减从节点时,中断Hadoop集群中的各节点中的服务,并在通知Hadoop集群中的各节点被缩减的从节点后,启动Hadoop集群的各节点中的服务,从而使被缩减的从节点退出Hadoop集群。

发明人在实现本发明过程中发现,现有的调整集群规模和处理能力的方式由于需要中断Hadoop集群的各节点中的服务,且设置服务器等操作需要人工处理,从而使集群伸缩的实现成本较高,且智能化程度较低。另外,调整后的Hadoop集群很难与实际应用场景中对存储资源和计算资源的需求相匹配,如Hadoop集群规模和处理能力通常是根据高峰时段对集群资源的需求设置的,因此,在低峰时段必然会出现集群资源浪费的现象。



技术实现要素:

本发明的目的是提供一种分布式框架中用于实现集群动态伸缩的方法及装置。

根据本发明的一个方面,提供一种分布式框架中用于实现集群动态伸缩的方法,且所述方法主要包括以下步骤:确定出存在集群动态伸缩需求,其中,所述集群包括:多个从节点,且所述多个从节点根据其提供的资源服务被划分为计算资源组和存储资源组;根据所述集群动态伸缩需求调整所述计算资源组和/或存储资源组中的从节点数量。

根据本发明的另一个方面,提供一种分布式框架中用于实现集群动态伸缩的装置,包括:用于确定出存在集群动态伸缩需求的装置,其中,所述集群包括:多个从节点,且所述多个从节点根据其提供的资源服务被划分为计算资源组和存储资源组;用于根据所述集群动态伸缩需求调整所述计算资源组和/或存储资源组中的从节点数量的装置。

与现有技术相比,本发明具有以下优点:本发明通过将集群中的多个从节点根据其各自所提供的资源服务(即计算资源服务、存储资源服务)而划分在计算资源组和存储资源组中,使计算资源组和存储资源组中的从节点所提供的资源服务存在差异,这样,计算资源组中的从节点可以为重计算轻存储的从节点,而存储资源组中的从节点可以为重存储轻计算的从节点,从而本发明在集群伸缩时,可以有针对性的对计算资源组和/或存储资源组进行伸缩,进而本发明可以使集群规模和处理能力的调整更加有针对性,使集群规模和处理能力能够与实际应用场景中对存储资源和计算资源的需求更好的匹配,如在高峰时段,集群可以及时提供充足的计算资源,而在低谷时段,集群可以及时释放多余的计算资源等;由此可知,本发明提供的技术方案可以有效的避免集群资源不足以及集群资源浪费的现象,在提高了集群动态伸缩的灵活性的同时,提高了集群的性能。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例一的分布式框架中用于实现集群动态伸缩的方法流程图;

图2为本发明实施例二的分布式框架中用于实现集群动态伸缩的方法中的利用虚拟机搭建Hadoop集群的一个具体例子的流程图;

图3为本发明实施例二的分布式框架中用于实现集群动态伸缩的方法中的Hadoop集群的扩容的一个具体例子的流程图;

图4为本发明实施例二的分布式框架中用于实现集群动态伸缩的方法中的Hadoop集群的缩容的一个具体例子的流程图;

图5为本发明实施例三的远程控制节点执行分布式框架中用于实现集群动态伸缩的方法中的一个具体例子的流程图;

图6为本发明实施例四的分布式框架中用于实现集群动态伸缩的装置示意图;

图7为本发明实施例四的确定需求装置的一个具体例子的示意图;

图8为本发明实施例四的调整资源组装置的一个具体例子的示意图;

图9为本发明实施例四的调整资源组装置的另一个具体例子的示意图;

图10为本发明实施例四的注册装置的一个具体例子的示意图;

图11为本发明实施例四的调整资源组装置的再一个具体例子的示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的执行顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或者是由ASIC、FPGA、DSP等硬件执行预定处理过程,或者是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑以及笔记本电脑等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是,本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或者“耦合”到另一个单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

下面结合附图对本发明作进一步详细描述。

实施例一、分布式框架中用于实现集群动态伸缩的方法。

图1为本实施例的分布式框架中用于实现集群动态伸缩的方法的流程图,且图1所示的方法主要包括:步骤S100以及步骤S110。本实施例所记载的方法通常是在计算机设备中被执行的,优选的,本实施例所记载的方法可以在服务器、台式计算机以及其他网络设备中被执行,如该方法在与集群远程连接的服务器、台式计算机以及其他网络设备中被执行。下面对图1中的各步骤分别进行说明。

S100、确定出存在集群动态伸缩需求。

本实施例中的集群可以为Hadoop集群,也可以为基于其他分布式框架的集群。本实施例中的集群包括:多个从节点,即Slave节点。本实施例中的从节点是相对于集群的主节点(即Master节点)而言的。本实施例中的从节点并不是指针对集群数据副本而言的从节点。另外,本实施例中的从节点通常由虚拟机或者其他形式的易于创建并易于销毁的逻辑设备来实现。

作为示例,集群中的所有从节点被划分为计算资源组和存储资源组,当然,本实施例并不排除集群中的部分从节点被划分为计算资源组和存储资源组的可能性。通常情况下,计算资源组应包括至少一个从节点(可以称为计算从节点),而存储资源组也应包括至少一个从节点(可以称为存储从节点),即计算资源组和存储资源组通常不会出现为空的情况。

作为示例,一个从节点被划分在计算资源组或者存储资源组中的依据通常包括:该从节点为集群所提供的资源服务;例如,一个从节点如果为集群提供存储资源服务(如分布式存储服务),则该从节点会被划分到存储资源组中,而一个从节点如果不为集群提供存储资源服务,但是却为集群提供计算资源服务(如分布式计算服务),则该从节点会被划分到计算资源组中。

作为示例,存储资源组中的各从节点通常具有较大存储空间的磁盘(如大容量硬盘等),而其CPU(Central Processing Unit,中央处理器)的计算能力通常较弱;相反的,计算资源组中的各从节点通常具有较强计算能力的CPU,而其磁盘的存储空间通常很小(如配置小容量硬盘等)。

本实施例将集群中的从节点划分为计算资源组和存储资源组,且计算资源组和存储资源组中的从节点在存储资源和计算资源方面的配置可以存在较大差异,从而可以使集群规模和处理能力的调整更加有针对性,且可以使集群规模和处理能力能够与实际应用场景中对存储资源和计算资源的需求更好的匹配,如集群可以较好的适用于重存储轻计算的实际应用场景中,再如集群可以较好的适用于轻存储重计算的实际应用场景中。

作为示例,本实施例的存储资源组中的从节点为集群提供存储资源服务和计算资源服务,如存储资源组中的从节点为集群提供分布式存储服务和分布式计算服务;而本实施例的计算资源组中的从节点仅为集群提供计算资源服务,即计算资源组中的从节点仅为集群提供分布式计算服务,而不为集群提供分布式存储服务。当然,本实施例并不排除存储资源组中的从节点仅为集群提供存储资源服务而不为集群提供计算资源服务的可能性。由于集群中的从节点在执行数据读取操作时需要占用一定的计算资源,但是其所占用的计算资源非常有限,因此,本实施例通过使存储资源组中的从节点提供存储资源服务以及计算资源服务,可以实现对存储资源组中的从节点的充分利用。

作为示例,本实施例中的集群动态伸缩需求可以包括:扩充计算资源组中的从节点需求、缩减计算资源组中的从节点需求、扩充存储资源组中的从节点需求以及缩减存储资源组中的从节点需求中的一个或者多个。

作为示例,在本实施例中的集群动态伸缩需求包括上述四种需求的情况下,本实施例所确定出的存在的集群动态伸缩需求可以为上述四种需求中的任意一种需求;当然,本实施例所确定出的存在的集群动态伸缩需求也可以不止包括一种需求而是同时包括两种需求,如扩充计算资源组中的从节点需求以及扩充存储资源组中的从节点需求;再如扩充计算资源组中的从节点需求以及缩减存储资源组中的从节点需求;再如缩减计算资源组中的从节点需求以及扩充存储资源组中的从节点需求;再如缩减计算资源组中的从节点需求以及缩减存储资源组中的从节点需求。

作为示例,本实施例可以在集群的计算任务过多形成堆积或恶性竞争等的情况下,确定出存在集群动态伸缩需求,且本实施例可以在集群的存储空间不足或者存储空间存在危机的情况下,确定出存在集群动态伸缩需求;更具体而言,本实施例可以根据获取到的集群性能信息确定出存在集群动态伸缩需求。本实施例所获取到的集群性能信息可以包括:集群的计算资源利用率和集群的存储资源利用率中的至少一个;且在通常情况下,本实施例获取到的集群性能信息同时包括:集群的计算资源利用率和集群的存储资源利用率。集群的计算资源利用率通常为当前集群中的所有计算任务所占用的计算资源与当前集群中的所有从节点所能够提供的总计算资源的比值,也即当前集群中的所有计算任务所占用的计算资源占当前集群中的所有从节点所能够提供的总计算资源的百分比。集群的存储资源利用率通常为当前集群中的所有从节点已存储的数据所占用的存储空间与当前集群中的所有从节点所能够提供的总存储资源的比值,也即当前集群中的所有从节点已存储的数据所占用的存储空间占当前集群中的所有从节点所能够提供的总存储资源的百分比。当然,本实施例所获取到的集群性能信息也可以包括:集群中未被使用的计算资源以及集群中未被占用的存储资源等。本实施例不限制集群性能信息的具体表现形式。

作为示例,本实施例可以通过集群中的所有从节点加入集群的过程获知集群的各从节点各自所能够提供的总计算资源(如CPU的数据处理能力)以及总存储资源(如磁盘的存储空间大小),从而本实施例能够获知集群的所有从节点所能够提供的总计算资源和总存储资源。

作为示例,在集群中的所有从节点均被划分在计算资源组和存储资源组中,且计算资源组中的所有从节点仅提供计算资源服务,而存储资源组中的所有从节点仅提供存储资源服务的情况下,本实施例所获得集群的计算资源利用率其实为计算资源组中的所有从节点的计算资源利用率,本实施例所获取的集群的存储资源利用率其实为存储资源组中的所有从节点的存储资源利用率。

作为示例,在集群中的所有从节点均被划分在计算资源组和存储资源组中,且计算资源组中的所有从节点仅提供计算资源服务,而存储资源组中的所有从节点提供存储资源服务和计算资源服务的情况下,本实施例所获得集群的计算资源利用率其实为计算资源组和存储资源组中的所有从节点的计算资源利用率,本实施例所获得的集群的存储资源利用率其实为存储资源组中的所有从节点的存储资源利用率。

作为示例,本实施例可以从集群的主节点处获取集群的计算资源利用率以及集群的存储资源利用率;如本实施例通过与集群的主节点进行远程通讯向主节点发送请求,并接收主节点根据该请求而传输来的当前集群的计算资源利用率以及集群的存储资源利用率;再如主节点通过远程通讯方式主动定时上报当前集群的计算资源利用率以及集群的存储资源利用率;再如主节点在监测到当前集群的计算资源利用率达到第一阈值或者低于第二阈值或者集群的存储资源利用率达到第三阈值或者低于第四阈值时,通过远程通讯方式主动上报当前集群的计算资源利用率以及集群的存储资源利用率。

作为示例,本实施例可以从集群的主节点处获取集群中的所有计算任务所占用的计算资源以及集群中的所有从节点已存储的数据所占用的存储空间,并对获取到的占用的计算资源、占用的存储空间以及本地维护的集群中的所有从节点所能够提供的总计算资源和集群中的所有从节点所能够提供的总存储资源进行计算,从而获得集群的计算资源利用率以及集群的存储资源利用率;

一个具体的例子,本实施例通过与集群的主节点进行远程通讯向主节点发送请求,并接收主节点根据该请求而传输来的当前集群中的所有计算任务所占用的计算资源以及当前集群中的所有从节点已存储的数据所占用的存储空间,然后,计算接收到的当前集群中的所有计算任务所占用的计算资源与当前维护的计算资源组和存储资源组中的所有从节点提供的总计算资源的比值,从而获得当前集群的计算资源利用率,同样的,本实施例还需要计算接收到的当前集群中的所有从节点已存储的数据所占用的存储空间与当前维护的存储资源组中的所有从节点提供的总存储空间的比值,从而获得当前集群的存储资源利用率;

另一个具体的例子,主节点通过远程通讯方式主动定时上报当前集群中的所有计算任务所占用的计算资源以及当前集群中的所有从节点已存储的数据所占用的存储空间,然后,计算上报的当前集群中的所有计算任务所占用的计算资源与当前维护的计算资源组和存储资源组中的所有从节点提供的总计算资源的比值,从而获得当前集群的计算资源利用率,同样的,本实施例还需要计算上报的当前集群中的所有从节点已存储的数据所占用的存储空间与当前维护的存储资源组中的所有从节点提供的总存储空间的比值,从而获得当前集群的存储资源利用率;

再一个具体的例子,主节点在监测到当前集群中的所有计算任务所占用的计算资源达到预设处理阈值或者当前集群中的所有从节点已存储的数据所占用的存储空间达到预设存储阈值时,上报当前集群中的所有计算任务所占用的计算资源以及当前集群中的所有从节点已存储的数据所占用的存储空间,然后,计算上报的当前集群中的所有计算任务所占用的计算资源与当前维护的计算资源组和存储资源组中的所有从节点提供的总计算资源的比值,从而获得当前集群的计算资源利用率,同样的,本实施例还需要计算上报的当前集群中的所有从节点已存储的数据所占用的存储空间与当前维护的存储资源组中的所有从节点提供的总存储空间的比值,从而获得当前集群的存储资源利用率。

作为示例,本实施例利用集群的计算资源利用率可以确定出集群是否存在扩充计算资源组中的从节点需求或者缩减计算资源组中的从节点需求;而利用集群的存储资源利用率可以确定出集群是否存在扩充存储资源组中的从节点需求或者缩减存储资源组中的从节点需求。

作为示例,本实施例利用集群的计算资源利用率确定出集群是否存在扩充计算资源组中的从节点需求或者缩减计算资源组中的从节点需求的一个具体的例子为,在判断出集群的计算资源利用率超过第一阈值的情况下,确定出存在扩充计算资源组中的从节点需求;而在判断出集群的计算资源利用率低于第二阈值的情况下,确定出存在缩减计算资源组中的从节点需求;且上述第一阈值通常远大于第二阈值。

作为示例,本实施例利用集群的存储资源利用率可以确定出集群是否存在扩充存储资源组中的从节点需求或者缩减存储资源组中的从节点需求的一个具体的例子为,在判断出存储资源组的存储资源利用率超过第三阈值的情况下,确定出存在扩充存储资源组中的从节点需求;而在判断出计算资源组的存储资源利用率低于第四阈值的情况下,确定出存在缩减存储资源组中的从节点需求;且上述第三阈值通常远大于第四阈值。

作为示例,本实施例可以根据接收到的资源调整控制信息确定出存在集群动态伸缩需求;如在接收到主节点传输来的资源调整控制信息时确定出存在集群动态伸缩需求;再如在接收到用户输入的资源调整控制信息时确定出存在集群动态伸缩需求。

作为示例,本实施例中的资源调整控制信息可以为:扩充计算资源组中的从节点的控制信息、缩减计算资源组中的从节点的控制信息、扩充存储资源组中的从节点的控制信息以及缩减存储资源组中的从节点的控制信息中的任意一个;也可以为扩充计算资源组中的从节点的控制信息和缩减计算资源组中的从节点的控制信息中的任意一个以及扩充存储资源组中的从节点的控制信息以及缩减存储资源组中的从节点的控制信息中的任意一个。

S110、根据集群动态伸缩需求调整计算资源组和/或存储资源组中的从节点数量。

作为示例,本实施例可以先确定出计算资源组和/或存储资源组中需要调整的从节点的数量,然后,再根据确定出的数量在计算资源组和/或存储资源组中增加或者减少相应数量的从节点。

作为示例,本实施例确定出计算资源组中需要调整的从节点的数量的一个具体的例子为:预先设置有较佳的集群的计算资源利用率(即理想的集群的计算资源利用率),在需要在计算资源组中添加新的从节点的情况下,可以根据当前集群中的所有计算任务所占用的计算资源确定出达到上述较佳的集群的计算资源利用率所需的总计算资源,计算所需的总计算资源与当前集群所提供的总计算资源的差值,然后,根据该差值以及一个新增加的从节点所能够提供的计算资源确定计算资源组中需要扩充的从节点数量。另一个具体的例子,在需要缩减计算资源组中的从节点的情况下,可以根据当前集群中的所有计算任务所占用的计算资源确定出达到上述较佳的集群的计算资源利用率所需的总计算资源,计算所需的总计算资源与当前集群所提供的总计算资源的差值,然后,根据该差值以及计算资源组中一个从节点所能够提供的计算资源确定计算资源组中需要缩减的从节点数量。

作为示例,本实施例确定出存储资源组中需要调整的从节点的数量的一个具体的例子为:预先设置有较佳的集群的存储资源利用率(即理想的集群的存储资源利用率),在需要在存储资源组中添加新的从节点的情况下,可以根据当前集群中的已存储数据所占用的存储资源确定出达到上述较佳的集群的存储资源利用率所需的总存储资源,计算所需的总存储资源与当前集群所提供的总存储资源的差值,并根据该差值以及一个新增加的从节点所能够提供的存储资源确定存储资源组中需要扩充的从节点数量。另一个具体的例子,在需要缩减存储资源组中的从节点的情况下,可以根据当前集群中的所有已存储数据所占用的存储资源确定出达到上述较佳的集群的存储资源利用率所需的总存储资源,计算所需的总存储资源与当前集群所提供的总存储资源的差值,然后,根据该差值以及存储资源组中一个从节点所能够提供的存储资源确定存储资源组中需要缩减的从节点数量。

需要特别说明的是,在需要针对计算资源组和存储资源组中的从节点数量分别进行调整,且存储资源组中的从节点能够提供存储资源以及计算资源的情况下,本实施例通常应先确定出存储资源组中需要调整的从节点的数量,然后,再确定计算资源组中需要调整的从节点的数量,且在确定计算资源组中需要调整的从节点的数量的过程中,通常应考虑存储资源组中需要扩充/缩减的从节点所提供的计算资源对集群的总计算资源的影响。

作为示例,在计算资源组中的从节点由虚拟机来实现的情况下,本实施例根据集群动态伸缩需求扩充计算资源组中的从节点的一个具体实现过程为:首先,确定出计算资源组中需要扩充的从节点数量,然后,根据该数量创建同等数量的虚拟机,并将新创建的各虚拟机分别注册在集群中(如将包括新创建的虚拟机的主机名在内的注册信息分别添加在集群中的主节点以及各从节点中的集群配置文件中),并启动成功注册的各虚拟机的分布式计算服务,之后,将各虚拟机划分在计算资源组中,如将新增加的各虚拟机的相关信息(如新增加的虚拟机的计算资源信息等配置信息)维护在计算资源组信息中。

需要特别说明的是,上述确定需要扩充的从节点数量的操作、创建新的虚拟机的操作、新的虚拟机在集群中的注册操作、启动成功注册的新的虚拟机中的分布式计算服务的操作以及将成功启动服务后的虚拟机划分在计算资源组中的操作均不会对当前集群中的各节点所执行的任务产生影响,且本实施例在成功启动了虚拟机中的分布式计算服务后,该虚拟机即被正式投入使用成为计算资源组中的从节点,集群中的主节点可以根据其当前的计算任务分配策略为该虚拟机分配相应的计算任务,从而本实施例可以在计算资源组中平滑无断点的增加新的从节点。由此可知,本实施例可以不中断集群的各节点中的服务的情况下,在计算资源组中增加新的从节点,从而避免了在集群伸过程中的服务中断所带来的集群伸实现成本较高的问题;另外,本实施例通过使用虚拟机来实现计算资源组中的从节点,可以以远程控制方式方便的对计算资源组中的从节点进行增删,从而提高了实现集群伸的智能化程度。另外,本实施例创建的不同虚拟机所提供的计算资源可能相同,也可能存在差异。

作为示例,在存储资源组中的从节点由虚拟机来实现的情况下,本实施例根据集群动态伸缩需求扩充存储资源组中的从节点数量的一个具体实现过程为:首先,确定出存储资源组中需要扩充的从节点数量,然后,根据该数量创建同等数量的虚拟机,然后,将新创建的各虚拟机分别注册在集群中(如将包括新创建的虚拟机的主机名在内的注册信息分别添加在集群中的主节点以及各从节点中的集群配置信息中),并启动成功注册的各虚拟机的分布式计算服务和分布式存储服务,之后,将各虚拟机划分在存储资源组中,如将新增加的各虚拟机的相关信息(如新增加的虚拟机的计算资源信息以及存储资源信息等配置信息)维护在存储资源组信息中。

需要特别说明的是,上述确定需要扩充的从节点数量的操作、创建新的虚拟机的操作、新的虚拟机在集群中的注册操作、启动成功注册的新的虚拟机中的分布式存储服务和分布式计算服务的操作以及将成功启动服务后的虚拟机划分在存储资源组中的操作均不会对当前集群中的各节点所执行的任务产生影响,且本实施例在成功启动了虚拟机中的分布式存储服务和分布式计算服务后,该虚拟机即被正式投入使用成为存储资源组中的从节点,集群中的主节点可以根据其当前的存储任务分配策略以及计算任务分配测量为该从节点分配相应的存储任务和计算任务,从而本实施例可以在存储资源组中平滑无断点的增加新的从节点。由此可知,本实施例可以不中断集群的各节点中的服务的情况下,在存储资源组中增加新的从节点,从而避免了在集群伸过程中的服务中断所带来的集群伸实现成本较高的问题;另外,本实施例通过使用虚拟机来实现存储资源组中的从节点,可以以远程控制方式方便的对存储资源组中的从节点进行增删,从而提高了实现集群伸的智能化程度。另外,本实施例创建的不同虚拟机所提供的计算资源可能相同,也可能存在差异。

作为示例,本实施例将虚拟机注册在集群中的一个具体的例子为:通过远程登录方式不断的尝试登录新创建的虚拟机,在成功远程登录该新创建的虚拟机后,可以在该虚拟机中,为本次远程登录的远程登录方设置免密码登陆权限,以便于在后续的删除从节点的过程中可以方便的对该从节点进行远程操作;然后,将该虚拟机的主机名等注册信息配置在集群的主节点和各从节点中,使集群中的主节点和各从节点均获知其所在的集群中添加了该从节点。

作为示例,在计算资源组中的从节点由虚拟机来实现的情况下,本实施例根据集群动态伸缩需求缩减计算资源组中的从节点的一个具体实现过程为:首先,确定出计算资源组中需要缩减的从节点数量,然后,根据该数量从计算资源组中选取相应的从节点,针对选取出的各从节点,通知集群中的主节点以及各从节点将选取出的各从节点从集群中删除(如分别控制集群中的主节点以及各从节点在其各自执行两个任务之间的空隙将选取出的各从节点的注册信息分别从集群配置文件中删除),在所有的主节点以及从节点均删除了被选取出的从节点的注册信息后,删除实现被选取出的从节点的虚拟机,并将被删除的虚拟机的相关信息(如被删除的虚拟机的配置信息等)从计算资源组信息中删除。

需要特别说明的是,由于本实施例可以在节点执行两个任务的间隙对节点中的注册信息进行删除处理,因此,在缩减计算资源组中的从节点的过程中,通常不会对当前集群中的其他各节点所执行的任务产生影响,且本实施例在将从节点从集群中删除后,已经分配给该从节点且该从节点未成功执行的计算任务通常可以通过集群自身的容灾机制避免该任务最终执行失败,从而本实施例可以平衡无断点的删除计算资源组中的从节点。由此可知,本实施例可以在不中断集群的各节点中的服务的情况下,减少计算资源组中的从节点。另外,由于计算资源组中的不同从节点所能提供的计算资源可能相同,也有可能存在差异,因此,在计算资源组中的不同从节点所能提供的计算资源存在差异的情况下,在确定需要缩减的从节点的数量以及选取被缩减的从节点的过程中,应考虑计算资源组中各从节点所能提供的计算资源。

作为示例,在存储资源组中的从节点由虚拟机来实现的情况下,本实施例根据集群动态伸缩需求缩减存储资源组中的从节点数量的一个具体实现过程为:首先,确定出存储资源组中需要缩减的从节点数量,然后,根据该数量从存储资源组中选取相应的从节点,针对选取出的各从节点,通知集群中的主节点以及各从节点将选取出的各从节点从集群中删除(如分别控制集群中的主节点以及各从节点在其各自执行两个任务之间的空隙将选取出的各从节点的注册信息分别从集群配置文件中删除),在所有的主节点以及从节点均删除了被选取出的从节点的注册信息后,删除实现被选取出的从节点的虚拟机,并将被删除的虚拟机的相关信息(如被删除的虚拟机的配置信息等)从存储资源组信息中删除。

需要特别说明的是,由于本实施例可以在节点执行两个任务的间隙对节点中的注册信息进行删除处理,因此,在缩减存储资源组中的从节点的过程中,通常不会对当前集群中的其他各节点所执行的任务产生影响,且本实施例在将从节点从集群中删除后,已经分配给该从节点且该从节点未成功执行的计算任务通常可以通过集群自身的容灾机制而避免该计算任务最终执行失败,且由于删除该从节点而导致的该从节点中存储的数据丢失现象通常可以通过集群的数据副本之间的同步过程而恢复;从而本实施例可以平衡无断点的删除计算资源组中的从节点。由此可知,本实施例可以在不中断集群的各节点中的服务的情况下,通过远程控制缩减存储资源组中的从节点。另外,由于存储资源组中的不同从节点所能提供的存储资源可能相同,也由可能存在差异,因此,在存储资源组中的不同从节点所能提供的存储资源存在差异的情况下,在确定需要缩减的从节点的数量以及选取被缩减的从节点的过程中,应考虑存储资源组中各从节点所能提供的存储资源。还有,在缩减存储资源组中的从节点的过程中,应考虑对集群的计算资源的影响。

作为示例,在针对存储资源组进行缩减的过程中,在通常情况下,本实施例所选取出的被缩减的从节点数量应小于存储资源组中的所有从节点与集群数据副本数量之差;如在集群中的数据副本数量为3的情况下,在对存储资源组中的从节点进行了缩减之后,存储资源组中的从节点数量应不小于3,以尽可能的减小集群中的数据丢失风险。

作为示例,在针对计算资源组进行缩减的过程中,在通常情况下,本实施例所选取出的被缩减的从节点所能够提供的总计算资源与集群中的所有从节点所提供的总计算资源的比值不超过预定比值(如5%),以尽可能的减少重计算而导致的计算延时。

实施例二、在Hadoop集群中用于实现集群动态伸缩的方法。

本实施例中的Hadoop集群是通过虚拟机搭建的。通过远程控制方式利用虚拟机搭建Hadoop集群的一个具体过程如图2所示,且图2所示的方法包括下述步骤:

S200、基于预设定的Hadoop集群所包含的从节点的数量创建相应数量的虚拟机,在创建各虚拟机的过程中,为虚拟机分配的基本信息通常包括:局域网IP地址(如192.168.0.62)、虚拟机的登录账号(如root)以及虚拟机的登录密码;

S210、在成功创建各虚拟机之后,通过远程登录方式不断的尝试登录各虚拟机,以确认各虚拟机的网络均连通可用;且在远程成功登录各虚拟机之后,在各虚拟机中分别针对该远程登录方设置免密码登录权限,以方便后续对Hadoop集群动态伸缩控制;

S220、为每一个虚拟机分配一个Hos tname(主机名),并将各虚拟机的Hos tname分别设置于其他所有虚拟机的相应配置文件中(如/etc/hos ts文件中);

S230、除了Hadoop集群中的主节点之外,对所有的虚拟机进行存储资源组和计算资源组的划分,并根据各虚拟机的硬件配置设置各虚拟机的yarn服务中的nodemanager的Cpu信息(即计算资源信息)以及hdfs服务中存储空间大小(即存储资源信息),使远程登录方可以方便的调整存储资源组和计算资源组中的从节点的数量;另外,主节点也应获知各虚拟机的yarn服务中的nodemanager的Cpu信息以及hdfs服务中存储空间大小,以便于主节点可以进行计算任务和存储任务的分配;

S240、通过远程控制方式管理各虚拟机中的组件安装以及运行,这里的组件包括hdfs服务以及yarn服务;具体的,本实施例可以通过远程登录方式启动各虚拟机中的Ambari服务,并利用Restful Api安装并启动各虚拟机中的基于Hadoop的各组件,如启动存储资源组中的各虚拟机中的hdfs服务和yarn服务,启动计算资源组中的各虚拟机中的yarn服务等,从而使虚拟机成为Hadoop集群中的从节点。

在利用虚拟机成功搭建Hadoop集群之后,如果出现Hadoop集群的扩容需求,所执行的操作的一个具体例子如图3所示,图3中的方法包括下述步骤:

S300、确定是计算资源组需要增加新的从节点,还是存储资源组需要增加新的从节点,如在Hadoop集群的存储空间不足的情况下,可以确定出仅存储资源组需要增加新的从节点,再如在Hadoop集群的计算任务过多而形成堆积或者恶性竞争时,可以确定出仅计算资源组需要增加新的从节点,如果上述两种情况同时发生,则可以确定出存储资源组和计算资源组均需要增加新的从节点。

S310、确定计算资源组和存储资源组所需增加的新的从节点数量,并根据该数量创建相应数量的新的虚拟机,为各新的虚拟机分配Hostname,并在各新的虚拟机中分别为远程控制节点(即上述远程登录方)设置免密码登录权限。由于此时的虚拟机还未加入Hadoop集群,因此,本步骤不会对集群中各从节点执行的任务产生任何影响。

S320、将各新的虚拟机注册到Hadoop集群的所有节点中的Ambari服务中(如将包括各新的虚拟机的Hos tname在内的注册信息设置在Ambari服务的配置文件中),并启动各新的虚拟机上的相应组件(如启动虚拟机中的hdfs服务和/或yarn服务等),从而使新的虚拟机加入到Hadoop集群的计算资源组或者存储资源组中,进而提高Hadoop集群的规模和处理能力。

在利用虚拟机成功搭建Hadoop集群之后,如果出现Hadoop集群的缩容需求,所执行的操作的一个具体例子如图4所示,图4中的方法包括下述步骤:

S400、确定是计算资源组需要缩减从节点,还是存储资源组需要缩减从节点,如在Hadoop集群的闲置存储空间过高的情况下,可以确定出仅存储资源组需要缩减从节点,再如在Hadoop集群的计算任务过少而形成闲置计算资源过高时,可以确定出仅计算资源组需要缩减从节点,如果上述两种情况同时发生,则可以确定出存储资源组和计算资源组均需要缩减从节点。

S410、确定计算资源组和存储资源组所需缩减的从节点数量,并根据该数量从计算资源组和存储资源组选取被缩减的从节点,如可以将存储数据量最少的从节点作为被缩减的从节点,再如可以将所承担的计算任务最少的从节点作为被缩减的从节点。

S420、在不中断Hadoop集群中的所有服务的情况下,在Hadoop集群中的除了被缩减的从节点之外的其他所有节点在执行先后两个任务的间隙,分别将被缩减的从节点的注册信息从Ambari服务中的配置文件中删除,(如将Ambari服务的配置文件中的被缩减的从节点的Hos tname删除)。在各节点均执行了信息删除操作之后,到S430。

S430、删除实现被缩减的从节点的虚拟机。

实施例三、分布式框架中用于实现集群动态伸缩的方法。

本实施例的分布式框架中用于实现集群动态伸缩的方法由与集群远程通讯的远程控制节点执行,且该实施例的方法的流程如图5所示。

图5中,S500、远程控制节点接收集群的主节点上报的当前集群中的所有计算任务所占用的计算资源A1以及当前集群中的所有从节点已存储的数据所占用的存储空间A2。

S510、远程控制节点从本地维护的计算资源组信息和存储资源组信息中获取当前集群中的所有从节点所能够提供的总计算资源Z1以及当前集群中的所有从节点所能够提供的总存储资源Z2,并计算A1与Z1的比值X1以及A2与Z2的比值X2。

S520、远程控制节点判断X1是否超过第一阈值Y1、X1是否低于第二阈值Y2、X2是否超过第三阈值Y3以及X2是否低于第四阈值Y4;

如果判断出X1超过第一阈值Y1(如0.9),则确定出计算资源组需要添加新的从节点,到步骤S531;

如果判断出X1低于第二阈值Y2(如0.4),则确定出计算资源组需要缩减已有的从节点,到步骤S532;

如果判断出X2超过第三阈值Y3(如0.8),则确定出存储资源组需要添加新的从节点,到步骤S533;

如果判断出X2低于第四阈值Y4(如0.5),则确定出存储资源组需要缩减已有的从节点,到步骤S534。

S531,远程控制节点确定需要添加新的从节点的数量,并创建相应数量的虚拟机,为各虚拟机分别分配基本信息(如IP地址以及主机名等),并将各虚拟机注册在集群中,如将各虚拟机的注册信息设置于集群的所有节点的配置文件中。

S541、远程控制节点控制各虚拟机启动其分布式计算服务,使虚拟机作为集群中的计算从节点而投入使用,远程控制节点将由虚拟机实现的从节点划分在计算资源组中,如将新扩充的各从节点的计算资源信息等配置信息维护在本地的计算资源组信息中。

S532,远程控制节点确定需要缩减的从节点的数量,并从计算资源组中选择计算任务最轻的相应数量的从节点;从集群的各节点中删除需要缩减的从节点的注册信息。

S542、远程控制节点删除实现需要缩减的从节点的各虚拟机,并从计算资源组中删除需要缩减的从节点,如将需要缩减的各从节点的计算资源信息等配置信息从在本地的计算资源组信息中删除。

S533,远程控制节点确定需要添加新的从节点的数量,并创建相应数量的虚拟机,为各虚拟机分别分配基本信息(如IP地址以及主机名等),并将各虚拟机注册在集群中,如将各虚拟机的注册信息设置于集群的所有节点的配置文件中。

S543、远程控制节点控制各虚拟机启动其分布式计算服务和分布式存储服务,使虚拟机作为集群中的存储从节点而投入使用,远程控制节点将由虚拟机实现的从节点划分在存储资源组中,如将新扩充的各从节点的计算资源信息以及存储资源信息等配置信息维护在本地的存储资源组信息中。

S534,远程控制节点确定需要缩减的从节点的数量,并从存储资源组中选择存储任务最轻的相应数量的从节点;从集群的各节点中删除需要缩减的从节点的注册信息。

S544、远程控制节点删除实现需要缩减的从节点的各虚拟机,并从存储资源组中删除需要缩减的从节点,如将需要缩减的各从节点的计算资源信息以及存储资源信息等配置信息从在本地的存储资源组信息中删除。

实施例四、分布式框架中用于实现集群动态伸缩的装置。

本实施例的分布式框架中用于实现集群动态伸缩的装置通常会被设置于计算机设备中,优选的,本实施例所记载的分布式框架中用于实现集群动态伸缩的装置可以设置于服务器、台式计算机以及其他网络设备中。另外,本实施例的本实施例的分布式框架中用于实现集群动态伸缩的装置所在的计算机设备可以与集群远程通讯。本实施例中的集群可以为Hadoop集群,也可以为基于其他分布式框架的集群。本实施例中的集群所包含的从节点被划分为计算资源组和存储资源组,划分的依据等如上述实施例一中的描述,在此不再重复说明。

本实施例的分布式框架中用于实现集群动态伸缩的装置的主要结构如图6所示。下面参照具体实施例对分布式框架中用于实现集群动态伸缩的装置进行说明。

在图6中,本实施例的分布式框架中用于实现集群动态伸缩的装置主要包括:用于确定出存在集群动态伸缩需求的装置(下述简称为“确定需求装置600”)以及用于根据集群动态伸缩需求调整计算资源组和/或存储资源组中的从节点数量的装置(下述简称为“调整资源组装置610”)。

确定需求装置600主要用于确定出存在集群动态伸缩需求,且确定出的需求可以包括扩充计算资源组中的从节点需求、缩减计算资源组中的从节点需求、扩充存储资源组中的从节点需求以及缩减存储资源组中的从节点需求中的一个或者多个。

作为示例,确定需求装置600可以在集群的计算任务过多形成堆积或恶性竞争等的情况下,确定出存在集群动态伸缩需求,且确定需求装置600可以在集群的存储空间不足或者存储空间存在危机的情况下,确定出存在集群动态伸缩需求。

作为示例,上述确定需求装置600可以包括:用于根据获取到的集群性能信息确定出存在集群动态伸缩需求的装置(下述简称为“第一确定需求装置601”)以及用于根据接收到的资源调整控制信息确定出存在集群动态伸缩需求的装置(下述简称为“第二确定需求装置602”)(如图7所示)。

第一确定需求装置601所获取到的集群性能信息可以包括:集群的计算资源利用率和集群的存储资源利用率中的至少一个;且在通常情况下,第一确定需求装置601获取到的集群性能信息同时包括:集群的计算资源利用率和集群的存储资源利用率。第一确定需求装置601可以从集群的主节点处获取集群的计算资源利用率以及集群的存储资源利用率,具体过程如上述实施例一中的描述,在此不再重复说明。

作为示例,第一确定需求装置601利用集群的计算资源利用率可以确定出集群是否存在扩充计算资源组中的从节点需求或者缩减计算资源组中的从节点需求;而第一确定需求装置601利用集群的存储资源利用率可以确定出集群是否存在扩充存储资源组中的从节点需求或者缩减存储资源组中的从节点需求。

作为示例,第一确定需求装置601利用集群的计算资源利用率确定出集群是否存在扩充计算资源组中的从节点需求或者缩减计算资源组中的从节点需求的一个具体的例子为,第一确定需求装置601在判断出集群的计算资源利用率超过第一阈值的情况下,确定出存在扩充计算资源组中的从节点需求;而第一确定需求装置601在判断出集群的计算资源利用率低于第二阈值的情况下,确定出存在缩减计算资源组中的从节点需求;且上述第一阈值通常远大于第二阈值。

作为示例,第一确定需求装置601利用集群的存储资源利用率可以确定出集群是否存在扩充存储资源组中的从节点需求或者缩减存储资源组中的从节点需求的一个具体的例子为,第一确定需求装置601在判断出存储资源组的存储资源利用率超过第三阈值的情况下,确定出存在扩充存储资源组中的从节点需求;而第一确定需求装置601在判断出计算资源组的存储资源利用率低于第四阈值的情况下,确定出存在缩减存储资源组中的从节点需求;且上述第三阈值通常远大于第四阈值。

作为示例,第二确定需求装置602可以根据接收到的资源调整控制信息确定出存在集群动态伸缩需求;如第二确定需求装置602在接收到主节点传输来的资源调整控制信息时,确定出存在集群动态伸缩需求;再如第二确定需求装置602在接收到用户输入的资源调整控制信息时,确定出存在集群动态伸缩需求。

作为示例,第二确定需求装置602接收的资源调整控制信息可以为:扩充计算资源组中的从节点的控制信息、缩减计算资源组中的从节点的控制信息、扩充存储资源组中的从节点的控制信息以及缩减存储资源组中的从节点的控制信息中的任意一个;也可以为扩充计算资源组中的从节点的控制信息和缩减计算资源组中的从节点的控制信息中的任意一个以及扩充存储资源组中的从节点的控制信息以及缩减存储资源组中的从节点的控制信息中的任意一个。

调整资源组装置610主要用于根据集群动态伸缩需求调整计算资源组和/或存储资源组中的从节点数量。

作为示例,调整资源组装置610可以先确定出计算资源组和/或存储资源组中需要调整的从节点的数量,然后,调整资源组装置610再根据确定出的数量在计算资源组和/或存储资源组中增加或者减少相应数量的从节点。

作为一个示例,本实施例的调整资源组装置610可以可选的包括:用于确定计算资源组需要扩充的从节点数量的装置(下述简称为“第一确定数量装置611”)、用于创建上述数量的虚拟机的装置(下述简称为“创建虚拟机装置612”)、用于将虚拟机的注册信息配置在集群中的装置(下述简称为“注册装置613”)、用于启动虚拟机的分布式计算服务的装置(下述简称为“第一启动服务装置614”)以及用于将虚拟机作为计算资源组中的从节点的装置(下述简称为“第一维护装置615”)(如图8所示)。也就是说,在计算资源组中的从节点由虚拟机来实现的情况下,调整资源组装置610扩充计算资源组中的从节点的一个具体例子为:首先,第一确定数量装置611确定出计算资源组中需要扩充的从节点数量,然后,创建虚拟机装置612根据该数量创建同等数量的虚拟机,注册装置613将新创建的各虚拟机分别注册在集群中(如注册装置613将包括新创建的虚拟机的主机名在内的注册信息分别添加在集群中的主节点以及各从节点中的集群配置文件中),第一启动服务装置614启动成功注册的各虚拟机的分布式计算服务,之后,第一维护装置615将各虚拟机划分在计算资源组中,如第一维护装置615将新增加的各虚拟机的相关信息(如新增加的虚拟机的计算资源信息等配置信息)维护在计算资源组信息中。

第一确定数量装置611中预先设置有较佳的集群的计算资源利用率,在需要在计算资源组中添加新的从节点的情况下,第一确定数量装置611可以根据当前集群中的所有计算任务所占用的计算资源确定出达到上述较佳的集群的计算资源利用率所需的总计算资源,计算所需的总计算资源与当前集群所提供的总计算资源的差值,然后,第一确定数量装置611根据该差值以及一个新增加的从节点所能够提供的计算资源确定计算资源组中需要扩充的从节点数量。另一个具体的例子,在需要缩减计算资源组中的从节点的情况下,第一确定数量装置611可以根据当前集群中的所有计算任务所占用的计算资源确定出达到上述较佳的集群的计算资源利用率所需的总计算资源,第一确定数量装置611计算所需的总计算资源与当前集群所提供的总计算资源的差值,然后,第一确定数量装置611根据该差值以及计算资源组中一个从节点所能够提供的计算资源确定计算资源组中需要缩减的从节点数量。

作为另一个示例,本实施例的调整资源组装置610可以可选的包括:用于确定存储资源组需要扩充的从节点数量的装置(下述简称为“第二确定数量装置616”)、用于创建上述数量的虚拟机的装置(下述简称为“创建虚拟机装置612”)、用于将虚拟机的注册信息配置在集群中的装置(下述简称为“注册装置613”)、用于启动虚拟机的分布式计算服务和分布式存储服务的装置(下述简称为“第二启动服务装置617”)以及用于将虚拟机作为存储资源组中的从节点的装置(下述简称为“第二维护装置618”)(如图9所示)。也就是说,在存储资源组中的从节点由虚拟机来实现的情况下,调整资源组装置610扩充存储资源组中的从节点数量的一个具体例子为:首先,第二确定数量装置616确定出存储资源组中需要扩充的从节点数量,然后,创建虚拟机装置612根据该数量创建同等数量的虚拟机,然后,注册装置613将新创建的各虚拟机分别注册在集群中(如注册装置613将包括新创建的虚拟机的主机名在内的注册信息分别添加在集群中的主节点以及各从节点中的集群配置信息中),第二启动服务装置617启动成功注册的各虚拟机的分布式计算服务和分布式存储服务,之后,第二维护装置618将各虚拟机划分在存储资源组中,如第二维护装置618将新增加的各虚拟机的相关信息(如新增加的虚拟机的计算资源信息以及存储资源信息等配置信息)维护在存储资源组信息中。

作为示例,第二确定数量装置616中预先设置有较佳的集群的存储资源利用率,在需要在存储资源组中添加新的从节点的情况下,第二确定数量装置616可以根据当前集群中的已存储数据所占用的存储资源确定出达到上述较佳的集群的存储资源利用率所需的总存储资源,第二确定数量装置616计算所需的总存储资源与当前集群所提供的总存储资源的差值,并根据该差值以及一个新增加的从节点所能够提供的存储资源确定存储资源组中需要扩充的从节点数量。另一个具体的例子,在需要缩减存储资源组中的从节点的情况下,第二确定数量装置616可以根据当前集群中的所有已存储数据所占用的存储资源确定出达到上述较佳的集群的存储资源利用率所需的总存储资源,第二确定数量装置616计算所需的总存储资源与当前集群所提供的总存储资源的差值,然后,第二确定数量装置616根据该差值以及存储资源组中一个从节点所能够提供的存储资源确定存储资源组中需要缩减的从节点数量。

作为示例,上述注册装置613可以可选的包括:用于远程登录虚拟机的装置(下述简称为“远程登录装置6131”)、用于在虚拟机中针对远程登录方设置免密码登陆权限的装置(下述简称为“设置权限装置6132”)以及用于将虚拟机的包括主机名在内的注册信息配置在集群的主节点以及各从节点中的装置(下述简称为“配置信息装置6133”)(如图10所示)。也就是说,注册装置613将虚拟机注册在集群中的一个具体的例子为:远程登录装置6131通过远程登录方式不断的尝试登录新创建的虚拟机,在远程登录装置6131成功远程登录该新创建的虚拟机后,设置权限装置6132可以在该虚拟机中,为本次远程登录的远程登录方设置免密码登陆权限,以便于在后续的删除从节点的过程中可以方便的对该从节点进行远程操作;然后,配置信息装置6133将该虚拟机的主机名等注册信息配置在集群的主节点和各从节点中,使集群中的主节点和各从节点均获知其所在的集群中添加了该从节点。

作为再一个示例,本实施例的调整资源组装置610可以可选的包括:用于确定计算资源组和/或存储资源组中需要缩减的从节点数量的装置(下述简称为“第三确定数量装置619”)、用于从相应组中选取相应数量的被缩减从节点的装置(下述简称为“选取节点装置620”)、用于针对集群中任意一个配置有被缩减从节点的注册信息的节点,在节点执行两个任务的间隙,删除节点中的被缩减从节点的注册信息的装置(下述简称为“删除注册信息装置621”)以及用于在集群中的所有节点均删除了被缩减从节点的注册信息的情况下,删除实现被缩减从节点的虚拟机,并将被缩减从节点从计算资源组和/或存储资源组中删除的装置(下述简称为“第三维护装置622”)(如图11所示)。

作为示例,在计算资源组中的从节点由虚拟机来实现的情况下,调整资源组装置610缩减计算资源组中的从节点的一个具体例子为:首先,第三确定数量装置619确定出计算资源组中需要缩减的从节点数量,然后,选取节点装置620根据该数量从计算资源组中选取相应的从节点,针对选取出的各从节点,删除注册信息装置621通知集群中的主节点以及各从节点将选取出的各从节点从集群中删除(如删除注册信息装置621分别控制集群中的主节点以及各从节点在其各自执行两个任务之间的空隙将选取出的各从节点的注册信息分别从集群配置文件中删除),在所有的主节点以及从节点均删除了被选取出的从节点的注册信息后,第三维护装置622删除实现被选取出的从节点的虚拟机,并将被删除的虚拟机的相关信息(如被删除的虚拟机的配置信息等)从计算资源组信息中删除。

作为示例,在存储资源组中的从节点由虚拟机来实现的情况下,调整资源组装置610缩减存储资源组中的从节点数量的一个具体例子为:首先,第三确定数量装置619确定出存储资源组中需要缩减的从节点数量,然后,选取节点装置620根据该数量从存储资源组中选取相应的从节点,针对选取出的各从节点,删除注册信息装置621通知集群中的主节点以及各从节点将选取出的各从节点从集群中删除(如删除注册信息装置621分别控制集群中的主节点以及各从节点在其各自执行两个任务之间的空隙将选取出的各从节点的注册信息分别从集群配置文件中删除),在所有的主节点以及从节点均删除了被选取出的从节点的注册信息后,第三维护装置622删除实现被选取出的从节点的虚拟机,第三维护装置622将被删除的虚拟机的相关信息(如被删除的虚拟机的配置信息等)从存储资源组信息中删除。

作为示例,在调整资源组装置610针对存储资源组进行缩减的过程中,在通常情况下,选取节点装置620所选取出的被缩减的从节点数量应小于存储资源组中的所有从节点与集群数据副本数量之差;如在集群中的数据副本数量为3的情况下,在调整资源组装置610对存储资源组中的从节点进行了缩减之后,存储资源组中的从节点数量应不小于3,以尽可能的减小集群中的数据丢失风险。

作为示例,在调整资源组装置610针对计算资源组进行缩减的过程中,在通常情况下,选取节点装置620所选取出的被缩减的从节点所能够提供的总计算资源与集群中的所有从节点所提供的总计算资源的比值不超过预定比值(如5%),以尽可能的减少重计算而导致的计算延时。

实施例五、分布式框架中用于实现集群动态伸缩的装置的一个具体应用。

首先,远程控制节点中的确定需求装置600接收集群的主节点上报的当前集群中的所有计算任务所占用的计算资源A1以及当前集群中的所有从节点已存储的数据所占用的存储空间A2。

其次,确定需求装置600从远程控制节点本地维护的计算资源组信息和存储资源组信息中获取当前集群中的所有从节点所能够提供的总计算资源Z1以及当前集群中的所有从节点所能够提供的总存储资源Z2,并计算A1与Z1的比值X1以及A2与Z2的比值X2。

确定需求装置600判断X1是否超过第一阈值Y1、X1是否低于第二阈值Y2、X2是否超过第三阈值Y3以及X2是否低于第四阈值Y4;

如果确定需求装置600判断出X1超过第一阈值Y1(如0.9),则确定需求装置600确定出计算资源组需要添加新的从节点;远程控制节点中的调整资源组装置610确定需要添加新的从节点的数量,并创建相应数量的虚拟机,调整资源组装置610为各虚拟机分别分配基本信息(如IP地址以及主机名等),并将各虚拟机注册在集群中,如调整资源组装置610将各虚拟机的注册信息设置于集群的所有节点的配置文件中。调整资源组装置610控制各虚拟机启动其分布式计算服务,使虚拟机作为集群中的计算从节点而投入使用,调整资源组装置610将由虚拟机实现的从节点划分在计算资源组中,如调整资源组装置610将新扩充的各从节点的计算资源信息等配置信息维护在远程控制节点本地的计算资源组信息中。

如果确定需求装置600判断出X1低于第二阈值Y2(如0.4),则确定需求装置600确定出计算资源组需要缩减已有的从节点;调整资源组装置610确定需要缩减的从节点的数量,并从计算资源组中选择计算任务最轻的相应数量的从节点;调整资源组装置610从集群的各节点中删除需要缩减的从节点的注册信息。调整资源组装置610删除实现需要缩减的从节点的各虚拟机,并从计算资源组中删除需要缩减的从节点,如调整资源组装置610将需要缩减的各从节点的计算资源信息等配置信息从在本地的计算资源组信息中删除。

如果确定需求装置600判断出X2超过第三阈值Y3(如0.8),则确定需求装置600确定出存储资源组需要添加新的从节点;调整资源组装置610确定需要添加新的从节点的数量,并创建相应数量的虚拟机,调整资源组装置610为各虚拟机分别分配基本信息(如IP地址以及主机名等),并将各虚拟机注册在集群中,如调整资源组装置610将各虚拟机的注册信息设置于集群的所有节点的配置文件中。调整资源组装置610控制各虚拟机启动其分布式计算服务和分布式存储服务,使虚拟机作为集群中的存储从节点而投入使用,调整资源组装置610将由虚拟机实现的从节点划分在存储资源组中,如调整资源组装置610将新扩充的各从节点的计算资源信息以及存储资源信息等配置信息维护在本地的存储资源组信息中。

如果确定需求装置600判断出X2低于第四阈值Y4(如0.5),则确定需求装置600确定出存储资源组需要缩减已有的从节点。调整资源组装置610确定需要缩减的从节点的数量,并从存储资源组中选择存储任务最轻的相应数量的从节点;调整资源组装置610从集群的各节点中删除需要缩减的从节点的注册信息。调整资源组装置610删除实现需要缩减的从节点的各虚拟机,并从存储资源组中删除需要缩减的从节点,如调整资源组装置610将需要缩减的各从节点的计算资源信息以及存储资源信息等配置信息从在本地的存储资源组信息中删除。

实施例六、分布式框架中用于实现集群动态伸缩的装置的另一个具体应用。

在本实施例中,集群中的主节点计算当前集群中的所有计算任务所占用的计算资源A1与当前集群中的所有从节点所能够提供的总计算资源Z1的比值X1,并计算当前集群中的所有从节点已存储的数据所占用的存储空间A2与当前集群中的所有从节点所能够提供的总存储资源Z2的比值X2,并将计算出的比值X1和X2上报给确定需求装置600,确定需求装置600根据接收到的信息判断X1是否超过第一阈值Y1、X1是否低于第二阈值Y2、X2是否超过第三阈值Y3以及X2是否低于第四阈值Y4;后续确定需求装置600以及调整资源组装置610所执行的装置与上述实施例五中的描述相同,在此不再重复说明。

需要注意的是,本发明可以在软件和/或者软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或者任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器、磁或者光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

对于本领域技术人员而言,显然,本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一方面来看,均应该将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明来限定,因此,旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应该将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一以及第二等词语用来表示名称,而并不表示任何特定顺序。

虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。

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