YARN资源分配方法及装置制造方法及图纸

技术编号:19009006 阅读:21 留言:0更新日期:2018-09-22 08:54
本公开涉及一种YARN资源分配方法及装置,所述方法应用于服务器中,所述方法包括:Thrift server启动;Thrift server接收至少一个客户端发送的连接请求;对于任一客户端:Thrift server根据连接请求启动与客户端对应的Spark进程,以使Spark进程向YARN请求资源;在Spark进程向YARN请求资源成功后,Thrift server接收Spark进程的注册请求;在Spark进程注册成功后,Thrift server通知所述客户端连接成功。实现了每个客户端在YARN中都有与之对应的资源队列,可以提高各客户端的任务执行效率。

YARN resource allocation method and device

The disclosure relates to a YARN resource allocation method and apparatus, which are applied to a server. The method includes: Thrift server starts; Thrift server receives a connection request from at least one client; and for any client, Thrift server starts a Spark process corresponding to the client according to the connection request. To enable the Spark process to request resources from the YARN, Thrift server receives a registration request for the Spark process after the Spark process successfully requests resources from the YARN, and Thrift server notifies the client that the connection is successful after the Spark process registers successfully. It implements that each client has a corresponding resource queue in YARN, which can improve the task execution efficiency of each client.

【技术实现步骤摘要】
YARN资源分配方法及装置
本公开涉及计算机
,尤其涉及一种YARN资源分配方法及装置。
技术介绍
在传统的YARN资源的分配方法中,YARN是以层级队列的方式组织分配资源的,有利于资源在不同队列间的分配和共享,可以提高集群资源的利用率。当客户端通过Thriftserver向YARN请求资源时,利用Thriftserver启动时启动的Spark进程向YARN申请资源。不同的客户端申请的资源都在一个资源队列中,无法根据客户端区分不同的资源队列,导致客户端执行任务时等待资源的时间较长。
技术实现思路
有鉴于此,本公开提出了一种YARN资源分配方法及装置,用以解决YARN资源浪费的问题。根据本公开的一方面,提供了一种YARN资源分配方法,所述方法应用于服务器中,所述方法包括:跨语言的服务部署框架Thriftserver启动;Thriftserver接收至少一个客户端发送的连接请求;对于任一所述客户端:所述Thriftserver根据所述连接请求启动与所述客户端对应的Spark进程,以使所述Spark进程向YARN请求资源;在所述Spark进程向YARN请求资源成功后,所述Thriftserver接收所述Spark进程的注册请求;在所述Spark进程注册成功后,所述Thriftserver通知所述客户端连接成功。根据本公开的另一方面,提供了一种YARN资源分配装置,所述装置包括:启动模块,用于启动跨语言的服务部署框架Thriftserver;连接请求接收模块,用于接收至少一个客户端发送的连接请求;Spark进程启动模块,用于对于任一所述客户端:根据所述连接请求启动与所述客户端对应的Spark进程,以使所述Spark进程向YARN请求资源;注册请求消息接收模块,用于在所述Spark进程向YARN请求资源成功后,接收所述Spark进程的注册请求;连接成功消息发送模块,用于在所述Spark进程注册成功后,通知所述客户端连接成功。在本公开实施例中,Thriftserver根据客户端发送的连接请求,为客户端启动与之对应的Spark进程。每个客户端在YARN中都有与之对应的资源队列,提高了客户端任务的执行效率,也避免了没有客户端接入时YARN的资源浪费。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开一实施例的YARN资源分配方法的流程图;图2示出根据本公开一实施例的YARN资源分配方法的流程图;图3示出根据本公开一实施例的YARN资源分配方法的流程图;图4示出根据本公开一实施例的YARN资源分配方法的流程图;图5示出根据本公开一实施例的YARN资源分配方法的流程图;图6示出根据本公开一实施例的YARN资源分配方法中步骤S90的流程图;图7示出根据本公开一实施例的YARN资源分配方法的系统架构框图;图8示出根据本公开一实施例的YARN资源分配装置的框图。具体实施方式以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。为了更加清楚的说明书本公开,下面对以下几个概念进行介绍。YARN是集群的资源管理系统,在YARN中是以层级队列方式组织资源的,这种组织方式有利于资源在不同队列间分配和共享,进而提高集群资源利用率。在SparkThriftServer的架构中,ThriftServer提供接口,用户可以通过接口连接ThriftServer来访问Spark进程。ThriftServer在启动时,会启动一个Spark进程,不同的客户端共同分享Spark进程的资源,不同的客户端之间可以共享数据。由于SparkThriftServer启动时启动了Spark进程,Spark进程使用的是YARN的默认资源队列。当多个客户端通过JDBC接口连接SparkThriftServer时,各客户端提交的包括任务信息的SQL语句都在Spark进程对应的资源队列中执行,各客户端的任务需要排队等待。图1示出根据本公开一实施例的YARN资源分配方法的流程图,所述方法应用于服务器中,如图1所示,所述YARN资源分配方法包括:步骤S10,跨语言的服务部署框架Thriftserver启动;步骤S20,Thriftserver接收至少一个客户端发送的连接请求;对于任一所述客户端:步骤S30,所述Thriftserver根据所述连接请求启动与所述客户端对应的Spark进程,以使所述Spark进程向YARN请求资源;步骤S40,在所述Spark进程向YARN请求资源成功后,所述Thriftserver接收所述Spark进程的注册请求;步骤S50,在所述Spark进程注册成功后,所述Thriftserver通知所述客户端连接成功。在一种可能的实现方式中,客户端可以包括安装在客户端硬件载体上的客户端进程。当Thriftserver接收到客户端发送的连接请求时,Thriftserver可以为发送连接请求的客户端启动对应的Spark进程。Thriftserver可以接收到多个客户端发送的连接请求。Thriftserver可以根据各客户端发送的连接请求,启动与各客户端一一对应的Spark进程。在一种可能的实现方式中,Spark进程可以设置在Thriftserver所在的服务器中,也可以设置在Thriftserver所在的服务器之外的服务器中。Spark进程在启动后,向YARN请求分配资源队列,当YARN中的资源队列分配成功后,Spark进程启动成功。YARN可以为每个Spark进程分配单独的资源队列。在向YARN请求资源队列成功后,Spark进程可以向Thriftserver发送注册请求。当Spark进程注册成功时,Thriftserver向所述客户端发送连接成功消息,客户端与Thriftserver连接成功。在本实施例中,Thriftserver根据客户端发送的连接请求,为客户端启动与之对应的Spark进程。Spark进程向YARN请求分配与Spark进程对应的资源队列。在资源队列分配成功,且Spark进程注册成功后,客户端连接ThriftServer成功。每个客户端在YARN中都有与之对应的资源队列,可以提高各客户端的任务执行效率。同时避免了没有客户端接入时YARN中的资源队列浪费。在一种可能的实现方式中,在所述Thriftserver启动时,提供Java数据库连接JDBC接口。所述Thriftserver通过所述JDBC接口接收客户端发送的连接请求。JDBC接口是一种用于执行SQL语句的Java应用程序接口,可以为多种关系数据库提供统一访问,JDBC接口由一组用Java语言编写的类和接口组成。Thriftserver启动时,可以不启动Spark进程,也不通过Spark进程向YARN请求资源队列。Thriftserver启动时,可以提供JD本文档来自技高网...
YARN资源分配方法及装置

【技术保护点】
1.一种另一种资源协调者YARN资源分配方法,其特征在于,所述方法包括:跨语言的服务部署框架Thrift server启动;Thrift server接收至少一个客户端发送的连接请求;对于任一所述客户端:所述Thrift server根据所述连接请求启动与所述客户端对应的Spark进程,以使所述Spark进程向YARN请求资源;在所述Spark进程向YARN请求资源成功后,所述Thrift server接收所述Spark进程的注册请求;在所述Spark进程注册成功后,所述Thrift server通知所述客户端连接成功。

【技术特征摘要】
1.一种另一种资源协调者YARN资源分配方法,其特征在于,所述方法包括:跨语言的服务部署框架Thriftserver启动;Thriftserver接收至少一个客户端发送的连接请求;对于任一所述客户端:所述Thriftserver根据所述连接请求启动与所述客户端对应的Spark进程,以使所述Spark进程向YARN请求资源;在所述Spark进程向YARN请求资源成功后,所述Thriftserver接收所述Spark进程的注册请求;在所述Spark进程注册成功后,所述Thriftserver通知所述客户端连接成功。2.根据权利要求1所述的方法,其特征在于,所述Thriftserver根据所述连接请求启动与所述客户端对应的Spark进程,包括:所述Thriftserver根据所述连接请求调用SparkContext接口,通过启动命令启动与所述客户端对应的Spark进程。3.根据权利要求2所述的方法,其特征在于,所述启动命令包括客户端标识和Thriftserver的通信地址,以使所述Spark进程启动后获取并记录所述客户端标识和Thriftserver的通信地址;所述Thriftserver接收所述Spark进程的注册请求,包括:所述Thriftserver接收所述Spark进程根据所述Thriftserver的通信地址发送的注册请求,所述注册请求中携带所述客户端标识。4.根据权利要求3所述的方法,其特征在于,在所述Spark进程注册成功后,所述方法还包括:所述Thriftserver根据所述客户端标识建立所述客户端与所述Spark进程的映射关系。5.根据权利要求4所述的方法,其特征在于,所述客户端连接成功后,所述方法还包括:所述Thriftserver接收所述客户端发送的任务;所述Thriftserver根据客户端与Spark进程之间的映射关系,将所述任务发送至与所述客户端对应的Spark进程;所述Thriftserver向所述Spark进程获取任务的执行结果,并将所述执行结果发送至所述客户端。6.根据权利要求5所述的方法,其特征在于,所述Thriftserver向所述Spark进程获取任务的执行结果,并将所述执行结果发送至所述客户端,包括:所述Thriftserver向所述Spark进程获取所述任务的...

【专利技术属性】
技术研发人员:户蕾蕾史宁宁
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1