一种数据处理方法及装置制造方法及图纸

技术编号:18398187 阅读:27 留言:0更新日期:2018-07-08 19:12
本发明专利技术提供一种数据处理方法及装置,所述方法包括:启动完成后,根据共享内存层中保存的Spark Context初始化数据向资源管理者RM发送资源分配请求;接收所述RM响应所述资源分配请求分配的容器,并分别指示各容器所属节点的节点管理者NM在所分配的容器中启动执行器;为各执行器分配任务,并对所述执行器中执行的任务进行监控,将任务执行得到的数据保存至所述共享内存层。应用本发明专利技术可以提高Spark on YARN集群的处理性能,避免性能瓶颈的产生,降低对运行Spark Driver的服务器的硬件配置的需求。

【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及大数据
,尤其涉及一种数据处理方法及装置。
技术介绍
Spark是一种基于内存并行计算框架的分布式批处理系统和分析挖掘引擎,通过将大量数据集计算任务分配到多台计算机上,提供高效内存计算。Spark应用程序(Application)运行在SparkDriver(驱动)上。SparkDrive启动时,会创建SparkContext(上下文),并配置SparkContext,进而初始化SparkContext。完成SparkContext初始化后,SparkDrive会将应用程序转化为task,并向clustermanager(集群管理者)(如YARN(YetAnotherResourceNegotiator,另一种资源协调者))申请资源运行Executor(执行者),按照预设策略将task分配给各Executor执行。其中,各Executor均会向SparkDrive注册,进而SparkDrive可以监控Executor中task的执行情况。目前,以YRAN作为clustermanager运行的Spark(可以称为SparkOnYarn)主要包括YARN-Client(客户端)和YARN-Cluster两种模式。YARN-cluster模式下作业执行流程:1、Sparkclient(或称为SparkYARNclient)向ResourceManager(资源管理者,简称RM)提交应用程序;2、RM收到应用程序后,在集群中选择一个NodeManager(节点管理者,简称NM),为该应用程序分配一个Container(容器),要求NM在这个Container中启动应用程序的ApplicationMaster(AM);3、NM接收到RM的分配指令,在指定的Container中启动AM;AM启动后,会启动SparkDriver;4、SparkDriver启动时,会进行SparkContext的初始化;5、SparkDriver向RM注册,并采用轮询的方式通过RPC(RemoteProcedureCall,远程过程调用)协议为各个task申请资源(Container);6、SparkDriver申请到资源(即Container)后,在对应的Container中启动Executor;其中,Executor启动后,可以向SparkDriver注册;7、SparkDriver分配task给Executor执行;Executor运行task,并向SparkDriver汇报运行的状态和进度;8、应用程序运行完成后,AM向RM申请注销并关闭。然而实现发现,在现有YARN-cluster实现方案中,仅有一个SparkDriver处于工作状态,导致SparkOnYARN集群处理性能较低,容易出现性能瓶颈。
技术实现思路
本专利技术提供一种数据处理方法及装置,以解决现有YARN-Cluster模式的SparkonYARN集群处理性能较差,且容易出现性能瓶颈的问题。根据本专利技术实施例的第一方面,提供一种数据处理方法,应用于包括多于一个SparkDriver的YARN-Cluster模式的SparkonYARN集群中的任一SparkDriver,所述方法包括:启动完成后,根据共享内存层中保存的SparkContext初始化数据向资源管理者RM发送资源分配请求;接收所述RM响应所述资源分配请求分配的容器,并分别指示各容器所属节点的节点管理者NM在所分配的容器中启动执行器;为各执行器分配任务,并对所述执行器中执行的任务进行监控,将任务执行得到的数据保存至所述共享内存层。根据本专利技术实施例的第二方面,提供一种数据处理方法,应用于包括多于一个SparkDriver的YARN-Cluster模式的SparkonYARN集群中的RM,所述方法包括:接收Spark客户端提交的应用程序;为所述应用程序分配用于启动AM的容器,并指示该容器所属节点的节点管理者NM在该容器中启动AM;接收所述AM发送的资源分配请求,并响应该资源分配请求为所述AM分配多于一个的容器,以使所述AM分别指示各容器所属节点的NM在各容器中启动Spark驱动Driver;接收每个SparkDriver发送的资源分配请求,并响应该资源分配请求为每个所述SparkDriver分配容器;其中,所述资源分配请求由所述每个SparkDriver在启动后根据共享内存层中的SparkContext初始化数据向所述RM发起。根据本专利技术实施例的第三方面,提供一种数据处理装置,应用于包括多于一个SparkDriver的YARN-Cluster模式的SparkonYARN集群中的任一SparkDriver,所述装置包括:发送单元,用于当所述SparkDriver启动完成后,根据共享内存层中保存的SparkContext初始化数据向资源管理者RM发送资源分配请求;接收单元,用于接收所述RM响应所述资源分配请求分配的容器;处理单元,用于分别指示各容器所属节点的节点管理者NM在所分配的容器中启动执行器;所述处理单元,还用于为各执行器分配任务,并对所述执行器中执行的任务进行监控,将任务执行得到的数据保存至所述共享内存层。根据本专利技术实施例的第四三方面,提供一种数据处理装置,应用于包括多于一个SparkDriver的YARN-Cluster模式的SparkonYARN集群中的RM,所述装置包括:接收单元,用于接收Spark客户端提交的应用程序;处理单元,用于为所述应用程序分配用于启动AM的容器,并指示该容器所属节点的节点管理者NM在该容器中启动AM;所述接收单元,用于接收所述AM发送的资源分配请求;所述处理单元,还用于响应该资源分配请求为所述AM分配多于一个的容器,以使所述AM分别指示各容器所属节点的NM在各容器中启动Spark驱动Driver;所述接收单元,还用于接收每个SparkDriver发送的资源分配请求;所述处理单元,还用于响应该资源分配请求为每个所述SparkDriver分配容器;其中,所述资源分配请求由所述每个SparkDriver在启动后根据共享内存层中的SparkContext初始化数据向所述RM发起。应用本专利技术实施例,通过使用共享内存层存储数据,SparkDriver启动完成后,根据共享内存层中保存的SparkContext初始化数据向RM发送资源分配请求,当接收到RM响应所述资源分配请求分配的容器,分别指示各容器所属节点的NM在所分配的容器中启动执行器,并分别为各执行器分配任务,进而,对执行器中执行的任务进行监控,并将任务执行得到的数据保存至共享内存层,提高了SparkonYARN集群的处理性能,避免了性能瓶颈的产生,降低了对运行SparkDriver的服务器的硬件配置的需求。附图说明图1是本专利技术实施例提供的一种SparkonYARN集群的架构示意图;图2是本专利技术实施例提供的一种数据处理方法的流程示意图;图3是本专利技术实施例提供的一种数据处理方法的流程示意图;图4是本专利技术实施例提供的一种数据处理装置的结构示意图;图5是本专利技术实施例提供的另一种数据处理装置的结构示意图;图6是本专利技术实施例提供的另一种数据处理装置的结构示意图;图7是本专利技术实施例提供的一种数据处本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,其特征在于,应用于包括多于一个Spark驱动Driver的另一种资源协调者YARN‑集群Cluster模式的Spark on YARN集群中的任一Spark Driver,所述方法包括:启动完成后,根据共享内存层中保存的Spark Context初始化数据向资源管理者RM发送资源分配请求;接收所述RM响应所述资源分配请求分配的容器,并分别指示各容器所属节点的节点管理者NM在所分配的容器中启动执行器;为各执行器分配任务,并对所述执行器中执行的任务进行监控,将任务执行得到的数据保存至所述共享内存层。

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于包括多于一个Spark驱动Driver的另一种资源协调者YARN-集群Cluster模式的SparkonYARN集群中的任一SparkDriver,所述方法包括:启动完成后,根据共享内存层中保存的SparkContext初始化数据向资源管理者RM发送资源分配请求;接收所述RM响应所述资源分配请求分配的容器,并分别指示各容器所属节点的节点管理者NM在所分配的容器中启动执行器;为各执行器分配任务,并对所述执行器中执行的任务进行监控,将任务执行得到的数据保存至所述共享内存层。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述SparkDriver为首个启动的SparkDriver时,进行Spark上下文Context初始化,将SparkContext初始化数据保存至共享内存层。3.根据权利要求2所述的方法,其特征在于,确定是否为首个启动的SparkDriver,包括:启动后,且确定共享内存层中不存在SparkContext初始化数据时,确定自身为首个启动的SparkDriver;启动后,且确定共享内存层中存在SparkContext初始化数据时,确定自身为非首个启动的SparkDriver。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:启动时,向Zookeeper注册,以使所述Zookeeper在确定存在SparkDriver异常时,向AM发送通知报文,由AM按照预设策略通知其它已启动的SparkDriver或启动新的SparkDriver替代该异常SparkDriver进行任务分配和监控。5.一种数据处理方法,其特征在于,应用于包括多于一个Spark驱动Driver的另一种资源协调者YARN-集群Cluster模式的SparkonYARN集群中的资源管理者RM,所述方法包括:接收Spark客户端提交的应用程序;为所述应用程序分配用于启动AM的容器,并指示该容器所属节点的节点管理者NM在该容器中启动AM;接收所述AM发送的资源分配请求,并响应该资源分配请求为所述AM分配多于一个的容器,以使所述AM分别指示各容器所属节点的NM在各容器中启动Spark驱动Driver;接收每个SparkDriver发送的资源分配请求,并响应该资源分配请求为每个所述SparkDriver分配容器;其中,所述资源分配请求由所述每个SparkDriver在启动后根据共享内存层中的SparkContext初始化数据向所述RM发起。6.根据权利要求5所述的方法,其特征在于,所述应用程序包括AM以及启动AM的命令;所述为所述应用程序分配用于启动AM的容器,并指示该容器所属节点的节点管理者NM在该容器中启动AM,包括:为所述应用程序分配一个用于启动AM的容器,并向容器所属节点的NM发送容器启动命令,以使该NM根据该容器启动命令中携带的容器的令牌对容器进行合法性校验,并当校验通过后,启动容器;将所述AM和启动AM的命令发送给该NM,以使该NM该AM和启动AM的命令在所启动的容器中启动AM。7.根据权利要求5所述的方法,其特征在于,所述响应该资源分配请求为所述SparkDriver分配容器,包括:根据该资源分配请求中携带的执行器的数量,为所述SparkDriver分配等量的容器。8.一种数据处理装置,其特征在于,应用于包括多于一个Spark驱动Driver的另一种资源协调者YARN-集群Cluster模...

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

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

1