一种资源调度方法及装置与流程

文档序号:12034435阅读:160来源:国知局
一种资源调度方法及装置与流程
本发明涉及资源管理
技术领域
,尤其涉及一种资源调度方法及装置。
背景技术
:随着互联网的快速发展和大数据时代的来临,基于数据密集型应用的计算框架不断涌现,不同的计算框架面向不同领域的应用。基于这一特点,一些公司(例如,互联网公司)往往需要部署和运行多个计算框架,从而为每个应用选择最优的计算框架。因此,集群资源统一管理和调度系统作为集群资源共享平台被提出来,该系统中包括集群,集群包括资源管理器和多个节点,集群资源即多个节点的资源,资源管理器部署在集群中的节点上,该系统需要同时支持多种不同的计算框架,如图1所示的系统,该系统支持mr(即mapreduce)、storm、s4(simplescalablestreamingsystem)以及mpi(messagepassinginterface)等计算框架,资源管理器通过对客户端设备发送的不同计算框架类型的应用程序进行统一的调度,以便提高资源利用率,降低运维成本。目前,集群资源统一管理和调度系统经常采用的资源调度策略包括公平调度策略、容量调度策略和先进先出调度策略,公平调度策略即按照客户端设备提交的应用程序所需要使用的内存资源、中央处理器(centralprocessingunit,简称cpu)资源或磁盘i/o资源等资源的比率大小进行资源调度;容量调度策略即以应用程序为单位划分资源,每个应用程序可设定资源最低保证和使用上限,按照设定的资源最低保证和使用上限为应用程序调度资源;先进先出调度策略即按照客户端设备提交的应用程序的先后顺序调度。由于应用程序向资源管理器请求的资源量并不是应用程序实际需要的资源量,而是尽量请求较多的资源,使得集群资源统一管理和调度系统不能根据应用程序的实际运行情况为每个应用程序分配资源,从而使得资源分配不合理,资源利用率有待提高。技术实现要素:本发明的实施例提供一种资源调度方法及装置,用以提高集群资源的利用率。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,提供一种资源调度方法,应用于资源管理器,资源管理器用于管理和调度集群资源,集群包括多个节点,与集群支持的计算框架适配的r个应用程序运行在多个节点上,r为正整数,该方法包括:资源管理器接收r个应用程序的资源请求;资源管理器获取历史特征信息,历史特征信息包括第一历史特征信息和第二历史特征信息中的至少一项,第一历史特征信息为r个应用程序中的n个应用程序的历史特征,应用程序的历史特征包括用于表示该应用程序的历史资源使用情况的信息和用于表示该应用程序的历史运行时间的信息中的至少一项;第二历史特征信息为多个节点中的有空闲资源的m个节点的历史特征,节点的历史特征包括该节点的故障率以及任务失败率中的至少一项,1≤n≤r,m≥1,n、m均为整数;资源管理器根据第一历史特征信息和第一调度策略为n个应用程序调度资源;或者,资源管理器根据第二历史特征信息和第二调度策略为r个应用程序中的至少一个应用程序调度资源。本发明实施例提供的方法,在接收到多个应用程序发送的资源请求后,获取节点和/或应用程序的历史特征,并根据节点和/或应用程序的历史特征为应用程序分配资源,由于节点的历史特征可以间接的表征节点当前或未来的特征,应用程序的历史特征可以间接的表征应用程序的当前运行或未来运行时的特征,在本发明实施例中,并不根据应用程序的资源请求中请求的资源量为应用程序分配资源,而是通过节点和/或应用程序的历史特征为应用程序分配资源,这样可以防止资源管理器根据应用程序请求的资源量为应用程序分配资源所造成的资源浪费,使得资源调度更合理。结合第一方面,在第一种可能的实现方式中,该方法还包括:资源管理器根据第一历史特征信息调整第一调度参数,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数,第一调度参数用于确定为n个 应用程序调度资源的顺序;资源管理器根据第一历史特征信息和第一调度策略为n个应用程序调度资源,包括:资源管理器根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第一方面,在第二种可能的实现方式中,该方法还包括:资源管理器根据第一历史特征信息和第二历史特征信息调整第一调度参数,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数和m个节点中的每个节点对应的调度参数,第一调度参数用于确定为n个应用程序调度资源的顺序和调度m个节点的资源的顺序;资源管理器根据第一历史特征信息和第一调度策略为n个应用程序调度资源,包括:资源管理器根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第一方面,在第三种可能的实现方式中,该方法还包括:资源管理器根据第二历史特征信息调整第二调度参数,第二调度参数包括m个节点中的每个节点对应的调度参数,第二调度参数用于确定调度m个节点的资源的顺序;资源管理器根据第二历史特征信息和第二调度策略为r个应用程序中的至少一个应用程序调度资源,包括:资源管理器根据调整后的第二调度参数和第二调度策略为r个应用程序中的至少一个应用程序调度资源。结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史运行时长;m个节点的历史特征包括m个节点中的每个节点的故障率和任务失败率,资源管理器根据第一历史特征信息和第二历史特征信息调整第一调度参数,包括:资源管理器确定n个应用程序中的每个应用程序的综合历史运行时长;资源管理器根据m个节点中的每个节点的故障率和任务失败率计算m个节点中的每个节点的健康率,一个节点的健康率等于该节点的故障率的α倍与该节点的任务失败率的β倍之和,α=1-β,0<α<1;资源管理器根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源,包括:资源管理器将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序。由于节点的健康率越高时,节点的稳定性也越高,该种实现方式中, 由于将节点的健康率越高的节点的资源分配给了综合历史运行时长越长的节点,能够提高长时应用程序的运行稳定性。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,该方法还包括:资源管理器多次计算多个节点中的全部节点的任务成功率,并在每次计算完成后根据任务成功率调整α的值,直至确定出的α的值使得任务成功率最高为止。该种实现方式中,能够确定最优的α的值,从而使得系统的任务成功率最高。结合第一方面的第一种可能的实现方式,在第六种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量,资源管理器根据第一历史特征信息调整第一调度参数,包括:当该应用程序的综合历史资源利用率小于预设阈值时,资源管理器采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,第一阈值大于该应用程序的综合历史资源使用量;资源管理器将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值,第一阈值小于第二阈值;资源管理器根据调整后的第一调度参数和第一调度策略为该应用程序调度资源,包括:资源管理器按照第一阈值为该应用程序调度资源、并实时监控该应用程序实际使用的资源量是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源量再次计算得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为第二阈值为止。该种实现方式中,根据应用程序的综合历史资源使用情况确定第一阈值和第二阈值,先按照第一阈值为应用程序调度资源,再根据应用程序实际使用的资源量调整为该应用程序分配的资源量,从而避免了资源浪费,提高了资源利用率。结合第一方面、第一方面的第一种可能的实现方式至第六种可能的实现方式中的任一种,在第七种可能的实现方式中,一个应用程序的历史特征还包括该应用程序的历史优先级和该应用程序的历史标签中的至少一 项,一个节点的历史特征还包括该节点的历史资源占用率和该节点的历史资源使用量中的至少一项。结合第一方面、第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一种,在第八种可能的实现方式中,该方法还包括:当所述资源管理器未成功获取所述历史特征信息时,所述资源管理器根据预设调度策略为所述r个应用程序调度资源。第二方面,提供一种资源调度装置,用于管理和调度集群资源,集群包括多个节点,与集群支持的计算框架适配的r个应用程序运行在多个节点上,r为正整数,该装置包括:接收单元,用于接收r个应用程序的资源请求;获取单元,用于获取历史特征信息,历史特征信息包括第一历史特征信息和第二历史特征信息中的至少一项,第一历史特征信息为r个应用程序中的n个应用程序的历史特征,应用程序的历史特征包括用于表示该应用程序的历史资源使用情况的信息和用于表示该应用程序的历史运行时间的信息中的至少一项;第二历史特征信息为多个节点中的有空闲资源的m个节点的历史特征,节点的历史特征包括该节点的故障率以及任务失败率中的至少一项,1≤n≤r,m≥1,n、m均为整数;调度单元,用于根据第一历史特征信息和第一调度策略为n个应用程序调度资源;或者,根据第二历史特征信息和第二调度策略为r个应用程序中的至少一个应用程序调度资源。由于资源调度装置中的各个单元用于执行上述方法,资源调度装置的有益效果可参见方法部分所述的有益效果。结合第二方面,在第一种可能的实现方式中,该装置还包括:调整单元,用于根据第一历史特征信息调整第一调度参数,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数,第一调度参数用于确定为n个应用程序调度资源的顺序;调度单元,具体用于:根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第二方面,在第二种可能的实现方式中,该装置还包括:调整单元,用于根据第一历史特征信息和第二历史特征信息调整第一调度参数,其中,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数 和m个节点中的每个节点对应的调度参数,第一调度参数用于确定为n个应用程序调度资源的顺序和调度m个节点的资源的顺序;调度单元,具体用于:根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第二方面,在第三种可能的实现方式中,该装置还包括:调整单元,用于根据第二历史特征信息调整第二调度参数,第二调度参数包括m个节点中的每个节点对应的调度参数,第二调度参数用于确定调度m个节点的资源的顺序;调度单元,具体用于:根据调整后的第二调度参数和第二调度策略为r个应用程序中的至少一个应用程序调度资源。结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史运行时长;m个节点的历史特征包括m个节点中的每个节点的故障率和任务失败率;调整单元,具体用于:确定n个应用程序中的每个应用程序的综合历史运行时长;根据m个节点中的每个节点的故障率和任务失败率计算m个节点中的每个节点的健康率,一个节点的健康率等于该节点的故障率的α倍与该节点的任务失败率的β倍之和,α=1-β,0<α<1;调度单元,具体用于:将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序。由于节点的健康率越高时,节点的稳定性也越高,该种实现方式中,由于将节点的健康率越高的节点的资源分配给了综合历史运行时长越长的节点,能够提高长时应用程序的运行稳定性。结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,该装置还包括:计算单元,用于多次计算多个节点中的全部节点的任务成功率,并在每次计算完成后根据任务成功率调整α的值,直至确定出的α的值使得任务成功率最高为止。该种实现方式中,能够确定最优的α的值,从而使得系统的任务成功率最高。结合第二方面的第一种可能的实现方式,在第六种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量;调整单元, 具体用于:当该应用程序的综合历史资源利用率小于预设阈值时,采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,第一阈值大于该应用程序的综合历史资源使用量;将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值,第一阈值小于第二阈值;调度单元,具体用于:按照第一阈值为该应用程序调度资源、并实时监控该应用程序实际使用的资源量是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源量再次计算得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为第二阈值为止。该种实现方式中,根据应用程序的综合历史资源使用情况确定第一阈值和第二阈值,先按照第一阈值为应用程序调度资源,再根据应用程序实际使用的资源量调整为该应用程序分配的资源量,从而避免了资源浪费,提高了资源利用率。结合第二方面、第二方面的第一种可能的实现方式至第六种可能的实现方式中的任一种,在第七种可能的实现方式中,一个应用程序的历史特征还包括该应用程序的历史优先级和该应用程序的历史标签中的至少一项,一个节点的历史特征还包括该节点的历史资源占用率和该节点的历史资源使用量中的至少一项。结合第二方面、第二方面的第一种可能的实现方式至第三种可能的实现方式中的任一种,在第八种可能的实现方式中,所述调度单元还用于:当所述获取单元未成功获取所述历史特征信息时,根据预设调度策略为所述r个应用程序调度资源。第三方面,提供一种资源调度装置,用于管理和调度集群资源,集群包括多个节点,与集群支持的计算框架适配的r个应用程序运行在多个节点上,r为正整数,该装置包括:接收器、存储器和处理器;接收器,用于接收r个应用程序的资源请求;存储器用于存储一组代码,处理器根据该组代码执行以下动作:获取历史特征信息,历史特征信息包括第一历史特征信息和第二历史特征信息中的至少一项,第一历史特征信息为r个应 用程序中的n个应用程序的历史特征,应用程序的历史特征包括用于表示该应用程序的历史资源使用情况的信息和用于表示该应用程序的历史运行时间的信息中的至少一项;第二历史特征信息为多个节点中的有空闲资源的m个节点的历史特征,节点的历史特征包括该节点的故障率以及任务失败率中的至少一项,1≤n≤r,m≥1,n、m均为整数;根据第一历史特征信息和第一调度策略为n个应用程序调度资源;或者,根据第二历史特征信息和第二调度策略为r个应用程序中的至少一个应用程序调度资源。由于资源调度装置中的各个器件用于执行上述方法,资源调度装置的有益效果可参见方法部分所述的有益效果。结合第三方面,在第一种可能的实现方式中,处理器还用于:根据第一历史特征信息调整第一调度参数,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数,第一调度参数用于确定为n个应用程序调度资源的顺序;处理器具体用于:根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第三方面,在第二种可能的实现方式中,处理器还用于:根据第一历史特征信息和第二历史特征信息调整第一调度参数,其中,第一调度参数包括n个应用程序中的每个应用程序对应的调度参数和m个节点中的每个节点对应的调度参数,第一调度参数用于确定为n个应用程序调度资源的顺序和调度m个节点的资源的顺序;处理器具体用于:根据调整后的第一调度参数和第一调度策略为n个应用程序调度资源。结合第三方面,在第三种可能的实现方式中,处理器还用于:根据第二历史特征信息调整第二调度参数,第二调度参数包括m个节点中的每个节点对应的调度参数,第二调度参数用于确定调度m个节点的资源的顺序;处理器具体用于:根据调整后的第二调度参数和第二调度策略为r个应用程序中的至少一个应用程序调度资源。结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史运行时长;m个节点的历史特征包括m个节点中的每个节点的故障 率和任务失败率;处理器具体用于:确定n个应用程序中的每个应用程序的综合历史运行时长;根据m个节点中的每个节点的故障率和任务失败率计算m个节点中的每个节点的健康率,一个节点的健康率等于该节点的故障率的α倍与该节点的任务失败率的β倍之和,α=1-β,0<α<1;处理器具体用于:将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序。由于节点的健康率越高时,节点的稳定性也越高,该种实现方式中,由于将节点的健康率越高的节点的资源分配给了综合历史运行时长越长的节点,能够提高长时应用程序的运行稳定性。结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,处理器具还用于:多次计算多个节点中的全部节点的任务成功率,并在每次计算完成后根据任务成功率调整α的值,直至确定出的α的值使得任务成功率最高为止。该种实现方式中,能够确定最优的α的值,从而使得系统的任务成功率最高。结合第三方面的第一种可能的实现方式,在第六种可能的实现方式中,n个应用程序的历史特征包括n个应用程序中的每个应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量;处理器具体用于:当该应用程序的综合历史资源利用率小于预设阈值时,采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,第一阈值大于该应用程序的综合历史资源使用量;将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值,第一阈值小于第二阈值;处理器具体用于:按照第一阈值为该应用程序调度资源、并实时监控该应用程序实际使用的资源量是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源量再次计算得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为第二阈值为止。该种实现方式中,根据应用程序的综合历史资源使用情况确定第一阈值和第二阈值,先按照第一阈值为应用程序调度资源,再根据应用程序实 际使用的资源量调整为该应用程序分配的资源量,从而避免了资源浪费,提高了资源利用率。结合第三方面、第三方面的第一种可能的实现方式至第六种可能的实现方式中的任一种,在第七种可能的实现方式中,一个应用程序的历史特征还包括该应用程序的历史优先级和该应用程序的历史标签中的至少一项,一个节点的历史特征还包括该节点的历史资源占用率和该节点的历史资源使用量中的至少一项。结合第三方面、第三方面的第一种可能的实现方式至第三种可能的实现方式中的任一种,在第八种可能的实现方式中,所述处理器还用于:当所述处理器未成功获取所述历史特征信息时,所述资源管理器根据预设调度策略为所述r个应用程序调度资源。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中的一种集群资源统一管理和调度系统的组成示意图;图2为本发明实施例提供的一种集群资源统一管理和调度系统的架构示意图;图3为本发明实施例提供的一种资源调度方法的流程图;图4为本发明实施例提供的又一种资源调度方法的流程图;图5为本发明实施例提供的又一种资源调度方法的流程图;图6为本发明实施例提供的一种资源调度装置的组成示意图;图7为本发明实施例提供的又一种资源调度装置的组成示意图;图8为本发明实施例提供的又一种资源调度装置的组成示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图2所示,为集群资源统一管理和调度系统的架构示意图,包括集群和客户端设备,集群包括资源管理器和多个节点(图2中以三个节点为例进行绘制),资源管理器部署在集群中的某个节点上,每个节点均可以与资源管理器通信,客户端设备向资源管理器提交应用程序的资源请求,资源管理器可以将节点的资源分配给应用程序,以使得应用程序根据分配的节点资源在该节点上运行。本发明实施例中的节点既具备计算功能也具备存储功能。本发明实施例提供一种资源调度方法,应用于资源管理器,所述资源管理器用于管理和调度集群资源,所述集群包括多个节点,与所述集群支持的计算框架适配的r个应用程序运行在所述多个节点上,r为正整数,如图3所示,所述方法包括:301、所述资源管理器接收所述r个应用程序的资源请求。资源管理器部署在上述多个节点中的任意一个节点上,集群资源即上述多个节点的资源,资源管理器属于集群资源统一管理和调度系统(以下简称系统),该系统可以为yarn、mesos、coraca、torca或omega等。其中,集群支持至少一种计算框架,与任意一种计算框架适配的应用程序可以运行在节点上。资源管理器接收到的多个应用程序的资源请求可以为多个客户端设备提交的应用程序的资源请求,一个应用程序为一个属于某种计算框架类型的任务,运行一次该应用程序即运行一次该任务。具体的,资源管理器接收到的多个应用程序的资源请求可以为一个心跳周期内接收到的全部应用程序的资源请求,资源管理器一次处理一个心跳周期内接收到的应用程序的资源请求,心跳周期可以为预设值。302、所述资源管理器获取历史特征信息,所述历史特征信息包括第一历史特征信息和第二历史特征信息中的至少一项。其中,所述第一历史特征信息为所述r个应用程序中的n个应用程序的历史特征;所述第二历史特征信息为所述多个节点中的m个节点的历史特征;所述m个节点为所述多个节点中的有空闲资源的m个节点,应用程序的历史特征包括用于表示该应用程序的历史资源使用情况的信息和用于表示该应用程序的历史运行时间的信息中的至少一项,节点的历史特征包括该节点的故障率以及任务失败率中的至少一项,1≤n≤r,m≥1,n、m均为整数。需要说明的是,在本发明实施例中,客户端设备在提交一个应用程序时,可以为该应用程序携带一个唯一的标识,用于资源管理器区分不同的应用程序。一个应用程序可能只运行一次,也可能运行多次,对于多次运行的应用程序,若该应用程序已经运行了i(i≥1,i为整数)次,则该应用程序的历史特征可以根据这i次历史运行过程获取,并存储在数据库中。示例性的,假设应用程序1(即标识为1的应用程序)为在2015年10月1日首次运行的应用程序,并且该应用程序每个月运行一次;应用程序2(即标识为2的应用程序)为在2015年11月10日首次运行的应用程序,并且该应用程序每个星期运行一次;应用程序3(即标识为3的应用程序)为在2015年11月20日首次运行的应用程序,并且该应用程序每天运行一次;应用程序4(即标识为4的应用程序)为在2015年12月1日首次运行的应用程序、并且该应用程序只运行一次,若每月均按照30天计算,则2015年12月1日之前该4个应用程序的历史运行次数如表1所示,其中,应用程序1、应用程序2或应用程序3的历史特征可以根据该应用程序的至少一次历史运行过程获取(例如,应用程序1的历史特征可以根据该应用程序的2次历史运行过程获取),应用程序4没有历史特征。表1应用程序标识首次运行时间运行周期历史运行次数12015年10月1日1个月222015年11月10日1个星期332015年11月20日1天1142015年12月1日无0具体的,资源管理器接收到的多个应用程序中可以包括只运行一次的应用程序和/或运行多次的应用程序,当历史特征信息为第一历史特征信息时,资源管理器在接收到多个应用程序的资源请求时,可以根据应用程序的标识在数据库中查询应用程序的历史特征,在一种应用场景下(例如,只对预设的应用程序查找历史特征),资源管理器可以只在数据库中查询多个应用程序中的部分应用程序的历史特征,该情况下,若数据库中包含多个应用程序中的n′个应用程序的历史特征,则n个应用程序可以为n′个应用程序中的部分或全部应用程序;在另一种应用场景下,资源管理器可以在数据库中查询多个应用程序中的全部应用程序的历史特征,则n个应用程序可以为n′个应用程序中的全部的应用程序,n′为大于或等于n的整数。基于表1所述的示例,若在2015年12月1日,在同一个心跳周期内应用程序1、应用程序2、应用程序3和应用程序4向资源管理器请求资源,则资源管理器能够在数据库中查询到应用程序1、应用程序2和应用程序3的历史特征。其中,m个节点可以为上述多个节点中的全部有空闲资源的节点,也可以为上述多个节点中的全部有空闲资源的节点中的部分节点。具体的,应用程序的历史运行时间的信息可以包括该应用程序的一次或多次历史运行时的历史运行时长、历史启动时间以及历史停止时间,该应用程序的综合历史运行时长等;应用程序的历史资源使用情况的信息可以包括该应用程序的一次或多次历史运行时的历史资源请求量、历史资源使用量以及历史资源利用率,该应用程序的综合历史资源请求量、综合历 史资源使用量以及综合历史资源利用率等。在本发明实施例中,“一个应用程序的综合历史特征”是指根据该应用程序的一次或多次历史运行时的该历史特征综合确定的历史特征,例如,“一个应用程序的综合历史运行时长”是指根据该应用程序的一次或多次历史运行时的历史运行时长综合确定的历史运行时长,具体的,该应用程序的综合历史运行时长可以为多次历史运行时长的平均值,也可以为多次历史运行时长中的最高值。其中,一个节点的故障率计算方法为:该节点的故障率=该节点故障次数÷集群中所有节点的总故障次数;一个节点的任务失败率计算方法为:该节点的任务失败率=该节点运行任务失败的次数÷该节点运行的总任务次数。上述计算中涉及到的次数均为预设时间段内的次数,该预设时间段可以为半年,也可以为1年,本发明实施例对此不进行限制。需要说明的是,在节点上运行一次应用程序即运行一个任务,若运行成功,则该次任务成功,若运行失败,则该次任务失败。可选的,一个应用程序的历史特征还包括该应用程序的历史优先级以及该应用程序的历史标签中的至少一项,一个节点的历史特征还包括该节点的历史资源占用率。具体的,应用程序的历史优先级包括该应用程序的一次或多次历史运行时的优先级;应用程序的历史标签包括该应用程序的一次或多次历史运行时携带的标签,该标签可以为应用程序中包括的指示信息,例如,指示使用某个节点的资源的信息,该标签还可以为时间参数,表示该应用程序要求在该时间参数指示的时间点之前完成运行,如时间参数21:10,即表示该应用程序要求在21:10之前完成运行即可。节点的历史特征还可以包括该节点的历史资源使用量和该节点的历史资源占用率,具体的,节点的历史资源使用量可以为一段时间内的多个测试时间点测试得到的资源使用量的平均值或最高值,节点的历史资源占用率可以根据该节点的历史资源使用量以及该节点的资源总量计算得到。上述资源包括节点的cpu资源、内存资源、磁盘空间资源、磁盘i/o资源、网络i/o资源以及文件句柄数等资源。需要说明的是,节点会实时的向资源管理器上报该节点的资源使用信 息及任务运行信息,以便资源管理器确定应用程序的历史特征,用于收集各个节点的故障信息的管理器会实时的向资源管理器上报每个节点的故障信息,以便资源管理器确定节点的历史特征。303、所述资源管理器根据所述第一历史特征信息和第一调度策略为所述n个应用程序调度资源;或者,所述资源管理器根据所述第二历史特征信息和第二调度策略为所述r个应用程序中的至少一个应用程序调度资源。具体的,采用第一调度策略为n个应用程序调度资源的过程中需要用到第一历史特征信息,由于第一历史特征信息中包括n个应用程序的历史特征,因此,根据第一历史特征信息和第一调度策略仅仅可以为上述r个应用程序中的n个应用程序调度资源,上述r个应用程序中的除n个应用程序之外的应用程序使用的资源可以采用预设调度策略进行调度,具体的,关于预设调度策略的相关描述见下文。具体的,采用第二调度策略为应用程序调度资源的过程中不需要用到应用程序的历史特征,该情况下,资源管理器可以根据第二历史特征信息和第二调度策略为多个应用程序中的一个或多个或全部应用程序调度资源。示例性的,第一调度策略可以为:按照n个应用程序中的每个应用程序的综合历史资源使用量为n个应用程序调度资源,或者,按照n个应用程序中的每个应用程序的综合历史资源使用量的(1+x)倍为n个应用程序调度资源,示例性的,x可以取0.1或0.2。示例性的,当第二历史特征信息为m个节点的故障率时,第二调度策略可以为:将m个节点中的故障率越低的节点的资源越早分配。该情况下,若m个节点上运行的应用程序数量不多时,可以使得运行的应用程序的稳定性较高。需要说明的是,本发明实施例中并不限制第一调度策略和第二调度策略的具体内容,第一调度策略和第二调度策略为调度目的服务,当调度目的变化时,第一调度策略和第二调度策略也可以进行相应的调整。可选的,所述方法还包括:当所述资源管理器未成功获取所述历史特 征信息时,所述资源管理器根据预设调度策略为所述r个应用程序调度资源。需要说明的是,预设调度策略可以为公平调度策略、容量调度策略和先进先出调度策略等调度策略中的任意一种调度策略。可选的,所述方法还包括:所述资源管理器根据所述第一历史特征信息调整第一调度参数,所述第一调度参数包括所述n个应用程序中的每个应用程序对应的调度参数,所述第一调度参数用于确定为所述n个应用程序调度资源的顺序;所述资源管理器根据所述第一历史特征信息和第一调度策略为所述n个应用程序调度资源,包括:所述资源管理器根据调整后的第一调度参数和所述第一调度策略为所述n个应用程序调度资源。可选的,所述方法还包括:所述资源管理器根据所述第一历史特征信息和所述第二历史特征信息调整第一调度参数,其中,所述第一调度参数包括所述n个应用程序中的每个应用程序对应的调度参数和所述m个节点中的每个节点对应的调度参数,所述第一调度参数用于确定为所述n个应用程序调度资源的顺序和调度所述m个节点的资源的顺序;所述资源管理器根据所述第一历史特征信息和第一调度策略为所述n个应用程序调度资源,包括:所述资源管理器根据调整后的第一调度参数和所述第一调度策略为所述n个应用程序调度资源。可选的,所述n个应用程序的历史特征包括所述n个应用程序中的每个应用程序的综合历史运行时长;所述m个节点的历史特征包括所述m个节点中的每个节点的故障率和任务失败率,所述资源管理器根据所述第一历史特征信息和所述第二历史特征信息调整第一调度参数,包括:所述资源管理器确定所述n个应用程序中的每个应用程序的综合历史运行时长;所述资源管理器根据所述m个节点中的每个节点的故障率和任务失败率计算所述m个节点中的每个节点的健康率,一个节点的健康率等于 该节点的故障率的α倍与该节点的任务失败率的β倍之和,α=1-β,0<α<1;所述资源管理器根据调整后的第一调度参数和所述第一调度策略为所述n个应用程序调度资源,包括:所述资源管理器将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序。该情况下,第一调度策略即资源管理器将健康率越高的节点的资源分配给综合历史运行时长越长的应用程序;第一调度参数即m个节点中的每个节点的健康率和n个应用程序中的每个应用程序的综合历史运行时长。其中,α的初始值可以预置,例如,α可以为0.5。需要说明的是,节点的健康率越高时,该节点的稳定性也越高,该可选的方法,由于将节点的健康率越高的节点的资源分配给了综合历史运行时长越长的节点,能够提高长时应用程序(即运行一次应用程序所需的时间较长的应用程序)的运行稳定性。可选的,所述方法还包括:所述资源管理器多次计算所述多个节点中的全部节点的任务成功率,并在每次计算完成后根据所述任务成功率调整所述α的值,直至确定出的所述α的值使得所述任务成功率最高为止。其中,全部节点的任务成功率=全部节点的运行任务成功的次数÷全部节点的运行的总任务次数。该可选的方法在具体实现时,为了提高系统的任务成功率,在计算出全部节点的任务成功率之后,增加(或减小)α的值,并重新计算全部节点的任务成功率,若全部节点的任务成功率增大,则继续增加(或减小)α的值,若全部节点的任务成功率降低,则减小(或增加)α的值,直至确定出的α的值能够使得全部节点的任务成功率最高为止。在增加(或减小)α的值时,可以每次增加0.05或0.1,也可以增加其他量。该可选的方法,能够确定最优的α的值,从而使得系统的任务成功率最高。可选的,所述n个应用程序的历史特征包括所述n个应用程序中的每个应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资 源申请量,所述资源管理器根据所述第一历史特征信息调整第一调度参数,包括:当该应用程序的综合历史资源利用率小于预设阈值时,所述资源管理器采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,所述第一阈值大于该应用程序的综合历史资源使用量;所述资源管理器将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值,所述第一阈值小于所述第二阈值;所述资源管理器根据调整后的第一调度参数和所述第一调度策略为该应用程序调度资源,包括:所述资源管理器按照所述第一阈值为该应用程序调度资源、并实时监控该应用程序实际使用的资源量是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源量再次计算得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为所述第二阈值为止。在该可选的方法中,第一调度参数即第一阈值和第二阈值。该可选的方法中的资源可以为节点的cpu资源、内存资源、磁盘空间资源、磁盘i/o资源、网络i/o资源以及文件句柄数等资源中的任意一种,该可选的方法,根据应用程序的综合历史资源使用情况确定第一阈值和第二阈值,先按照第一阈值为应用程序调度资源,再根据应用程序实际使用的资源量调整为该应用程序分配的资源量,从而避免了资源浪费,提高了资源利用率。可选的,所述方法还包括:所述资源管理器根据所述第二历史特征信息调整第二调度参数,所述第二调度参数包括所述m个节点中的每个节点对应的调度参数,所述第二调度参数用于确定调度所述m个节点的资源的顺序;所述资源管理器根据所述第二历史特征信息和第二调度策略为所述r个应用程序中的至少一个应用程序调度资源,包括:所述资源管理器根据调整后的第二调度参数和所述第二调度策略为所述r个应用程序中的至少一个应用程序调 度资源。本发明实施例提供的方法,资源管理器在接收到多个应用程序发送的资源请求后,获取节点和/或应用程序的历史特征,并根据节点和/或应用程序的历史特征为应用程序分配资源,由于节点的历史特征可以间接的表征节点当前或未来的特征,应用程序的历史特征可以间接的表征应用程序的当前运行或未来运行时的特征,在本发明实施例中,并不根据应用程序的资源请求中请求的资源量为应用程序分配资源,而是通过节点和/或应用程序的历史特征为应用程序分配资源,这样可以防止资源管理器根据应用程序请求的资源量为应用程序分配资源所造成的资源浪费,使得资源调度更合理。本发明实施例还提供了一种资源调度方法,基于表1所述的示例对上述资源调度方法进行示例性说明,该实施例中,第一调度策略为:将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序,如图4所示,该方法具体包括:401、资源管理器接收4个应用程序的资源请求。其中,4个应用程序即表1中所示的4个应用程序。具体的,4个应用程序的资源请求可以为资源管理器在一个心跳周期内接收到的全部的应用程序的资源请求,4个应用程序的资源请求可以为4个客户端设备提交的应用程序的资源请求。402、资源管理器确定4个应用程序中的每个应用程序的综合历史运行时长,并确定m个节点中的每个节点的故障率和任务失败率。其中,若资源管理器在2015年12月1日接收4个应用程序的资源请求,则4个应用程序中的每个应用程序的历史运行次数可以参见表1,每个应用程序的综合历史运行时长可以为该应用程序的多次历史运行时长的平均值或者最大值,则应用程序4没有历史运行时长。资源管理器计算m个节点中的每个节点的故障率和任务失败率的方法可以参见上文,在此不再赘述。403、资源管理器计算m个节点的健康率。具体的,一个节点的健康率的计算方法为:该节点的健康率=α×该节点的故障率+β×该节点的任务失败率,α=1-β=0.5。404、资源管理器根据应用程序1、应用程序2和应用程序3的综合历史运行时长、m个节点中的每个节点的健康率以及第一调度策略为应用程序1、应用程序2和应用程序3调度资源。步骤404在具体实现时,资源管理器将m个节点的健康率越高的节点的资源分配给应用程序1、应用程序2和应用程序3中的综合历史运行时长越长的应用程序。步骤404在具体实现时,为了方便调度,资源管理器可以将应用程序1、应用程序2和应用程序3的综合历史运行时长按照由大至小的顺序进行排列,将m个节点的健康率按照由高至低的顺序进行排列,再根据排列结果进行调度。405、资源管理器采用预设调度策略为应用程序4调度资源。需要说明的是,由于应用程序4没有综合历史运行时长,无法采用第一调度策略为应用程序4调度资源,因此,采用预设调度策略为应用程序4调度资源,预设调度策略可以为公平调度策略、容量调度策略和先进先出调度策略等调度策略中的任意一种调度策略。本发明实施例提供的方法,当资源管理器确定多个应用程序的综合历史运行时长和m个节点的健康率之后,可以将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序,由于节点的健康率越高时,节点的稳定性也越高,因此,该方法可以提高长时应用程序的运行稳定性。本发明实施例还提供了一种资源调度方法,用于对上述实施例提供的资源调度方法进行示例性说明,该实施例中,第一调度策略为:按照第一阈值为应用程序调度资源、并实时监控该应用程序实际使用的资源是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源再次计算 得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为第二阈值为止,如图5所示,该方法具体包括:501、资源管理器接收客户端设备提交的应用程序的资源请求。502、资源管理器确定该应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量。此处的“资源”可以为节点的cpu资源、内存资源、磁盘空间资源、磁盘i/o资源、网络i/o资源以及文件句柄数等资源中的任意一种。当资源管理器成功确定该应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量时,执行步骤503,否则,执行步骤507。503、资源管理器判断该应用程序的综合历史资源利用率是否小于预设阈值。具体的,预设阈值可以为百分之八十、百分之九十,也可以为其他值。若是,执行步骤504,若否,执行步骤506。504、资源管理器采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值。其中,第一阈值大于该应用程序的综合历史资源使用量,第一阈值小于第二阈值。资源管理器采用预设算法计算第一阈值的方法可以为:第一阈值=综合历史资源使用量×(1+γ)×100%,γ大于0,γ的值可以取0.1,或其他值。505、资源管理器根据第一阈值、第二阈值和第一调度策略为该应用程序调度资源。具体的,资源管理器按照第一阈值为应用程序调度资源、并实时监控该应用程序实际使用的资源是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源再次计算得到该应用程序对应的第一阈值,并按 照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为第二阈值为止。506、资源管理器按照该应用程序的综合历史资源申请量为该应用程序调度资源。需要说明的是,当该应用程序的综合历史资源利用率大于或等于预设阈值时,认为该应用程序的综合历史资源利用率较高,则按照该应用程序的综合历史资源申请量为该应用程序调度资源。507、资源管理器采用预设调度策略为该应用程序调度资源。需要说明的是,若无法成功确定该应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量,则无法采用第一调度策略为该应用程序调度资源,因此,采用预设调度策略为该应用程序调度资源,预设调度策略可以为公平调度策略、容量调度策略和先进先出调度策略等调度策略中的任意一种调度策略。本发明实施例提供的方法,当资源管理器获取到应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量后,可以确定第一阈值和第二阈值,其中,第一阈值大于综合历史资源使用量、且第一阈值小于第二阈值(即综合历史资源申请量),资源管理器可以先按照第一阈值为该应用程序调度资源,若资源管理器实际使用的资源量始终小于第一阈值,则不再为该应用程序增加资源,若资源管理器实际使用的资源量大于第一阈值,则为该应用程序增加资源,从而可以避免该应用程序占用多余的资源,提高了资源利用率。本发明实施例还提供一种资源调度装置60,用于管理和调度集群资源,所述集群包括多个节点,与所述集群支持的计算框架适配的r个应用程序运行在所述多个节点上,r为正整数,如图6所示,所述装置60包括:接收单元601,用于接收所述r个应用程序的资源请求;获取单元602,用于获取历史特征信息,所述历史特征信息包括第一 历史特征信息和第二历史特征信息中的至少一项,所述第一历史特征信息为所述r个应用程序中的n个应用程序的历史特征;所述第二历史特征信息为所述多个节点中的m个节点的历史特征;所述m个节点为所述多个节点中的有空闲资源的m个节点,其中,应用程序的历史特征包括用于表示该应用程序的历史资源使用情况的信息和用于表示该应用程序的历史运行时间的信息中的至少一项,节点的历史特征包括该节点的故障率以及任务失败率中的至少一项,1≤n≤r,m≥1,n、m均为整数;调度单元603,用于根据所述第一历史特征信息和第一调度策略为所述n个应用程序调度资源;或者,根据所述第二历史特征信息和第二调度策略为所述r个应用程序中的至少一个应用程序调度资源。可选的,如图7所示,所述装置60还包括:调整单元604,用于根据所述第一历史特征信息调整第一调度参数,所述第一调度参数包括所述n个应用程序中的每个应用程序对应的调度参数,所述第一调度参数用于确定为所述n个应用程序调度资源的顺序;所述调度单元603,具体用于:根据调整后的第一调度参数和所述第一调度策略为所述n个应用程序调度资源。可选的,如图7所示,所述装置60还包括:调整单元604,用于根据所述第一历史特征信息和所述第二历史特征信息调整第一调度参数,其中,所述第一调度参数包括所述n个应用程序中的每个应用程序对应的调度参数和所述m个节点中的每个节点对应的调度参数,所述第一调度参数用于确定为所述n个应用程序调度资源的顺序和调度所述m个节点的资源的顺序;所述调度单元603,具体用于:根据调整后的第一调度参数和所述第一调度策略为所述n个应用程序调度资源。可选的,如图7所示,所述装置60还包括:调整单元604,用于根据所述第二历史特征信息调整第二调度参数,所述第二调度参数包括所述m个节点中的每个节点对应的调度参数,所述第二调度参数用于确定调度所述m个节点的资源的顺序;所述调度单元603,具体用于:根据调整后的第二调度参数和所述第二调度策略为所述r个应用程序中的至少一个应用程序调度资源。可选的,所述n个应用程序的历史特征包括所述n个应用程序中的每个应用程序的综合历史运行时长;所述m个节点的历史特征包括所述m个节点中的每个节点的故障率和任务失败率;所述调整单元604,具体用于:确定所述n个应用程序中的每个应用程序的综合历史运行时长;根据所述m个节点中的每个节点的故障率和任务失败率计算所述m个节点中的每个节点的健康率,一个节点的健康率等于该节点的故障率的α倍与该节点的任务失败率的β倍之和,α=1-β,0<α<1;所述调度单元603,具体用于:将节点的健康率越高的节点的资源分配给综合历史运行时长越长的应用程序。可选的,如图7所示,所述装置60还包括:计算单元605,用于多次计算所述多个节点中的全部节点的任务成功率,并在每次计算完成后根据所述任务成功率调整所述α的值,直至确定出的所述α的值使得所述任务成功率最高为止。可选的,所述n个应用程序的历史特征包括所述n个应用程序中的每个应用程序的综合历史资源利用率、综合历史资源使用量和综合历史资源申请量;所述调整单元604,具体用于:当该应用程序的综合历史资源利用率小于预设阈值时,采用预设算法对该应用程序的综合历史资源使用量初次计算得到该应用程序对应的第一阈值,所述第一阈值大于该应用程序的综合历史资源使用量;将该应用程序的综合历史资源申请量确定为该应用程序对应的第二阈值,所述第一阈值小于所述第二阈值;所述调度单元603,具体用于:按照所述第一阈值为该应用程序调度资源、并实时监控该应用程序实际使用的资源量是否超过第一阈值,若是,采用预设算法对该应用程序实际使用的资源量再次计算得到该应用程序对应的第一阈值,并按照本次计算得到的第一阈值与前一次计算得到的第一阈值的差值为该应用程序增加资源,直至该应用程序实际使用的资源为 所述第二阈值为止。可选的,所述历史资源包括所述节点的中央处理器cpu资源、内存资源、磁盘空间资源、磁盘i/o资源、网络i/o资源和文件句柄数资源中的一种或多种资源。本发明实施例中提供的装置中的各个单元执行的动作与本发明实施例提供的方法一致,因此,本发明实施例中的装置的有益效果可参见本发明实施例中的方法中所述的有益效果,此处不再赘述。本发明实施例还提供了一种资源调度装置80,用于管理和调度集群资源,所述集群包括多个节点,与所述集群支持的计算框架适配的r个应用程序运行在所述多个节点上,r为正整数,所述装置80包括:接收器801、存储器802、处理器803和总线系统804;其中,接收器801、存储器802和处理器803之间是通过总线系统804耦合在一起的,其中存储器802可能包含随机存取存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。总线系统804,可以是工业标准体系结构(industrystandardarchitecture,简称isa)总线、外部设备互连(peripheralcomponent,简称pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线系统804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。需要说明的是,在一个实施例中,接收器801、存储器802和处理器803用于执行上述实施例所述的方法,具体的,接收器801用于执行基于图3所述的方法中的步骤301,处理器用于执行基于图3所述的方法中的步骤302和步骤303;接收器801还用于执行基于图4所述的方法中的步骤401,处理器还用于执行基于图4所述的方法中的步骤402至步骤405;接收器801还用于执行基于图5所述的方法中的步骤501,处理器还用于执行基于图5所述的方法中的步骤502至步骤507。本发明实施例中提供的装置中的各个器件执行的动作与本发明实施例提供的方法一致,因此,本发明实施例中的装置的有益效果可参见本发明实施例中的方法中所述的有益效果,此处不再赘述。其中,接收单元601可以为接收器801,获取单元602、调度单元603、调整单元604和计算单元605可以为处理器803。在硬件实现上,装置60中的接收单元和装置80中的接收器可以为射频(radiofrequency,简称rf)电路,装置60中的其他单元可以以硬件形式内嵌于或独立于装置的处理器中,也可以以软件形式存储于装置的存储器中,以便于处理器调用执行以上各个单元对应的操作,该处理器可以为cpu、特定集成电路(applicationspecificintegratedcircuit,简称asic)或者是被配置成实施本发明实施例的一个或多个集成电路。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1