一种控制方法、装置及Hadoop系统的制作方法
【技术领域】
[0001]本申请涉及数据处理技术领域,更具体的说是涉及一种控制方法、装置以及Hadoop 系统。
【背景技术】
[0002]Hadoop系统是一种分布式系统,通常,Hadoop系统中运行计算任务的计算机,称为计算节点;存储数据的计算机,称为存储节点。
[0003]传统方式上,Hadoop系统是直接部署在物理机上,计算节点以及存储节点部署在一台物理机上。Hadoop系统分配计算任务时,优先将计算任务分配到存储该计算任务所需数据的物理机上运行,称之为数据本地性,数据本地性可以节省数据处理时间;而对于不满足数据本地行的计算任务,优先分配到与存储该计算任务所需数据的物理机相同机架的物理机上运行,以在一定程度上保证处理效率。
[0004]而在虚拟化的Hadoop系统中,计算节点以及存储节点部署在同一虚拟机中,Hadoop系统分配计算任务时,优先将计算任务分配到存储该计算任务所需数据的虚拟机上运行,而对于不满足数据本地性的计算任务,优先分配到相同机架的虚拟机上运行,以保证处理效率。
[0005]但是,在虚拟化的Hadoop系统中,是由虚拟机的宿主机运行计算任务,相同机架的虚拟机,其对应的宿主机不一定为相同机架,因此就会影响计算任务的处理效率。
【发明内容】
[0006]有鉴于此,本申请提供一种控制方法、装置以及Hadoop系统,保证了在虚拟化的Hadoop系统中,计算任务的处理效率。
[0007]为实现上述目的,本申请提供如下技术方案:
[0008]一种控制方法,应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述方法包括:
[0009]获取计算任务;
[0010]查找存储所述计算任务所需数据的第一存储节点;
[0011]判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求;
[0012]在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源;
[0013]将所述计算任务分配到资源调整成功的第一计算节点中运行。
[0014]优选地,所述查找存储所述计算任务所需数据的第一存储节点包括:
[0015]查找存储所述计算任务所需数据的多个存储节点;
[0016]从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。
[0017]优选地,在所述第一计算节点资源调整失败时,所述方法还包括:
[0018]返回所述从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前选择的第一计算节点资源调整成功或者已选择的各个第一计算节点资源调整失败。
[0019]优选地,在所述第一计算节点的资源调整失败时,所述方法还包括:
[0020]将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,N为大于等于1的整数,其中,所述N个节点包括计算节点和/或存储节点;
[0021]重新执行调整所述第一计算节点占用所述宿主机的资源,并继续执行后续步骤。
[0022]优选地,在所述第一计算节点的资源调整失败时,或者在所述节点迁移失败时,所述方法还包括:
[0023]将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0024]优选地,所述将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行之后,所述方法还包括:
[0025]监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机;
[0026]在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中运行。
[0027]优选地,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移包括:
[0028]根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点;
[0029]将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。
[0030]—种控制装置,应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述装置包括:
[0031]任务获取模块,用于获取计算任务;
[0032]节点查找模块,用于查找存储所述计算任务所需数据的第一存储节点;
[0033]资源判断模块,用于判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求;
[0034]资源调整模块,用于在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源;
[0035]第一任务分配模块,用于将所述计算任务分配到资源调整成功的第一计算节点中运行。
[0036]优选地,所述节点查找模块包括:
[0037]查找子模块,用于查找存储所述计算任务所需数据的多个存储节点;
[0038]选择模块,用于从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。
[0039]优选地,还包括:
[0040]第一触发模块,用于在所述第一计算节点资源调整失败时,触发所述选择模块继续从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点,直至当前选择的第一计算节点资源调整成功或者已选择的各个第一计算节点均资源调整失败。
[0041]优选地,还包括:
[0042]节点迁移模块,用于在所述第一计算节点的资源调整失败时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并触发所述资源调整模块,N为大于等于1的整数,其中,所述N个节点包括计算节点和/或存储节点。
[0043]优选地,还包括:
[0044]第二任务分配模块,用于在所述第一计算节点的资源调整失败时,或者在所述节点迁移失败时,将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0045]优选地,还包括:
[0046]监测模块,用于监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机;
[0047]任务迁移模块,用于在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中的运行。
[0048]优选地,所述节点迁移模块具体用于:
[0049]根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点;
[0050]将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。
[0051]—种Hadoop系统,所述Hadoop系统包括多个虚拟机以及上述所述的控制装置,每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机;
[0052]所述计算节点以及所述存储节点部署在不同虚拟机中。
[0053]经由上述的技术方案可知,与现有技术相比,本申请提供了一种控制方法和装置,应用于虚拟化的Hadoop系统中,Hadoop系统中的计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,在计算计算任务时,根据获取的计算任务,首先确定存储其运行所需数据的第一存储节点,当第一存储节点对应的第一宿主机中的第一计算节点的资源不能满足所述计算任务的运行要求,可以通过所述第一计算节点占用所述宿主机的资源。使得其能够满足计算任务的运行要求,从而可以将计算任务分配到资源调整成功的第一计算节点中运行。第一计算节点以及第一存储节点对应同一个宿主机,宿主机实际存储计算任务所需数据,并实际运行计算任务,使得运行计算任务能够满足数据本地性,保证了处理效率。
【附图说明】
[0054]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0055]图1为本申请实施例提供的一种控制方法一个实施例的流程图;
[0056]图2为本申请实施例提供的一种控制方法另一个实施例的流程图;
[0057]图3为本申请实施例提供的一种控制方法又一个实施例的流程图;
[0058]图4为本申请实施例提供的一种控制装置一个实施例的结构示意图;
[0059]图5为本申请实施例提供的一种控制装置另一个实施例的结构示意图;
[0060]图6为本申请实施例提供的一种控制装置又一个实施例的结构示意图。
【具体实施方式】
[0061 ] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0062]本申请的技术方案,主要应用于虚拟化的Hadoop系统中,由于Hadoop系统是一种分布式系统,通常采用多台计算机分布式部署方式,部署Hadoop系统的多台计算机,称为Hadoop集群,运行计算任务的计算机,称为计算节点;存储数据的计算机,称为存储节点。虚拟化的Hadoop系统即是指计算节点以及存储节点均部署在虚拟机上。
[0063]虚拟机是对真实计算环境的抽象和模拟,每一虚拟机都有自己单独的虚拟操作系统,但是虚拟操作系统实质还是运行在宿主机的处理器上。宿主机即是指虚拟机对应的物理的计算机,虚拟机安装在物理的计算机上才能运行。
[0064]本申请实施例中,Hadoop系统中的计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,在计算计算任务时,根据获取的计算任务,首先确定存储其运行所需数据的第一存储节点,当第一存储节点对应的第一宿主机中的第一计算节点的资源不能满足所述计算任务的运行要求,可以通过所述第一计算节点占用所述宿主机的资源。使得其能够满足计算任务的运行要求,从而可以将计算任务分配到资源调整成功的第一计算节点中运行。第一计算节点以及第一存储节点对应同一个宿主机,宿主机实际存储计算任务所需数据,并实际运行计算任务,使得运行计算任务能够满足数据本地性,保证了处理效率。
[0065]下面结合附图,对本申请实施方案进行详细描述。
[0066]图1为本申请实施例提供的一种控制方法一个实施例的流程图,本申请实施例提供的技术方案具体应用于虚拟化的Hadoop系统中。
[0067]在所述Hadoop系统中将计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机。
[0068]所述方法可以包括以下几个步骤:
[0069]101:获取计算任务。
[0070]在Hadoop系统中,将处理一大批数据的计算作业(Job)划分为多个计算任务进行。
[0071]获取的计算任务中即是计算作业中一个未处理的计算任务,而对于计算作业的每一个计算任务均按照本申请技术方案执行。
[0072]102:查找存储所述计算任务所需数据的第一存储节点。
[0073]103:判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求。
[0074]第一存储节点对应的第一宿主机即是指部署该第一存储节点的虚拟机的宿主机。
[0075]该第一宿主机中对应有虚拟化出部署计算节点的虚拟机。
[0076]第一计算节点的资源是指部署第一计算节点的虚拟机占用的宿主机的内存以及处理器等资源。
[0077]104:在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述宿主机的资源。
[0078]105:将所述计算任务分配到资源调整成功的第一计算节点中运行。
[0079]运行要求可以表示计算任务运行所需的资源,第一计算节点满足计算任务的运行要求,表明其存在足够的资源可以运行该计算任务,而如果第一计算节点不满足计算任务的运行要求时,表明没有足够的资源的运行该计算任务,可能第一计算节点正在运行其他的任务。
[0080]该运行要求可以包括一个资源阈值,如果第一计算节点的资源大于该资源阈值,则满足计算任务的运行要求,可以将计算任务直接分配给该第一计算节点运行。
[0081]如果第一计算节点的资源小于该资源阈值,则表明不满足计算任务的运行要求。
[0082]在第一计算节点的资源不满足运行要求时,本申请实施例,可以通过调整第一计算节点占用所述宿主机的资源,例如,提高其占用宿主机的资源,以使得第一计算节点的资源能够满足运行要求。
[0083]对第一计算节点占用宿主机资源的调整也即是对虚拟机占用宿主机资源的调整。其中,在虚拟机运行过程中可以采用ballooning技术实现虚拟机计算能力的在线调整。虚拟化管理工具libvirt提供了相应的命令,如:setmaxmem(修改最大内存分配量)、setmem(修改内存分配量)和setvcpus (修改虚拟CPU数量)等
[0084]如果第一计算节点通过资源调整,使得其资源能够满足运行要求,则表明第一计算节点资源调整成功,再将计算任务分配到该第一计算节点的运行。即可以使得计算任务能够正常运行,又满足了数据本地性要求,保证了处理效率。
[0085]由于第一计算节点资源调整可能会失败,例如第一宿主机没有充足的空闲资源可以分配给第一计算节点等。在第一计算节点资源调整失败时,可以将第一宿主机中的其他节点迁移,以使得第一宿主机存在空闲出的资源。
[0086]因此,如图2所示,为本申请实施例提供的一种控制方法一个实施例的流程图,本申请实施例提供的技术方案具体应用于虚拟化的Hadoop系统中。
[0087]在所述Hadoop系统中将计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述方法可以包括以下几个步骤:
[0088]201:获取计算任务。
[0089]202:查找存储所述计算任务所需数据的第一存储节点。
[0090]203:判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求,如果是,执行步骤204,如果否,执行步骤206。
[0091]204:调整所述第一计算节点占用所述宿主机的资源。
[0092]205:判断所述第一计算节点资源调整是否成功,如果是,执行步骤206,如果否,执行步骤207。
[0093]206:将所述计算任务分配到所述第一计算节点中运行。
[0094]207:将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并触发执行步骤204。
[0095]将节点进行迁移,也即是将部署节点的虚拟机进行迁移。
[0096]其中,N个节点可以包括存储节点和/或计算节点,也即可以选择将宿主机对应的存储节点或者计算节点进行迁移,迁移到其他宿主机中。
[0097]本申请实施例中,在第一计算节点不满足计算任务的运行要求,且资源调整失败时,可以将第一宿主机中包括第一计算节点的至少N个节点进行迁移,使得第一宿主机中具有空闲资源,从而继续调整第一计算节点占用宿主机的资源,直接第一计算节点资源调整成功,接口将计算任务分配到资源调整成功的第一计算节点中,进一步保证了数据本地性,保证了处理效率。
[0098]其中,第一计算节点资源调整失败的原因可能有很多,作为一种可能的实现方式,所述将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移可以具体是在第一宿主机资源不足时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移。
[0099]另外,作为
另一种可能的实现方式,所述将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移可以包括:
[0100]根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点;
[0101]将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。
[0102]第一宿主机的资源使用情况包括存在多少空闲资源等,从而根据第一计算节点的资源、以及其可扩展资源阈值,即可以选择出需要迁移的节点数量。
[0103]作为又一个实施例,在第一计算节点资源调整失败时,还可以将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。第二计算节点为第二宿主机虚拟化出的任一个虚拟机中部署的计算节点。
[0104]机架(Rack)是指可供放置多台计算机的架子,这些计算机通过一台交换机连接。机架与机架之间要通过其他交换机或路由器连接。相同机架内的计算机之间通信速度比跨机架的计算机之间通信速度快。相同宿主机内的虚拟机之间通信比跨宿主机的虚拟机之间通信速度快。
[0105]而现有技术中,计算节点以及存储节点均部署在同一虚拟机中,Hadoop系统分而对于不满足数据本地性的计算任务,优先分配到相同机架的虚拟机上运行,以保证处理效率,但是相同机架的虚拟机,其对应的宿主机不一定为相同机架,在实际应用中,“不同宿主机但同机架”和“不同宿主机且不同机架”的任务完成时间分别是“同宿主机”的任务完成时间的3倍和4倍,因此就会影响计算任务的处理效率。
[0106]而本申请实施例中,第一宿主机已经确定,是将计算任务分配到与第一宿主机相同机架的第二宿主机中的一个计算节点中运行,由于第一宿主机和第二宿主机的机架相同,因此可以保证一定的处理效率。
[0107]其中,作为又一个实施例,当节点迁移失败时,也可以将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0108]将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行之后,本申请技术方案,还可以监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机,在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中运行,也即将部署第二计算节点的虚拟机迁移到第三宿主机中,从而可以满足数据本地性,提高在运行过程中的处理效率。
[0109]第二存储节点为满足计算任务所需数据的任一个存储节点,其可能为第一存储节点,此时第三宿主机也即为该第一宿主机,或者其他存储节点。
[0110]下面以当节点迁移失败时,将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行为例,如图3所示,为本申请实施例提供的一种控制方法又一个实施例的流程图,所述方法可以包括:
[0111]301:获取计算任务。
[0112]302:查找存储所述计算任务所需数据的第一存储节点。
[0113]303:判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求,如果是,执行步骤304,如果否,执行步骤306。
[0114]304:调整所述第一计算节点占用所述宿主机的资源。
[0115]305:判断所述第一计算节点资源调整是否成功,如果是,执行步骤306,如果否,执行步骤307。
[0116]306:将所述计算任务分配到所述第一计算节点中运行。
[0117]307:将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移。
[0118]308:判断所述N个节点是否迁移成功,在所述N个节点迁移成功是,再触发执行步骤304,在所述N个节点迁移失败时,执行步骤309。
[0119]309:将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0120]310:监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机;
[0121]311:在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移的第三宿主机中的运行。
[0122]在上述描述的各个实施例中,其中,存储计算任务的数据可能包括多个存储节点,因此,查找存储所述计算任务所需数据的第一存储节点可以具体为:
[0123]查找存储所述计算任务所需数据的多个存储节点;
[0124]从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。
[0125]可以从多个存储节点中选择任意的一个存储节点作为第一存储节点,预设条件可以是指从而不包括已选择作为第一存储节点的存储节点中,选择任一个存储节点作为第一存储节点;
[0126]或者从多个存储节点中选择资源充足的一个存储节点作为第一存储节点,该预设条件可以是指资源最多的存储节点作为第一存储节点等。
[0127]在一种可能的实现方式中,当判断选择的第一存储节点对应的第一宿主机中的第一计算节点的资源不满足运行要求,则可以重新从不包括已选择作为第一存储节点的存储节点中,选择任一个存储节点作为第一存储节点的步骤,直至当前选择的第一存储节点对应的第一计算节点满足运行要求,或者已选择的各个第一存储节点对应的第一计算节点均不满足运行要求。
[0128]若已选择的各个第一存储节点对应的第一计算节点均不满足运行要求则可以选择其中任一个第一存储节点对应的第一计算节点进行资源调整。
[0129]也即优先选择满足数据本地性的计算节点运行计算任务,使得无需重复调整计算节点的资源以及无需进行节点迁移等。
[0130]在另一种可能的实现方式中,可以是在第一计算节点资源调整失败时,返回从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前选择的第一计算节点资源调整成功或者各个第一计算节点均资源调整失败。
[0131]在计算节点资源调整失败时,可以执行将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并重新执行调整所述第一计算节点占用所述宿主机的资源的步骤;
[0132]或者将所述计算任务分配到与所述当前第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0133]在又一种可能的实现方式中,可以是在N个节点迁移失败时,返回从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前第一宿主机中的节点迁移资源调整成功或者各个第一宿主机均迁移失败。
[0134]各个第一宿主机均迁移失败时,可以将计算任务分配到与所述当前第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0135]对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0136]图4为本申请实施例提供的一种控制装置一个实施例的结构示意图。本申请实施例的所述控制装置具体应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机。
[0137]所述控制装置可以作为其中一个虚拟机可以实现的功能,或者可以集成到虚拟机对应的一个宿主机的处理器中,作为处理器能够实现的一个功能。
[0138]当然,所述控制装置可以作为单独的控制元件,设置在虚拟化的Hadoop系统对应的计算机集群中,与计算机连接。
[0139]所述控制装置可以包括:
[0140]任务获取模块401,用于获取计算任务。
[0141]节点查找模块402,用于查找存储所述计算任务所需数据的第一存储节点。
[0142]资源判断模块403,用于判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求。
[0143]资源调整模块404,用于在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源。
[0144]第一任务分配模块40
5,用于将所述计算任务分配到资源调整成功的第一计算节点中运行。
[0145]运行要求可以表示计算任务运行所需的资源,第一计算节点满足计算任务的运行要求,表明其存在足够的资源可以运行该计算任务,而如果第一计算节点不满足计算任务的运行要求时,表明没有足够的资源的运行该计算任务,可能第一计算节点正在运行其他的任务。
[0146]在第一计算节点的资源不满足运行要求时,本申请实施例,可以通过调整第一计算节点占用所述宿主机的资源,例如,提高其占用宿主机的资源,以使得第一计算节点的资源能够满足运行要求。
[0147]如果第一计算节点通过资源调整,使得其资源能够满足运行要求,则表明第一计算节点资源调整成功,再将计算任务分配到该第一计算节点的运行。即可以使得计算任务能够正常运行,又满足数据本地性,保证了处理效率。
[0148]由于第一计算节点资源调整可能会失败,例如第一宿主机没有充足的空闲资源可以分配给第一计算节点等。在第一计算节点资源调整失败时,可以将第一宿主机中的其他节点迁移,以使得第一宿主机存在空闲出的资源,因此,本申请实施例还提供了一种控制装置的另一个实施例。如图5所示,为本申请实施例提供的一种控制装置另一个实施例的结构示意图,该控制装置可以包括任务获取模块401、节点查找模块402、资源判断模块403、资源调整模块404以及第一任务分配模块405,各个模块可以参见图4对应的实施例中所述,与图4对应实施例不同之处在于,本实施例中,所述控制装置还可以包括:
[0149]节点迁移模块501,用于在所述第一计算节点的资源调整失败时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并触发所述资源调整模块,N为大于等于1的整数。
[0150]将节点进行迁移,也即是将部署节点的虚拟机进行迁移。
[0151]其中,N个节点可以包括存储节点和/或计算节点,也即可以选择将宿主机对应的存储节点或者计算节点进行迁移,迁移到其他宿主机中。
[0152]本申请实施例中,在第一计算节点不满足计算任务的运行要求,且资源调整失败时,可以将第一宿主机中包括第一计算节点的至少N个节点进行迁移,使得第一宿主机中具有空闲资源,从而继续调整第一计算节点占用宿主机的资源,直接第一计算节点资源调整成功,接口将计算任务分配到资源调整成功的第一计算节点中,进一步保证了数据本地性,保证了处理效率。
[0153]其中,第一计算节点资源调整失败的原因可能有很多,作为一种可能的实现方式,所述节点迁移模块501将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移可以具体是在第一宿主机资源不足时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移。
[0154]另外,作为另一种可能的实现方式,所述节点迁移模块501可以具体用于:
[0155]根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点;
[0156]将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。
[0157]作为又一个实施例,还可以包括第二任务分配模块,用于在第一计算节点资源调整失败时,或者当节点迁移失败时,将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。第二计算节点为第二宿主机虚拟化出的任一个虚拟机中部署的计算节点。
[0158]由于第一宿主机和第二宿主机的机架相同,因此可以保证一定的处理效率。
[0159]将计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行之后,本申请技术方案,还可以监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机,在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中运行,可以满足数据本地性,提高在运行过程中的处理效率。
[0160]第二存储节点为满足计算任务所需数据的任一个存储节点,其可能为第一存储节点,或者其他存储节点。
[0161]如图6所示,为本申请实施例提供的一种控制装置另一个实施例的结构示意图,该控制装置可以包括任务获取模块401、节点查找模块402、资源判断模块403、资源调整模块404、第一任务分配模块405以及节点迁移模块501,各个模块可以参见图5对应的实施例中所述,与图5对应实施例不同之处在于,本实施例中,所述控制装置还可以包括:
[0162]第二任务分配模块601,用于在所述节点迁移失败时,将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0163]监测模块602,用于监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机。
[0164]任务迁移模块603,用于在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中运行。
[0165]在上述描述中,其中,存储计算任务的数据可能包括多个存储节点,因此,所述节点查找模块401可以具体包括:
[0166]查找子模块,用于查找存储所述计算任务所需数据的多个存储节点;
[0167]选择模块,用于从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。
[0168]选择模块可以从多个存储节点中选择任意的一个存储节点作为第一存储节点,预设条件可以是指从而不包括已选择作为第一存储节点的存储节点中,选择任一个存储节点作为第一存储节点;
[0169]或者从多个存储节点中选择资源充足的一个存储节点作为第一存储节点,该预设条件可以是指资源最多的存储节点作为第一存储节点等。
[0170]在一种可能的实现方式中,当资源判断模块判断选择的第一存储节点对应的第一宿主机中的第一计算节点的资源不满足运行要求,则可以触发选择模块重新从不包括已选择作为第一存储节点的存储节点中,选择任一个存储节点作为第一存储节点的步骤,直至当前选择的第一存储节点对应的第一计算节点满足运行要求,或者已选择的各个第一存储节点对应的第一计算节点均不满足运行要求。
[0171]若已选择的各个第一存储节点对应的第一计算节点均不满足运行要求则资源调整模块可以选择其中任一个第一存储节点对应的第一计算节点进行资源调整。
[0172]也即优先选择满足数据本地性的计算节点运行计算任务,使得无需重复调整计算节点的资源以及无需进行节点迁移等。
[0173]在另一种可能的实现方式中,所述装置还可以包括:
[0174]第一触发模块,用于在第一计算节点资源调整失败时,触发所述选择模块从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前选择的第一计算节点资源调整成功或者各个第一计算节点均资源调整失败。
[0175]所述节点迁移模块可以在各个第一计算节点资源调整失败时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并触发所述资源调整模块;
[0176]或者所述第二任务分配模块可以在各个第一计算节点资源调整失败时,将所述计算任务分配到与所当前第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0177]在又一种可能的实现方式中,所述装置还可以包括
[0178]第二触发模块,用于在N个节点迁移失败时,触发所述选择模块重新从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前第一宿主机中的节点迁移资源调整成功或者各个第一宿主机均迁移失败。
[0179]第二任务分配模块可以在各个第一宿主机均迁移失败时,将计算任务分配到与所当前第一宿主机相同机架的第二宿主机中的第二计算节点运行。
[0180]本申请实施例还提供了一种Hadoop系统,所述Hadoop系统包括多个虚拟机以及上述任一实施例所述的控制装置,每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机;
[0181]所述计算节点以及所述存储节点部署在不同虚拟机中。
[0182]通过本申请实施例提供的Hadoop系统,可以最大化满足数据本地性要求,保证计算任务的处理效率。
[0183]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装
置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0184]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0185]为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0186]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0187]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种控制方法,其特征在于,应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述方法包括: 获取计算任务; 查找存储所述计算任务所需数据的第一存储节点; 判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求; 在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源; 将所述计算任务分配到资源调整成功的第一计算节点中运行。2.根据权利要求1所述的方法,其特征在于,所述查找存储所述计算任务所需数据的第一存储节点包括: 查找存储所述计算任务所需数据的多个存储节点; 从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。3.根据权利要求2所述的方法,其特征在于,在所述第一计算节点资源调整失败时,所述方法还包括: 返回所述从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点的步骤继续执行,直至当前选择的第一计算节点资源调整成功或者已选择的各个第一计算节点资源调整失败。4.根据权利要求1?3任一项所述的方法,其特征在于,在所述第一计算节点的资源调整失败时,所述方法还包括: 将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,N为大于等于1的整数,其中,所述N个节点包括计算节点和/或存储节点; 重新执行调整所述第一计算节点占用所述宿主机的资源,并继续执行后续步骤。5.根据权利要求1或2所述的方法,其特征在于,在所述第一计算节点的资源调整失败时,或者在所述节点迁移失败时,所述方法还包括: 将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。6.根据权利要求5所述的方法,其特征在于,所述将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行之后,所述方法还包括: 监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机; 在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中运行。7.根据权利要求4所述的方法,其特征在于,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移包括: 根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点; 将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。8.—种控制装置,其特征在于,应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述装置包括: 任务获取模块,用于获取计算任务; 节点查找模块,用于查找存储所述计算任务所需数据的第一存储节点; 资源判断模块,用于判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求; 资源调整模块,用于在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源; 第一任务分配模块,用于将所述计算任务分配到资源调整成功的第一计算节点中运行。9.根据权利要求8所述的装置,其特征在于,所述节点查找模块包括: 查找子模块,用于查找存储所述计算任务所需数据的多个存储节点; 选择模块,用于从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点。10.根据权利要求9所述的装置,其特征在于,还包括: 第一触发模块,用于在所述第一计算节点资源调整失败时,触发所述选择模块继续从所述多个存储节点中选择满足预设条件的一个存储节点作为第一存储节点,直至当前选择的第一计算节点资源调整成功或者已选择的各个第一计算节点均资源调整失败。11.根据权利要求8?10任一项所述的装置,其特征在于,还包括: 节点迁移模块,用于在所述第一计算节点的资源调整失败时,将所述第一宿主机中不包括所述第一计算节点的至少N个节点进行迁移,并触发所述资源调整模块,N为大于等于1的整数,其中,所述N个节点包括计算节点和/或存储节点。12.根据权利要求8或9所述的装置,其特征在于,还包括: 第二任务分配模块,用于在所述第一计算节点的资源调整失败时,或者在所述节点迁移失败时,将所述计算任务分配到与所述第一宿主机相同机架的第二宿主机中的第二计算节点运行。13.根据权利要求12所述的装置,其特征在于,还包括: 监测模块,用于监测存储所述计算任务所需数据的第二存储节点对应的第三宿主机; 任务迁移模块,用于在所述第三宿主机的资源满足所述计算任务的运行要求时,将所述第二计算节点迁移到所述第三宿主机中的运行。14.根据权利要求11所述的装置,其特征在于,所述节点迁移模块具体用于: 根据所述第一计算节点的资源、所述第一计算节点的可扩展资源阈值以及所述第一宿主机的资源使用情况,确定需要迁移的N个节点; 将所述N个节点迁移到不包括所述第一宿主机的其他宿主机中。15.一种Hadoop系统,其特征在于,所述Hadoop系统包括多个虚拟机以及如权利要求8?14任一所述的控制装置,每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机;所述计算节点以及所述存储节点部署在不同虚拟机中。
【专利摘要】本申请实施例提供了一种控制方法、装置以及Hadoop系统,应用于虚拟化的Hadoop系统中,所述Hadoop系统中计算节点以及存储节点部署在不同虚拟机中,所述Hadoop系统中每一个宿主机虚拟化出的虚拟机至少包括一个部署计算节点的虚拟机以及一个部署存储节点的虚拟机,所述方法包括:获取计算任务;查找存储所述计算任务所需数据的第一存储节点;判断所述第一存储节点对应的第一宿主机中的第一计算节点的资源是否满足所述计算任务的运行要求;在所述第一计算节点的资源不满足所述运行要求时,调整所述第一计算节点占用所述第一宿主机的资源;将所述计算任务分配到资源调整成功的第一计算节点中运行。本申请实施例保证了计算任务的处理效率。
【IPC分类】G06F9/455, G06F9/50
【公开号】CN105487928
【申请号】CN201410504907
【发明人】孙瑞琦, 杨杰, 高瞻, 贺志强
【申请人】联想(北京)有限公司
【公开日】2016年4月13日
【申请日】2014年9月26日