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和内存资源的占用。第一方面,本专利技术实施例提供了一种数据广播方法,该方法应用于数据广播系统,该数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被至少一个任务执行器使用,该方法包括:控 ...
【技术保护点】
一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据,并设置第一数据节点上的其中一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述非主任务执行器为所述第一数据节点上除所述主任务执行器以外的其他任务执行器;所述非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。
【技术特征摘要】
1.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括:控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据,并设置第一数据节点上的其中一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述非主任务执行器为所述第一数据节点上除所述主任务执行器以外的其他任务执行器;所述非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述控制节点在所述非主任务执行器获取所述广播数据后,发送广播数据清除消息给所述主任务执行器;所述主任务执行器接收所述控制节点发送的广播数据清除消息,并清除所述目标堆外内存中存储的所述广播数据。3.根据权利要求1或2所述的方法,其特征在于,所述控制节点设置第一数据节点上的其中一个任务执行器为主任务执行器包括:所述控制节点根据所述第一数据节点中每个任务执行器的负载信息设置一个任务执行器为主任务执行器。4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述控制节点生成广播优化执行计划,所述广播优化执行计划包括主任务执行器计划和非主任务执行器计划;所述控制节点将所述广播优化执行计划发送至所述第一数据节点上的每个任务执行器;所述主任务执行器从所述广播优化执行计划中选择所述主任务执行器计划执行;所述非主任务执行器从所述广播优化执行计划中选择所述非主任务执行器计划执行。5.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:第一数据节点上的主任务执行器获取广播数据,将所述广播数据保存至目标堆外内存,并将所述目标堆外内存的地址发送至非主任务执行器,其中,所述目标堆外内存为所述第一数据节点上的堆外内存,所述主任务执行器为所述控制节点在所述第一数据节点上所指定的一个任务执行器,所述非主任务执行器为所述第一数据节点上除所述主任务执行器之外的其他任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述第一数据节点上的非主任务执行器根据所述目标堆外内存的地址,从所述目标堆外内存中获取所述广播数据。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:所述主任务执行器接收所述控制节点发送的广播数据清除消息;所述主任务执行器清除所述目标堆外内存中存储的所述广播数据。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:所述第一数据节点上的每个任务执行器接收所述控制节点发送的广播优化执行计划,所述广播优化执行计划包括主任务执行器计划和非主任务执行器计划;所述主任务执行器从所述广播优化执行计划中选择所述主任务执行器计划执行;所述非主任务执行器从所述广播优化执行计划中选择所述非主任务执行器计划执行。8.一种数据广播方法,其特征在于,所述方法应用于数据广播系统,所述数据广播系统包括控制节点和至少一个数据节点,每个数据节点上运行有至少一个任务执行器,每个数据节点上包括堆外内存,所述堆外内存存储的数据可被所述至少一个任务执行器使用,所述方法包括:所述控制节点生成广播数据;所述控制节点设置所述第一数据节点上的多个任务执行器中的一个任务执行器为主任务执行器,所述第一数据节点为所述至少一个数据节点中的一个数据节点;所述主任务执行器用于获取所述广播数据,并将所述广播数据保存至目标堆外内存,将所述目标堆外内存的地址发送至非主任务执行器,所述非任务执行器为所述第一数据节点上除所述主任务执行器之外的其他任务执行器,所述非主任务执行器用于根据所述目标堆外内存的地址,从所述目标堆外内存获取所述广播数据,所述目标堆外内存为所述第一数据节点上的堆外内存。9.根据权利要求8所述的方法,其特征在于,所述控制节点设置所述第一数据节点上的多个任务执行器中的一个任务执行器为主任务执行器包括:所述控制节点根据所述第一数据节点中每个任务执行器的负载信息设置一个任务执行器为主任务执行器。10.根据权利...
【专利技术属性】
技术研发人员:曹莉,吕倩楠,孙涛,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。