基于rpc协议的集群资源统一管理系统的制作方法

文档序号:6545667阅读:161来源:国知局
基于rpc协议的集群资源统一管理系统的制作方法
【专利摘要】本发明涉及一种基于RPC协议的集群资源统一管理系统,其将集群系统划分一个主节点和若干个从节点,在主节点部署一个全局的资源管理服务,在从节点部署节点管理服务以及针对不同应用程序部署特定的应用程序主控服务;从节点上的资源被封装成一个个资源容器。资源管理服务负责整个系统的资源管理和分配。节点管理服务负责每个节点上的资源容器和任务的管理。应用程序主控服务负责单个应用程序的管理。本系统总体上是主/从架构的分布式系统。本发明为其他分布式应用程序提供统一服务接口,将原本各自独立运行及分配集群资源的多个分布式应用进行整合,共享集群的软硬件资源,提高资源的利用率,降低运维成本,实现数据共享,增强扩展性。
【专利说明】基于RPC协议的集群资源统一管理系统
【技术领域】
[0001]本发明涉及一种基于RPC协议的集群资源统一管理系统,属于集群资源管理【技术领域】。
【背景技术】
[0002]目前,有多种分布式应用程序资源管理系统,这类资源管理系统能够针对各自系统的特点对作业所需资源进行管理和调度。例如,Apache开源软件基金会的开源项目Hadoop只支持MapReduce作业,新的调度策略难以嵌入其中央式调度器,扩展性较差。同时,中央式调度器可能会发生单点故障而导致整个系统的失效。又如,Google公司通过对中央式调度器进行优化,将每种调度策略放到单独的模块中,不同的作业由不同的调度策略进行调度,这种方案能适应多种类型的分布式应用程序,但是由于所有调度策略仍然在一个集中式的组件中,整个系统的扩展性没有变得更好。

【发明内容】

[0003]本发明的目的是为其他分布式应用程序提供统一服务接口,将原本各自独立运行及分配集群资源的多个分布式应用进行整合,共享集群的软硬件资源,提高资源的利用率,降低运维成本,实现数据共享,增强扩展性。
[0004]按照本发明提供的技术方案,所述基于RPC协议的集群资源统一管理系统,其将集群系统划分一个主节点和若干个从节点,在主节点部署一个全局的资源管理服务,在从节点部署节点管理服务以及针对不同应用程序部署特定的应用程序主控服务;从节点上的资源被封装成一个个资源容器;
所述资源管理服务负责集群中所有资源的统一管理和分配,它接受来自各个节点管理服务的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序主控服务;
所述节点管理服务负责每个节点上的资源和任务管理,一方面,它会定时地向资源管理服务汇报本节点上的资源使用情况和各个资源容器的运行状态;另一方面,它接收并处理来自应用程序主控服务的资源容器启动/停止等各种请求;
所述应用程序主控服务负责单个应用程序的管理,包括与资源管理服务协商以获取资源;将得到的任务进一步分配给内部的任务;与节点管理服务通信以启动/停止任务;监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
[0005]所述每个资源管理服务由调度器和应用程序管理器两个组件构成双层调度模式,调度器保留一个经过简化的中央式调度器,但是调度策略下放到各个应用程序管理器完成;调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序;应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动应用程序主控服务、监控应用程序主控服务运行状态并在失败时重新启动它等。
[0006]所述节点管理服务管理集群中的单个节点,负责与资源管理服务保持通信、管理资源容器的生命周期、监控每个资源容器的资源使用(内存、CPU等)情况、追踪节点健康状况。
[0007]所述应用程序主控服务除了可以与应用程序进行交互控制应用程序内部任务,应当还可以与资源管理服务和节点管理服务进行交互为应用程序任务申请资源并进行监控。
[0008]本发明的优点:资源管理服务能够对集群的资源进行全局且统一的管理和分配,其双层调度模式能有效地避免中央式调度器的不足,节点管理服务能够定时地向资源管理服务汇报本节点上的资源使用情况和各个资源容器的运行状态,应用程序主控服务能够通过统一的接口为不同的应用程序分配集群资源和监控任务状态,集群资源统一管理系统为其他分布式应用程序提供统一服务接口,将原本各自独立运行及分配集群资源的多个分布式应用进行整合,共享集群的软硬件资源,提高资源的利用率,降低运维成本,实现数据共享,增强扩展性。
【专利附图】

【附图说明】
[0009]图1为本发明的系统结构图。
[0010]图2为本发明的工作流程示意图。
【具体实施方式】
[0011]下面结合具体附图和实施例对本发明作进一步说明。
[0012]为了能够让多个分布式应用程序共享集群的软硬件资源,提高资源的利用率,本发明将集群系统划分一个主节点和若干个从节点,如图1所示:在主节点部署一个全局的资源管理服务;在从节点部署节点管理服务以及针对不同应用程序部署特定的应用程序主控服务;从节点上的资源被封装成一个个资源容器;资源管理服务负责集群中所有资源的统一管理和分配,它接受来自各个节点管理服务的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序主控服务;节点管理服务负责每个节点上的资源和任务管理,一方面,它会定时地向资源管理服务汇报本节点上的资源使用情况和各个资源容器的运行状态;另一方面,它接收并处理来自应用程序主控服务的资源容器启动/停止等各种请求;应用程序主控服务负责单个应用程序的管理,包括与资源管理服务协商以获取资源;将得到的任务进一步分配给内部的任务;与节点管理服务通信以启动/停止任务;监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
[0013]具体的,每个资源管理服务由调度器和应用程序管理器两个组件构成双层调度模式,调度器保留一个经过简化的中央式调度器,但是调度策略下放到各个应用程序管理器完成;调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序;应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动应用程序主控服务、监控应用程序主控服务运行状态并在失败时重新启动它等。
[0014]节点管理服务管理集群中的单个节点,负责与资源管理服务保持通信、管理资源容器的生命周期、监控每个资源容器的资源使用(内存、CPU等)情况、追踪节点健康状况。
[0015]应用程序主控服务除了可以与应用程序进行交互控制应用程序内部任务,还需要与资源管理服务和节点管理服务交互,通过与资源管理服务交互,应用程序主控服务可获得任务计算所需的资源;通过与节点管理服务交互,应用程序主控服务可启动计算任务,并监控它直到运行完成。例如,应用程序主控服务与资源管理服务之间的交互涉及三个步骤:首先,应用程序主控服务启动时通过RPC函数向资源管理服务注册,一旦应用程序主控服务注册成功,资源管理服务会为它返回相关信息;然后,应用程序主控服务通过RPC函数向资源管理服务申请资源并执行应用程序;最后,应用程序主控服务通过RPC函数告诉资源管理服务应用程序执行完毕,并退出。
[0016]集群资源统一管理系统可为多种不同类型的分布式应用程序提供服务,尽管这些应用程序作用不同,但其运行在集群资源统一管理系统上的流程是大致相同的,如图2,具体分为以下几个步骤:
步骤1:用户向集群资源统一管理系统中提交应用程序,其中包括应用程序主控服务、启动应用程序主控服务的命令、用户程序等。
[0017]步骤2:资源管理服务为该应用程序分配第一个资源容器,并与对应的节点管理服务通信,要求它在这个资源容器中启动应用程序主控服务。
[0018]步骤3:应用程序主控服务首先向资源管理服务注册,这样用户可以直接通过资源管理服务查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4?7。
[0019]步骤4:应用程序主控服务采用轮询的方式通过RPC协议向资源管理服务申请和领取资源。
[0020]步骤5:—旦应用程序主控服务申请到资源后,便与对应的节点管理服务通信,要求它启动任务。
[0021]步骤6:节点管理服务为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
[0022]步骤7:各个任务通过某个RPC协议向应用程序主控服务汇报自己的状态和进度,以让应用程序主控服务随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
[0023]在应用程序运行过程中,用户可随时通过RPC向应用程序主控服务查询应用程序的当前运行状态。
[0024]步骤8:应用程序运行完成后,应用程序主控服务向资源管理服务注销并关闭自己。
[0025]本发明所述的集群资源统一管理系统让多种分布式应用程序的作业都运行在一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,使得集群中的资源得到更加充分的利用,降低运维成本,实现数据共享;源管理服务由调度器和应用程序管理器两个组件构成双层调度模式,调度器保留一个经过简化的中央式调度器,但是调度策略下放到各个应用程序管理器完成,这种双层调度模式能有效地避免中央式调度器存在的单点故障的不足,从而大大增强了系统的扩展性。
【权利要求】
1.基于RPC协议的集群资源统一管理系统,其特征是:将集群系统划分一个主节点和若干个从节点,在主节点部署一个全局的资源管理服务,在从节点部署节点管理服务以及针对不同应用程序部署特定的应用程序主控服务;从节点上的资源被封装成一个个资源容器; 所述资源管理服务负责集群中所有资源的统一管理和分配,它接受来自各个节点管理服务的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序主控服务; 所述节点管理服务负责每个节点上的资源和任务管理,一方面,定时地向资源管理服务汇报本节点上的资源使用情况和各个资源容器的运行状态;另一方面,接收并处理来自应用程序主控服务的包括资源容器启动、停止在内的各种请求; 所述应用程序主控服务负责单个应用程序的管理,包括:与资源管理服务协商以获取资源,将得到的任务进一步分配给内部的任务,与节点管理服务通信以启动或停止任务,监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
2.根据权利要求1所述的基于RPC协议的集群资源统一管理系统,其特征是:所述每个资源管理服务由调度器和应用程序管理器两个组件构成双层调度模式,调度器保留一个经过简化的中央式调度器,但是调度策略下放到各个应用程序管理器完成;调度器根据容量、队列的限制条件将系统中的资源分配给各个正在运行的应用程序;应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动应用程序主控服务、监控应用程序主控服务运行状态并在失败时重新启动它。
3.根据权利要求1所述的基于RPC协议的集群资源统一管理系统,其特征是:所述节点管理服务管理集群中的单个节点,负责与资源管理服务保持通信、管理资源容器的生命周期、监控每个资源容器的资源使用情况、追踪节点健康状况。
4.根据权利要求1所述的基于RPC协议的集群资源统一管理系统,其特征是:所述应用程序主控服务能够与应用程序进行交互控制应用程序内部任务,并能够与资源管理服务和节点管理服务进行交互为应用程序任务申请资源并进行监控。
【文档编号】G06F9/54GK103944769SQ201410187233
【公开日】2014年7月23日 申请日期:2014年5月5日 优先权日:2014年5月5日
【发明者】吴可嘉, 陈曙东 申请人:江苏物联网研究发展中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1