一种数据广播系统、数据广播方法及设备技术方案

技术编号:15299220 阅读:133 留言:0更新日期:2017-05-12 01:05
本发明专利技术实施例公开了一种数据广播系统、数据广播方法及设备,用于减少对系统网络IO和内存资源的占用。本发明专利技术实施例中的数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器;控制节点生成广播数据,对于每个数据节点,设置一个任务执行器为主任务执行器;主任务执行器获取广播数据,将广播数据保存至该数据节点上的堆外内存,将堆外内存的地址发送至该数据节点上的其他任务执行器;其他任务执行器从堆外内存的地址获取广播数据。本发明专利技术实施例中,在同一个数据节点上,只需要给主任务执行器分发一份广播数据,从而能够减少对系统网络IO和内存资源的占用。

Data broadcasting system, data broadcasting method and equipment

The embodiment of the invention discloses a data broadcasting system, a data broadcasting method and a device for reducing the occupation of the network, IO and memory resources of a system. The implementation of data broadcasting system in cases including the control node and at least one data node, each data node is running on the device to perform at least one task; the control node generates broadcast data for each data node, setting up a task executor based task executor; main task execution for obtaining broadcast data broadcasting save the data to the data node on the heap memory, other tasks will heap memory address data sent to the node on the actuator actuator; other tasks from the heap memory address for data broadcast abroad. In the embodiment of the invention, only one broadcast data is distributed to the main task executor on the same data node, thereby reducing the occupation of the system network, the IO and the memory resources.

【技术实现步骤摘要】

本专利技术涉及大数据领域,尤其涉及一种数据广播系统、数据广播方法及设备
技术介绍
随着大数据时代的到来,基于内存的并行计算平台Spark已经广泛成为业界处理海量数据的流行框架,与Hadoop相比,Spark更适合基于迭代的机器学习算法和图算法,加上Spark开源社区非常活跃,基于Spark并行框架的生态圈也日益丰富,例如Spark-SQL,Spark-Streaming等。Spark的运行模式有几种模式:例如:local、standalone、yarn、mesos等。弹性分布式数据集(英文:ResilientDistributedDataset,简称:RDD)是Spark的核心概念之一,表示只读、可分区、容错、可以全部或部分缓存到内存中、在多次并行计算间重用。当一个RDD需要操作另一个RDD的数据时,Spark支持将较小RDD广播到每个数据节点上,优化关联操作;现有技术中,Spark集群模式运行情况下,当广播一个变量时,会按照数据节点上启动任务执行器(executor)的个数N,分发广播变量N份到该数据节点上,导致系统网络IO(Input/Output)和内存资源多余占用,从而引发任务失败。
技术实现思路
本专利技术实施例提供了一种数据广播系统、数据广播方法及设备,能够减少对系统网络IO和内存资源的占用。第一方面,本专利技术实施例提供了一种数据广播方法,该方法应用于数据广播系统,该数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被至少一个任务执行器使用,该方法包括:控制节点生成广播数据,并设置第一数据节点上的其中一个任务执行器为主任务执行器,第一数据节点为至少一个数据节点中的一个数据节点;主任务执行器获取广播数据,并将广播数据保存至目标堆外内存,将目标堆外内存的地址发送至非主任务执行器,其中,目标堆外内存为第一数据节点上的堆外内存,非主任务执行器为第一数据节点上除主任务执行器以外的其他任务执行器;非主任务执行器根据目标堆外内存的地址,从目标堆外内存中获取广播数据。本专利技术实施例中,并不是每个数据节点上的每个任务执行器都从控制节点获取广播数据,而是由控制节点在每个数据节点上设置一个主任务执行器,仅由主任务执行器获取广播数据,将获取的广播数据存储至数据节点上的堆外内存中,该数据节点上的其他任务执行器从堆外内存中获取广播数据。因此,在同一个数据节点上,只需要分发一份广播数据,从而能够减少对系统网络IO和内存资源的占用。结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:控制节点在非主任务执行器获取广播数据后,发送广播数据清除消息给主任务执行器;主任务执行器接收控制节点发送的广播数据清除消息后,清除目标堆外内存中存储的广播数据。可选的,非主任务执行器在获取广播数据后,通知控制节点广播数据获取完成。因此,控制节点能获取各数据节点上的广播数据的获取情况,当数据节点上的各非主任务执行器获取到广播数据后,指示主任务执行器清除堆外内存中存储的广播数据,从而能够减少对系统内存资源的占用,提高内存利用率。结合第一方面,或第一方面的任一种实现方式,在第一方面的第二种可能的实现方式中,控制节点设置第一数据节点上的其中一个任务执行器为主任务执行器包括:控制节点根据第一数据节点中每个任务执行器的负载信息设置一个任务执行器为主任务执行器。如此,控制节点根据各任务执行器的负载情况选择主任务执行器,例如:选择一个负载较小的任务执行器为主任务执行器,从而能够使各任务执行器负载均衡。结合第一方面,或第一方面的任一种实现方式,在第一方面的第三种可能的实现方式中,控制节点设置第一数据节点上的其中一个任务执行器为主任务执行器包括:控制节点随机选择一个任务执行器,将该任务执行器设置为主任务执行器。结合第一方面,或第一方面的任一种实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:控制节点生成广播优化执行计划,广播优化执行计划包括主任务执行器计划和非主任务执行器计划;控制节点将广播优化执行计划发送至第一数据节点上的每个任务执行器;主任务执行器从广播优化执行计划中选择主任务执行器计划执行;非主任务执行器从广播优化执行计划中选择非主任务执行器计划执行。其中,主任务执行器计划包括第一方面中主任务执行器执行的步骤,非主任务执行器计划包括第一方面中非主任务执行器执行的步骤。第二方面,本专利技术实施例提供了一种数据广播方法,该方法应用于数据广播系统,数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,堆外内存存储的数据可被至少一个任务执行器使用,该方法包括:第一数据节点上的主任务执行器获取广播数据,将广播数据保存至目标堆外内存,并将目标堆外内存的地址发送至非主任务执行器,第一数据节点上的非主任务执行器根据目标堆外内存的地址,从目标堆外内存中获取广播数据。其中,目标堆外内存为第一数据节点上的堆外内存,主任务执行器为控制节点在第一数据节点上所指定的一个任务执行器,非主任务执行器为第一数据节点上除主任务执行器之外的其他任务执行器,第一数据节点为至少一个数据节点中的一个数据节点。本专利技术实施例中,每个数据节点上,只有主任务执行器去获取广播数据,将获取的广播数据存储至数据节点上的堆外内存中,其他任务执行器从堆外内存中获取广播数据。因此,在同一个数据节点上,只需要分发一份广播数据,从而能够减少对系统网络IO和内存资源的占用。结合第二方面,在第二方面的第一种可能的实现方式中,该方法还包括:主任务执行器接收控制节点发送的广播数据清除消息,之后,清除目标堆外内存中存储的广播数据。从而可以及时清理内存中缓存的数据,减少对内存的占用,提高内存利用率。结合第二方面,或第二方面的任一种可能的实现方式,在第二方面的第二种可能的实现方式中,该方法还包括:第一数据节点上的每个任务执行器接收控制节点发送的广播优化执行计划,广播优化执行计划包括主任务执行器计划和非主任务执行器计划;主任务执行器从广播优化执行计划中选择主任务执行器计划执行以执行第二方面及第二方面的第一种可能的实现方式中的步骤;非主任务执行器从广播优化执行计划中选择非主任务执行器计划执行以执行第二方面中所描述的步骤。第三方面,本专利技术实施例提供了一种数据广播方法,该方法应用于数据广播系统,数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,堆外内存存储的数据可被至少一个任务执行器使用,该方法包括:控制节点生成广播数据;控制节点设置第一数据节点上的多个任务执行器中的一个任务执行器为主任务执行器,第一数据节点为至少一个数据节点中的一个数据节点;主任务执行器用于获取广播数据,并将广播数据保存至目标堆外内存,将目标堆外内存的地址发送至非主任务执行器,非任务执行器为第一数据节点上除主任务执行器之外的其他任务执行器,非主任务执行器用于根据目标堆外内存的地址,从目标堆外内存获取广播数据,目标堆外内存为第一数据节点上的堆外内存。本专利技术实施例中,是由控制节点在每个数据节点上设置一个主任务执行器,仅由主任务执行器获取广播数据。因此,在本文档来自技高网...
一种数据广播系统、数据广播方法及设备

【技术保护点】
一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据,并设置第一数据节点上的其中一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述非主任务执行器为所述第一数据节点上除所述主任务执行器以外的其他任务执行器;所述非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。

【技术特征摘要】
1.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据,并设置第一数据节点上的其中一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述非主任务执行器为所述第一数据节点上除所述主任务执行器以外的其他任务执行器;所述非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述控制节点在所述非主任务执行器获取所述广播数据后,发送广播数据清除消息给所述主任务执行器;所述主任务执行器接收所述控制节点发送的广播数据清除消息,并清除所述目标堆外内存中存储的所述广播数据。3.根据权利要求1或2所述的方法,其特征在于,所述控制节点设置第一数据节点上的其中一个任务执行器为主任务执行器包括:所述控制节点根据所述第一数据节点中每个任务执行器的负载信息设置一个任务执行器为主任务执行器。4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述控制节点生成广播优化执行计划,所述广播优化执行计划包括主任务执行器计划和非主任务执行器计划;所述控制节点将所述广播优化执行计划发送至所述第一数据节点上的每个任务执行器;所述主任务执行器从所述广播优化执行计划中选择所述主任务执行器计划执行;所述非主任务执行器从所述广播优化执行计划中选择所述非主任务执行器计划执行。5.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:第一数据节点上的主任务执行器获取广播数据,将所述广播数据保存至目标堆外内存,并将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述主任务执行器为所述控制节点在所述第一数据节点上所指定的一个任务执行器,所述非主任务执行器为所述第一数据节点上除所述主任务执行器之外的其他任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述第一数据节点上的非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:所述主任务执行器接收所述控制节点发送的广播数据清除消息;所述主任务执行器清除所述目标堆外内存中存储的所述广播数据。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:所述第一数据节点上的每个任务执行器接收所述控制节点发送的广播优化执行计划,所述广播优化执行计划包括主任务执行器计划和非主任务执行器计划;所述主任务执行器从所述广播优化执行计划中选择所述主任务执行器计划执行;所述非主任务执行器从所述广播优化执行计划中选择所述非主任务执行器计划执行。8.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据;所述控制节点设置所述第一数据节点上的多个任务执行器中的一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器用于获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,所述非任务执行器为所述第一数据节点上除所述主任务执行器之外的其他任务执行器,所述非主任务执行器用于根据所述目标堆外内存的地址,从所述目标堆外内存获取所述广播数据,所述目标堆外内存为所述第一数据节点上的堆外内存。9.根据权利要求8所述的方法,其特征在于,所述控制节点设置所述第一数据节点上的多个任务执行器中的一个任务执行器为主任务执行器包括:所述控制节点根据所述第一数据节点中每个任务执行器的负载信息设置一个任务执行器为主任务执行器。10.根据权利...

【专利技术属性】
技术研发人员:曹莉吕倩楠孙涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1