CN114116790A - 数据处理的方法及装置 - Google Patents

数据处理的方法及装置 Download PDF

Info

Publication number
CN114116790A
CN114116790A CN202010881197.XA CN202010881197A CN114116790A CN 114116790 A CN114116790 A CN 114116790A CN 202010881197 A CN202010881197 A CN 202010881197A CN 114116790 A CN114116790 A CN 114116790A
Authority
CN
China
Prior art keywords
data
node
task
job
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010881197.XA
Other languages
English (en)
Inventor
龚陈继
杨仲凯
崔宝龙
翁凯玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010881197.XA priority Critical patent/CN114116790A/zh
Publication of CN114116790A publication Critical patent/CN114116790A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种数据处理的方法及装置,用以解决分析耗时长、效率低的问题。主节点在选择执行各个任务的节点时,既结合节点的磁盘的数据分布情况,还结合各个节点缓存中的数据分布情况,来确定执行各个任务的节点。执行任务的节点复用缓存中的数据,从而降低从磁盘读取数据导致的IO开销,并且从缓存读取数据的时延小于从磁盘读取数据的时延,缩短节点执行任务过程中读取数据的耗时,进而提高数据分析效率。另外,缓存数据的利用率较高,防止重复的从磁盘读取数据以及由于频繁的更新读取的数据导致的缓存空间不足,而导致的数据落盘行为。

Description

数据处理的方法及装置
技术领域
本申请涉及信息技术领域,尤其涉及数据处理的方法及装置。
背景技术
大数据分析是通过海量数据分析,挖掘数据的内在关联,为产业提供分析依据。比如,通过分布式并行、并发处理实现海量数据的分析。大数据分析任务需要处理该任务的所有相关数据,数据量庞大且耗时长,因此分析系统在接收任务后,不会直接执行,而是解析任务内容制定一个执行计划保障大数据的分析性能,而非简单直接读取数据处理。
通过任务的关联数据在磁盘的分布情况确定任务的执行计划,但是,由于系统存储的数据量庞大,获取关联数据在磁盘的分布情况所占用的输入输出(input/output,I/O)开销大且影响正常业务处理过程,分析过程耗时长、效率低,无法满足大数据分析效率要求。因此,如何提供一种高效的数据处理方法成为亟待解决的技术问题。
发明内容
本申请提供一种数据处理的方法及装置,用以解决分析耗时长、效率低的问题。
第一方面,提供一种数据处理的方法,该方法可以由大数据分析系统中的主节点来实现,比如由主节点中的芯片或者芯片系统来实现。主节点也可以称为管理节点。以主节点执行数据处理的方法为例。主节点获取到第一作业的第一任务后,按照预设规则选择执行该第一任务的第一节点。该第一作业是大数据分析中的一个完整任务,可以由主节点从客户端接收该第一作业。第一作业中的第一任务是第一作业分解获得的多个任务中的任意一个任务。进一步,主节点选择到执行第一任务的第一节点后,向该第一节点发送该第一任务。本申请实施例中的预设规则用于指示节点中可复用的数据和第一任务待处理的数据的关联关系,比如,可复用的数据可以是节点中的缓存中的数据,由于节点执行任务时从磁盘中读取数据相比从缓存中读取数据较长,通过复用节点的缓存中的数据,结合缓存中的数据来选择节点,能够减少节点执行任务过程中读取数据的耗时,进而提高数据分析效率。另外,缓存数据的利用率较高,防止重复的从磁盘读取数据以及由于频繁的更新读取的数据导致的缓存空间不足,而导致的数据落盘行为。
在一种可能的实现方式中,主节点按照预设规则选择执行第一任务的第一节点时,可以通过如下方式来实现,根据节点缓存中的数据与第一任务待处理的数据关联的可复用数据来选择执行第一任务的第一节点。大数据分析系统中的各个节点,在执行其它任务过程中会从磁盘读取各个任务所需的数据到缓存中,某节点缓存中存在与第一任务待处理的数据存在关联关系的数据分片,比如,某节点的缓存中包括与第一任务所需的一个或多个数据分片,主节点为第一任务选择节点时,结合节点缓存中存在的第一任务所需的数据分片来选择第一节点。由于第一节点的缓存中存在第一任务所需的一个或者多个数据分片,从而第一节点执行第一任务时,无需再从磁盘读取缓存中已经存在的第一任务所需的一个或者多个数据分片,进而减少节点执行任务过程中读取数据的耗时,提升数据分析效率。
在另一种可能的实现方式中,主节点按照预设规则选择执行第一任务的第一节点时,还可以通过如下方式实现:主节点可以先根据多个节点中数据分布情况和第一任务待处理的数据的关联关系筛选出第二节点集合,该第二节点集合包括至少一个节点。第二节点集合包括的至少一个节点的磁盘和/或缓存中存在与第一任务待处理的数据存在关联数据的可复用数据。进一步地,主节点根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点。该实现方式中,先结合节点的磁盘和/或缓存中的数据分布情况筛选出一个或者多个节点,进而再结合筛选出的节点执行第一任务的计算开销来选择第一节点,减少计算开销所产生的耗时,提升数据分析效率。
在另一种可能的实现方式中,主节点根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点时,可以利用如下提供的方式获取计算开销。
在另一种可能的实现方式中,当所述节点的缓存中存在可复用的数据时,利用下述公式计算获取所述节点的计算开销中包括的可复用的数据的读取开销。可复用的数据用于指示所述节点的缓存中存储的与所述第一任务待处理的数据相关联的数据。
所述节点的计算开销(可复用的数据的读取开销)=第一任务待处理的数据的大小/缓存读取速率。
在另一种可能的实现方式中,当所述节点的磁盘中存在与所述第一任务关联的数据时,利用下述公式获取所述节点的计算开销中包括的磁盘中存在与所述第一任务关联的数据的读取开销。
所述节点的计算开销(磁盘中存在与所述第一任务关联的数据的读取开销)=第一任务待处理的数据的大小/磁盘读取速率。
进一步地,主节点在获取节点的计算开销后,选择节点的计算开销最小的节点作为第一节点。
在另一种可能的实现方式中,主节点可以在获取第一任务之前,获取统计数据,所述统计数据包括第一数据和第二数据,第一数据用于指示节点的磁盘的数据分布情况,第二数据用于指示节点的缓存的数据分布情况。进一步地,在根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合时,可以根据所述统计数据与所述第一任务待处理的数据的关联关系筛选出所述第二节点集合。在确定执行各个任务的节点时,采用的方式是既结合节点的磁盘的数据分布情况,还结合各个节点缓存中的数据分布情况,来确定执行各个任务的节点,由于从磁盘读取数据的开销大于从缓存读取数据的开销,因此,通过上述实现方式,能够降低从磁盘读取数据时导致的IO开销。
在另一种可能的实现方式中,第二数据包括第二作业处理的数据在缓存的分布情况,第二作业包括已经完成执行的作业;第二节点集合中包括的节点能够用于执行第二作业的任务,且第二节点集合中包括的节点所执行的第二作业的任务所使用的数据与第一任务待分析数据存在关联关系。换句话说,第二节点集合包括用于执行第二作业的任务的节点且执行第二作业的任务所处理的数据包括可复用的数据。上述方式中,从第二节点集合中确定第一节点,而第二节点集合中的各个节点均用于执行第二作业的任务,第一节点也用于执行第二作业中的某个任务。另外,第一节点所执行第二作业的任务所使用的数据,也是第一任务待分析数据所需要的部分数据或者全部数据,从而主节点将第一节点作为执行第一任务的节点,进而第一节点在执行第一任务时,第一节点的缓存中已经包括第一节点的待处理数据所需的部分或者全部数据,进而复用缓存中包括数据,可以减少节点再次从磁盘读取数据,提高任务的执行效率,并且降低IO接口的传输压力。
在另一种可能的实现方式中,所述第二数据包括第三作业处理的数据在缓存的分布情况,所述第三作业包括正在执行的作业;所述第二节点集合包括用于执行所述第三作业的任务的节点,且执行所述第三作业的任务所处理的数据包括所述可复用的数据。上述方式中,从第二节点集合中确定第一节点,而第二节点集合中的各个节点均用于执行第三作业的任务,第一节点也用于执行第三作业中的某个任务。另外,第一节点所执行第三作业的任务所使用的数据,也是第一任务待分析数据所需要的部分数据或者全部数据,从而主节点将第一节点作为执行第一任务的节点,进而第一节点在执行第一任务时,第一节点的缓存中已经包括第一任务的待处理数据所需的部分或者全部数据,进而复用缓存中包括的数据,可以减少节点再次从磁盘读取数据,提高任务的执行效率,并且降低IO接口的传输压力。
在另一种可能的实现方式中,主节点在根据第二节点集合中节点执行所述第一任务的计算开销在所述第二节点节后中选择一个节点作为所述第一节点之前,实时获取所述第三作业处理的数据在缓存的分布情况,可以提高获取的缓存分布情况的准确度,防止由于统计数据存在偏差导致的确定执行任务的节点的偏差,能够进一步地提高任务的执行效率。
在另一种可能的实现方式中,主节点可以在为第一任务分配第一节点后,可以向第一节点发送第一指示,用来指示所述第一节点暂缓删除缓存中的可复用的数据,以防止由于第一节点的缓存空间不足以及可复用的数据在缓存中存储的时间较长时而被优先删除。
在另一种可能的实现方式中,主节点在完成第一作业的处理后,将第一作业的任务所处理的数据在缓存的分布情况更新至所述第二数据。进而后续接收到的作业可以复用缓存中存在的第一作业所处理的数据。
在另一种可能的实现方式中,统计数据中还包括数据更新记录,数据更新记录用于指示在上一统计周期更新第一数据后所写入数据的存储情况。主节点可以接收大数据分析系统中的其它节点发送的数据更新记录,从而主节点将数据更新记录更新到统计数据中。由于大数据分析系统周期性的获取第一数据,并且大数据分析系统中存储的数据量庞大,因此,一般几天甚至一周或者一个月才统计一次数据。在两次统计周期之间,如果有数据更新,比如新数据写入或者数据删除等,主节点不能及时获取到数据更新情况,导致上一周期统计的为任务确定执行节点所依据的第一数据不准确,从而为任务确定执行节点存在偏差。在本申请实施例中,在周期性统计第一数据后,各个节点上如果存在数据更新,比如新数据写入或者数据删除,可以通知给主节点,从而主节点将新数据写入记录以及数据删除记录更新到数据更新记录中。通过该方式,主节点获取的统计数据能够相对更准确的体现节点的磁盘中的数据分布情况,从而依据统计数据为各个任务确定执行节点的准确度有所提高。
第二方面,基于与第一方面的方法实施例同样的发明构思,还提供了一种数据处理的装置,所述装置应用于第一方面所述的主节点,即该装置可以是主节点,也可以是能够应用于主节点的芯片或者处理器。该装置具有实现上述第一方面及第一方面各个可能的实现方式所实现的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供一种装置,包括:处理器和存储器;该存储器用于存储指令,当该装置运行时,该处理器执行该存储器存储的该指令,以使该装置执行上述第一方面或第一方面的任一实现方法中的数据处理的方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。装置还可以包括总线。其中,处理器通过总线耦接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第四方面,本申请实施例还提供了一种系统,包括第二方面或第三方面所述的主节点和用于执行任务的节点,比如第一节点。
第五方面,本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有程序或指令,当其在计算机上运行时,使得上述第一方面的数据处理的方法被执行。
第六方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中的数据处理的方法。
另外,第二方面至第六方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本实施例中大数据分析系统的架构示意图;
图2为本实施例中大数据分析系统的逻辑架构示意图;
图3为本实施例中一种数据处理的方法流程示意图;
图4A为本实施例中另一种数据处理的方法的示意图;
图4B为本实施例中大数据分析系统的一种可能的数据分布情况示意图;
图4C为本实施例中大数据分析系统的另一种可能的数据分布情况示意图;
图5为本实施例中一种数据处理的装置结构示意图;
图6为本实施例中另一种数据处理的装置结构示意图。
具体实施方式
为了更好理解本申请提供的数据处理方法,首先对本申请实施例中涉及到的技术概念进行解释说明。
1)集群(cluster),指多台计算机通过网络连接构成能对外提供统一计算或存储服务的设施,集群由集群管理系统实现统一管理。分布式集群是指集群中多台计算机采用分布式的方式处理一个任务。分布式集群则是按照一定的算法将任务分配给多台计算机执行,进而提高任务的执行效率。
2)资源(resource),指分布式集群中可供应用程序或软件利用计算(例如,中央处理单元(central processing unit,CPU))、存储(例如,内存(也可以称为缓存)、磁盘)和网络资源(例如,交换机)。
3)作业(job),指应用程序向集群提交的待执行的一个完整的任务,该任务可以是用户通过客户端设备或应用平台接口(application programming interface,API)向集群中管理节点提交,进而管理节点分配给一个或者多个用于执行该任务的节点。
4)任务(task),一个作业通常被分解为多个任务,每个任务运行在一个特定的集群节点上,并占用一定量的资源。
5)执行计划优化器,可以简称为优化器,用于生成执行计划。执行计划(executionplan)是通过解析作业,将作业分解成若干基本步骤,即分解为多个任务,并以特定顺序组合成一个完成的操作方案。
6)执行引擎,也可以称为执行器,用来执行任务。
7)分布式存储系统(distributed storage system),其由多个物理服务器(或者称为节点)组成,辅以管理系统,在逻辑上表现为一个整体,提供统一存储服务的系统。
8)数据落盘,是指为防止缓存的数据的丢失,将缓存的数据存储至磁盘。
9)数据分片,原始数据在存储到分布式存储系统时,会被拆分为多个数据分片,多个数据分片可以存储到多个节点上,多个节点中的每个节点可以存储一个或多个数据分片。
为了解决传统技术中耗时长、效率低的问题,本申请通过动态统计信息、复用缓存数据和并行任务的关联数据,改进作业任务执行计划的处理过程,减少磁盘IO,减少网络通信,提升任务性能,提升大数据集群整体分析性能。
接下来,结合附图进一步介绍本申请提供的数据处理方法。
图1为本申请提供的一种大数据分析系统的架构示意图。如图1所示,大数据分析系统中包括多个节点,图1以N个节点为例,分别为节点1–节点N。N为正整数。大数据分析系统至少部署4个逻辑功能层,分别包括用户交互层(或者称为业务输入/输出)101、执行计划优化器102(也可以简称优化器)、执行引擎103、存储系统层104。其中,大数据分析系统可以包括分析子系统和存储子系统,分析子系统包括用户交互层101、执行计划优化器(可以简称为优化器)102、执行引擎103。存储子系统包括存储系统层104。用户交互层101,用于实现大数据分析系统与用户交互,包括用户连接、作业输入和结果输出等。用户交互层101可以通过网络(web)、命令行视图(command-line interface,CLI)、应用程序接口或者电子化收集(electronic the collection,ETC)接口等来实现。逻辑功能层的各个功能可以由大数据分析系统中一个节点实现或者多个节点共同实现。比如,用户交互层101可以由一个或者多个节点共同实现,执行计划优化器102的功能可以由一个或者多个节点来实现,用于实现用户交互层1001和执行计划优化器102的功能的节点可以称为主节点。执行引擎103可以在N个节点中均部署,也可以在N个节点中的部分节点部署。N个节点中每个节点均可以部署用于数据存储的磁盘,也可以N个节点中的部分节点部署用于数据存储的磁盘。基于此,在大数据分析系统中,可以根据节点的功能可以将节点分为三种类型,分别为主节点(也可以称为管理节点)、计算节点和存储节点。计算节点可以部署执行引擎103,具有执行任务的功能,存储节点中可以部署磁盘,具有数据存储的功能。作为一种举例,N个节点中K个节点用于实现分析子系统的功能,即K个节点为计算节点,其余N-K个节点用于实现存储子系统中的功能,该N-K个节点中部署用于数据存储的磁盘,该N-K个节点为存储节点。作为另一种举例,计算节点也可以具有存储节点的功能,存储节点也可以具有计算节点的功能,即大数据分析系统中的一个或多个节点即可以作为计算节点也可以作为存储节点。比如N个节点即可以实现分析子系统的功能,还可以用于实现存储子系统的功能,N个节点均部署用于数据存储的磁盘。图1种以N节点中每个节点均包括M个磁盘为例,M为正整数。作为一种示例,用户交互层的功能以及优化器的功能均可以由主节点来实现。执行引擎部署于计算节点上。需要说明的是,主节点也可以部署执行引擎,作为计算节点。另外,用于实现计算任务的计算节点也可以部署用于数据存储的磁盘,即计算节点也作为存储节点。当计算节点也作为存储节点时,计算节点中缓存可以包括第一缓存和第二缓存。第一缓存用于数据分析,实现计算任务。第二缓存用于实现数据存储,即实现存储系统的功能。计算节点从存储系统读取数据时,先读入存储系统的缓存,即第二缓存,然后再由第二缓存读入第一缓存。当计算节点和存储节点分开部署时,存储系统的功能可以由存储服务器来实现,存储服务器中用于实现数据存储。
存储系统层104采用的存储方式可以是本地化(local)存储或者分布式存储。存储系统层104采用分布式存储时,可以通过分布式文件系统来实现,比如Ceph分布式文件系统或Hadoop分布式文件系统(hadoop distributed file system,HDFS)。本地化存储是与分布式存储相对的概念,可以理解为执行操作任务的主体所在设备的存储器或存储空间可以称为本地存储。例如,大数据分析系统中,一个节点要访问的数据位于该节点的存储器中,可以认为该数据属于该节点的本地数据,该数据的存储方式属于本地化存储方式。
图2为本实施例提供的一种大数据分析系统的逻辑架构图。图2所示的大数据分析系统中存储系统以HDFS分布式存储为例。HDFS分布式存储位于大数据分析系统的存储系统层104。采用HDFS分布式存储的大数据分析系统从逻辑功能上可以划分为作业管理201、区域服务(RegionServer)202、映射化简(MapReduce)203、HDFS分布式存储204以及分布式配置数据存储与协同服务(zookeeper)205。其中,作业管理位于用户交互层101,用于提供访问HFDS的接口,实现与用户交互,接收用户I/O请求,实现用户连接、任务输入和结果输出。ReginServer,主要负责响应用户I/O请求,向HDFS分布式存储中读写数据,是大数据分析系统中最核心的模块。RegionServer包括optimizor优化器,memStore以及HFlie。optimizor优化器2021作为执行计划优化器102,memStore2022类似于缓存,用于缓存执行器读取的数据,HFile2023用于索引数据的文件。MapReduce作为执行引擎103。
需要说明的是,大数据分析系统的N个节点中的每个节点均可以部署一个RegionServer。用户可以根据需求在大数据分析系统包括的N个节点选择一个节点作为主节点。应理解的是,主节点的选择可以由zookeeper205实现。Zookeeper205为软件功能模块,可以部署在大数据分析系统的多个节点上,也可以仅部署于一个节点上,用于在大数据分析系统的节点中按照预设规则选择主节点,例如,Zookeeper可以根据负载均衡的方式选择主节点。
下面对大数据分析中执行计划的制定流程进行说明:
1)主节点接收客户端提交的作业(也可以称为job)后,执行作业解析,执行数据过滤,获取满足条件的数据,例如执行数据排序(也可以称为sort),数据计算(也可以称为summary)。
2)主节点获取待分析数据信息。待分析数据信息包括数据分布(存储在哪几个节点,分布比例)、数据总量(统计信息记录的数据条目)。待分析数据信息还可以包括是否有孤点数据,孤点数据是指在一个节点存储,小量数据的分布式存储管理开销大于收益的数据。
3)主节点根据待分析数据信息生成执行计划。包括将作业分解为一系列的分布式运行的任务(task)。并对每个任务选择用于执行任务的节点。本申请实施例中为了解决传统技术中耗时长、效率低的问题,在针对每个任务选择执行任务的节点是,可以根据预设规则来选择,预设规则用于指示节点中可复用的数据和任务待处理数据的关联关系。示例性的,可复用的数据可以是节点缓存中的数据与任务待处理的数据存在关联关系的数据。
下面以大数据分析系统中包括N个节点为例对本申请实施例提供的数据处理方法进行详细说明。本申请提供的数据处理方法通过获取第一作业分解获得的第一作业,按照指示节点中可复用的数据和第一任务待处理的数据的关联关系的预设规则选择执行第一任务的第一节点,向第一节点发送第一任务,进而由第一节点完成第一任务的处理过程。
接下来,结合附图进一步介绍本实施例所提供的数据处理方法,图3为一种大数据分析系统的数据处理方法流程图。大数据分析系统的数据处理方法,可以由主节点来实现,比如可以由主节点中的处理器来实现或者由主节点的逻辑功能模块,即执行优化器来实现,图3以主节点为例进行说明。主节点可以是N个节点中的任意一个节点,在该情况下,主节点即作为制定执行计划的节点,也作为用于执行任务的节点。主节点也可以不用于执行任务。
S301,主节点接收客户端设备提交的第一作业,并将第一作业分解为M个任务,M个任务中每个任务配置有数据信息。数据信息用于描述任务待处理的数据,比如待处理的数据的类型、待处理的数据产生的时间等。
在客户端设备提交作业(job)后,作业被分解为一系列任务(task),上述一系列任务共同用于完成客户端设备所提交的作业,本实施例中以客户端提交的作业为第一作业(job 1)为例进行说明。
S302,主节点根据预设规则分别从N个节点中确定用于执行各个任务的节点。
S303,主节点将各个任务分别发送给为各个任务确定的节点。
第一种可能的方式中,以针对M个任务中的第一任务为例,主节点按照预设规则从N个节点选择执行第一任务的第一节点,主节点可以根据节点缓存中存储的数据与第一任务待处理的数据关联度判断是否存在可复用的数据,并依据可复用的数据的情况选择第一节点。比如,第一节点中缓存中数据分片1,与第一任务待处理的数据存在关联关系,或者说数据分片1是第一任务待处理的数据中的一部分或者一个数据分片,即数据分片1为第一节点中的可复用的数据。
第二种可能的方式中,主节点根据节点中存储的数据与第一任务待处理的数据的关联关系,从N个节点中确定第二节点集合,第二节点集合包括至少一个节点。第二节点集合包括的节点存储的数据与第一任务待处理的数据存在关联关系,或者描述为第二节点集合包括的节点的磁盘和/缓存中存储的数据与第一任务待处理的数据存在关联关系。进一步地,主节点根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点。
例如,主节点可以根据第一数据和/或第二数据确定节点中磁盘存储的数据与第一任务待处理的数据的关联关系,从而N个节点中确定第二节点集合,进一步地,主节点可以根据第一数据和第二数据确定第一任务的待处理的数据的存储位置,进而确定第二节点集合包括的各个节点分别针对待处理数据的计算开销。从第二节点集合中选择针对第一任务的待处理数据的计算开销最小的第一节点。待处理数据的计算开销包括从磁盘和/或缓存读取待处理数据的开销。
本申请实施例中,在确定执行各个任务的节点时,采用的方式是既结合节点的磁盘的数据分布情况,还结合各个节点缓存中的数据分布情况,来确定执行各个任务的节点,由于从磁盘读取数据的开销大于从缓存读取数据的开销,因此,通过本申请实施例提供的方案,能够降低从磁盘读取数据时导致的IO开销。并且缓存数据的利用率较高,防止重复的从磁盘读取数据以及由于频繁的更新读取的数据导致的缓存空间不足,而导致的数据落盘行为。
在一种可能的实施例中,主节点在接收客户端设备提交的第一作业之前可以获取统计数据,统计数据包括第一数据和第二数据,所述第一数据用于指示N个节点的磁盘中的数据分布情况,第二数据用于指示N个节点的缓存中的数据分布情况。主节点可以根据统计数据确定各个节点的缓存中的数据,进而根据节点缓存中数据与第一任务待处理的数据关联的可复用的数据选择第一节点。
在另一种可能的实施例中,主节点在获取统计数据中的第一数据时,可以周期性地从N个节点获取磁盘的数据分布情况,以获得第一数据。或者N个节点可以周期性地向主节点发送磁盘的数据分布情况,从而主节点获得第一数据。主节点也可以从存储系统获取N节点的磁盘的数据分布情况。
在另一种可能的实施例中,主节点获取统计数据的第二数据时,也可以周期性地从N个节点获取缓存的数据分布情况。获取缓存的数据分布情况的周期小与获取磁盘的数据分布情况的周期。又一种示例中,主节点也可以在接收到作业时,从N个节点获取缓存的数据分布情况。再一种示例中,主节点也可以实时更新第二数据,比如主节点确定完成执行某个作业时,可以将该作业的任务所处理的数据在缓存的分布情况更新到第二数据中。另一种示例中,主节点可以针对一个接收到的作业制定完执行计划后,可以将该作业的各个任务所需处理的数据情况以及处理各个任务的节点情况更新到第二数据中。由于针对某个作业制定完执行计划后,即将该作业的各个任务发送给各个节点处理,因此该作业的各个任务的待处理数据会在各个节点的处理过程中被读入到各个节点的缓存中。比如在已经制定完执行计划的作业正在执行的过程中,后续接收到其它的作业并确定作业的各个任务的执行节点时,复用缓存中存储的正在执行作业的待处理数据,提高数据读取效率。
可选地,统计数据中还可以包括数据更新记录,所述数据更新记录用于指示大数据分析系统中在上一周期更新所述第一数据后所写入的数据。由于大数据分析系统周期性的获取第一数据,并且大数据分析系统中存储的数据量庞大,因此一般几天甚至一周或者一个月才统计一次。在两次统计周期之间,如果有数据更新,比如新数据写入或者数据删除等,主节点不能及时获取到数据更新情况,导致上一周期统计的为任务确定执行节点所依据的第一数据不准确,从而为任务确定执行节点存在偏差。在本申请实施例中,在周期性统计第一数据后,N个节点上每个节点上如果存在数据更新,比如新数据写入或者数据删除,可以通知给主节点,从而主节点将新数据写入记录以及数据删除记录更新到数据更新记录中。通过该方式,主节点获取的统计数据能够相对更准确的体现N个节点的磁盘中的数据分布情况,从而依据统计数据为各个任务确定执行节点的准确度有所提高。
可选地,N个节点的缓存可以包括用于数据分析的第一缓存,还可以包括用于数据存储的第二缓存。用于数据存储的缓存中存储有热点数据。热点数据即为使用频繁的数据,比如,某数据被读取次数达到次数阈值时,则该数据作为热点数据存储在缓存第二缓存中。
由于在节点的缓存空间不足的情况下,会删除部分数据来释放缓存空间。但是,在绝大数情况下,一个任务的数据在节点的缓存中存储预定时长后,可能由于缓存空间不足导致被节点删除。一个任务的数据在缓存中能够被存储的时长可以通过缓存的大小以及任务所需的数据大小来估计。在下述描述中,将一个数据在缓存中能够被存储的时长称为第一时长。
在一种可能的实施方式中,通过统计近期作业的数据使用情况来统计缓存中数据分布情况,并更新到第二数据中。近期作业为已完成执行的作业,且完成执行时刻距离当前时刻所经过的时长小于第一时长的作业。其中,第一时长可以根据统计数据获得或者利用经验值确定。可以理解的是,在第一时长内近期作业所分析的数据在绝大多数情况下位于执行近期作业包括的各个任务的节点的缓存中。
作为一种示例,以第二作业(job 2)为例。所述第二数据中包括第二作业的数据使用情况,所述第二作业为已完成执行的作业。第二作业完成执行的时刻距离当前时刻所经过的时间小于第一时长;所述第二作业的数据使用情况指示所述第二作业中的每个任务对应的节点以及第二作业中的每个任务所使用的数据。
在另一种可能的实施例中,在根据所述统计数据以及第一任务待处理的数据从所述N个节点中确定用于执行所述第一任务的第一节点时,可以通过如下方式实现:
根据统计数据以及第一任务的待处理数据从所述N个节点中确定第二节点集合,然后,根据统计数据从第二节点集合中确定针对第一任务的待处理数据的计算开销最小的第一节点。所述第二节点集合中包括的节点用于执行所述第二作业的任务且所执行的第二作业的任务所使用的数据与所述第一任务待分析数据存在关联关系。换句话说,所述第二节点集合包括用于执行所述第二作业的任务的节点且执行所述第二作业的任务所处理的数据包括所述可复用的数据。
上述方式中,从第二节点集合中确定第一节点,而第二节点集合中的各个节点均用于执行第二作业的任务,第一节点也用于执行第二作业中的某个任务。另外,第一节点所执行第二作业的任务所使用的数据,也是第一任务待分析数据所需要的部分数据或者全部数据,从而主节点将第一节点作为执行第一任务的节点,进而第一节点在执行第一任务时,第一节点的缓存中已经包括第一节点的待处理数据所需的部分或者全部数据,进而复用缓存中包括数据,可以减少节点再次从磁盘读取数据,提高任务的执行效率,并且降低IO接口的传输压力。
可选地,所述第二数据中包括的第二作业的数据使用情况可以是主节点在确定完成执行第二作业时,更新到所述第二数据中的。可选地,在第二数据中包括的第二作业的数据使用情况存储的时长达到第一时长时,可以将第二作业的数据使用情况从第二数据中删除。在完成所述第一作业的处理后,将所述第一作业的数据使用情况更新到所述第二数据中,所述第一作业的数据使用情况指示所述第一作业中的M个任务分别对应的节点以及第一作业中的M个任务分别使用的数据。第一作业的数据使用情况可以供后续执行的作业在制定执行计划时使用。
以大数据分析系统中包括节点1-节点4和主节点为例,节点1-节点4既具有计算节点的功能也具有存储节点的功能。参见图4A示例一种数据处理的方法流程。
S401,主节点接收客户端设备提交的job1。
S402,主节点将所述job1分解为3个task,分别为task1-task3。3个task中每个task配置有所需处理的数据。生成执行计划时,使用统计数据生成job 1的执行计划,包括确定执行各个task的节点。
其中,job1分解为task的方式可以参见传统实现方式,例如,按照job1所要执行任务的类型和具体情况拆分为多个关联的task,具体实施过程中可以根据业务需求进行分解,本申请对此不做限定。
S403,分别解析task1-task3,获取每个任务所需处理的数据。以确定执行task 1的节点为例。task 1所需处理的数据包括data1的part A、part B、part E和part F,data2的part 1、part 4和part 6。
S404,根据统计数据获取每个任务所需处理的数据的数据分布情况。
比如,job 2为已经完成执行的任务,并且job 2执行完成的时刻距离当前时刻的时长小于第一时长。job 2分解为task A、task B和task C。task A由节点1执行,task B由节点2执行,task C由节点3执行。task A所需处理的数据包括data1的part A、part B,data2的part 1和part 2。task B所需处理的数据包括data1的part F,data2的part 3。task C所需处理的数据包括data1的part L,data2的part 5。
统计数据中包括大数据分析系统中各个节点的磁盘的数据分布情况,以及各个节点的缓存的数据分布情况,参见图4B所示,统计数据中包括的数据的存储情况如下:
节点1的磁盘的数据存储情况包括data1的part A–part D,data 2的part 1-part2;
节点1的缓存的数据分布情况包括data1的part A–part B,data 2的part 1-part2;
节点2的磁盘的数据分布情况包括data1的part E–part H,data 2的part 3-part4;
节点2的缓存的数据分布情况包括data1的part F,data 2的part 3;
节点3的磁盘的数据分布情况包括data 2的part 5-part 6;
节点3的缓存的数据分布情况包括data 2的part 5;
节点4的磁盘的数据分布情况包括data1的partI-partL;
节点4的缓存的数据分布情况包括data1的partI。
S405,根据每个任务所需处理的数据的数据分布情况确定分别执行task1-task3的节点。以确定执行task 1的节点为例。
在一种可能的实施例中,可以根据统计数据以及task1所需处理的数据从节点1-节点4中筛选出节点1-节点2中缓存存储的数据与第一任务待处理的数据存在关联关系,从节点1-节点4中确定第二节点集合包括节点1-节点2。节点1缓存中包括的data1的part A–part B,data 2的part 1是task 1所需处理的数据。节点2缓存中包括的data1的part F,data 2的part 3是task 1所需处理的数据。可以分别确定节点1和节点2针对task 1的data1的part A、part B、part E和part F,data2的part 1、part 4和part 6的计算开销。若task 1在节点1上执行时,节点1包括的task1所需处理的part A–part B均在节点1的缓存中,无需从节点1的磁盘读取,需要从节点2的缓存中拉取2个数据(part F和part3)以及从节点2的磁盘中读取2个数据(part E和part 4),还需要从节点3的磁盘中读取part 6。若task2在节点2上执行,part F和part3在节点2的缓存中,节点2无需从节点2的磁盘读取,节点2需要从节点2的磁盘中读取part E和part 4,还需要从节点1的缓存中拉取part A、partB和part1以及需要从节点3的磁盘中读取part 6。以每部分(part)的数据大小相同为例,所需要的读取开销相同为例,跨节点从磁盘中读取数据的时延比从本节点的磁盘的读取数据的时延要大。
按照本申请实施例提供的方案,在节点1计算task1,只需要从节点2缓存读取2个数据、从节点2磁盘读取2个数据和节点2磁盘读取1个数据,而不是直接从存储系统的磁盘获取7个数据,缓存读取时延相对磁盘读取时延低,并且节点1无需从自身的磁盘读取数据,直接复用缓存中的数据,节点可以更迅速的开始计算数据,降低计算时延。并且减少IO的瓶颈的加剧。
另一种方式中,可以根据统计数据以及task1所需处理的数据从节点1-节点4中筛选出节点1-节点3中磁盘存储的数据与第一任务待处理的数据存在关联关系,从节点1-节点4中确定第二节点集合包括节点1-节点3。然后根据节点1-节点3针对第一任务待处理的数据的计算开销从节点1-节点3选择节点1用于执行第一任务。
在一种可能的实施例中,可以通过如下方式确定不同节点处理同一数据的计算开销。
计算开销可以包括从磁盘读取数据的开销和/或从缓存读取数据的开销。计算开销还可以包括处理资源处理数据的开销,比如,可以包括CPU的使用率和/或CPU的处理时间。需要说明的是,大数据分析系统中各个节点使用相同规格的服务器的话,计算能力基本相同,则处理资源处理数据的开销可以不计在计算开销中。
示例性地,从磁盘读取待处理数据的开销包括磁盘的读取时间,网络接口的带宽使用率或网络接口的传输时间中的一项或多项;所述从缓存读取待处理数据的开销包括缓存的读取时间。由于数据读取可以认为是将数据读入缓存,因此缓存的读取开销可以忽略不计。以计算开销包括磁盘的读取时间、网络接口的传输时间以及缓存的读取时间为例。
需要理解的是,随机网络传输速率的不断增加,网络接口的传输速率(简称网络传输速率)可以是磁盘读取速率的几倍。比如,磁盘读取速率为200MB/s,10GE网络传输速率1200MB/s。在确定磁盘的数据的读取开销时,可以忽略网络接口的传输会读取开销的影响。
在一种可能的实施例中,分别确定各个节点处理task1所需处理的数据的计算开销为:
一个数据的各部分(或称为各个数据分片)的数据读取开销,其中,数据读取开销可以利用下述公式1或公式2进行计算:
数据读取开销=数据的大小/缓存读取速率 公式1
数据读取开销=数据的大小/磁盘读取速率 公式2
比如,一个节点的缓存中包括task1所需处理的X个数据分片,即该节点的缓存中包括的task1的可复用数据为X个数据分片,该节点读取该X个数据分片的读取开销可以通过公式1来确定,即X个数据分片的读取开销为X个数据分片的大小/缓存读取速率。
再比如,一个节点的磁盘中包括task1所需处理的Y个数据分片,即该节点的磁盘中存在与所述第一任务关联的Y个数据分片,当task1由该节点执行时,该节点读取该Y个数据分片的读取开销可以通过公式1来确定,即Y个数据分片的读取开销为Y个数据分片的大小/网络传输速率。
又比如,一个节点执行task1时,该节点的缓存中包括task1所需处理的X个数据分片,其它节点的磁盘中还包括该task1所需处理的Y个数据分片,该节点读取X+Y个数据分片的读物开销可通过公式1和公式2来确定。比如,task1的所需处理的数据读取开销为X个数据分片的大小/缓存读取速率+Y个数据分片的大小/网络传输速率。
在另一种可能的实施例中,一个任务的待处理数据中每个数据分片的数据大小之间的差异可以忽略不计,对缓存的读取开销可以忽略不计,进而可以根据网络传输速率以及磁盘读取速率对磁盘读取开销和网络接口的传输开销进行量化,比如磁盘读取速率为200MB/s,10GE网络传输速率1200MB/s,可以确定量化后的磁盘读取开销为6单元、网络传输开销为1单元,缓存读取开销为0。
以图4B为例,task1所需处理的数据为data1的part A、part B、part E和part F,data2的part 1、part 4和part 6。确定节点1执行task1所需处理的数据的计算开销=16。确定节点2执行task1所需处理的数据的计算开销=22。从上节点1和节点2分别执行task1所需处理的数据的计算开销,可以确定节点1针对task1所需处理的数据的计算开销小于节点2针对task1所需处理的数据的计算开销,因此,主节点选择节点1用于执行task 1,可以减少计算开销。依此类推,可以使用类似方法分别为task2和task3选择用于执行任务的节点,示例地,以下参考图4A,以选择节点2执行task2,节点3执行task3为例进行描述。
S406,主节点将task1发送给节点1,将task2发送给节点2,将task3发送给节点3。
节点1执行task1,并把执行结果1发送给主节点,节点2执行task2,并把执行结果2发送给主节点,节点3执行task3,并把执行结果3发送给主节点。
S407,主节点分别从节点1接收执行结果1,从节点2接收执行结果2以及从节点3接收执行结果3,并根据执行结果1、执行结果2和执行结果3进行后续步骤的处理。
S408,主节点确定完成job 1后,将job 1的任务的数据使用信息更新到统计数据。
在一种可能的实施例中,由于节点中的缓存空间的大小是固定的,当缓存空间不足的情况下,节点会将缓存中的部分数据删除以释放空间。为了防止节点删除即将要使用的数据,在为task1分配第一节点后,向第一节点发送第一指示,所述第一指示用于指示所述第一节点暂缓删除缓存包括的与所述第一任务所需处理的数据存在关联的数据。比如第一节点在接收到第一指示后,可以将第一节点的缓存包括的与所述第一任务所需处理的数据存在关联的数据的优先级设置为最高,优先级最高的数据最晚删除。
在另一种可能的实施方式中,通过统计当前正在执行作业的数据使用情况来统计缓存中当前存储的数据分布情况。由于当前正在执行作业的任务所需处理的数据为即将被读入缓存的数据,可以作为缓存中的数据。作为一种示例,以当前正在执行作业为第三作业(job3)为例。所述第二数据中包括第三作业的数据使用情况,所述第三作业的数据使用情况指示所述第三作业中未完成任务对应的节点以及未完成任务所使用的数据。
在一种可能的实施例中,在根据所述统计数据以及第一任务所需处理的数据从所述N个节点中确定用于执行所述第一任务的第一节点时,可以通过如下方式实现:
从所述N个节点中确定第二节点集合,然后,根据所述统计数据从所述第二节点集合中确定针对所述第一任务所需处理数据的计算开销最小的第一节点。所述第二节点集合中包括的节点用于执行所述第三作业的未完成任务且所执行的第三作业的任务所使用的数据与所述第一任务所需处理的数据存在关联。
上述方式中,从第二节点集合中确定第一节点,而第二节点集合中的各个节点均用于执行第三作业的任务,第一节点也用于执行第三作业中的某个任务。另外,第一节点所执行第三作业的任务所使用的数据,也是第一任务待分析数据所需要的部分数据或者全部数据,从而主节点将第一节点作为执行第一任务的节点,进而第一节点在执行第一任务时,第一节点的缓存中已经包括第一任务的待处理数据所需的部分或者全部数据,进而复用缓存中包括的数据,可以减少节点再次从磁盘读取数据,提高任务的执行效率,并且降低IO接口的传输压力。
可选地,所述第二数据中包括第三作业的数据使用情况可以是主节点在接收到第一作业时获取的。比如主节点在接收到第一作业时,获取正在执行的作业的数据使用情况。正在执行的作业的数据使用情况中包括第三作业的数据使用情况。再比如,主节点在根据所述统计数据以及第一任务所需处理的数据从所述N个节点中确定用于执行所述第一任务的第一节点之前,获取所述第三作业的数据使用情况。
以大数据分析系统中包括3个节点。job 1被分解为task 1、task 2和task 3。生成执行计划时,使用统计数据生成job 1的执行计划,包括确定执行各个task的节点。以图4A的例子,以确定执行task 1的节点为例。task 1所需处理的数据包括data1的part A、partB、part E和part F,data2的part 1、part 4和part 6。
正在执行的job 3分解为task 11、task 12和task 13。task 11由节点1执行,task12由节点2执行,task 13由节点3执行。task 11未完成执行,task 12未完成执行,task 13未完成执行。未完成执行的任务包括正在执行且未完成的任务,或者未执行的任务。
task 11所需处理的数据包括data1的part A、part B,data2的part 1和part 2。task 12所需处理的数据包括data1的part F,data2的part 3。task 13所需处理的数据包括data1的part L,data2的part 5。
统计数据中包括各个节点的磁盘的数据分布情况,以及各个节点即将执行的任务的数据信息,参见图4C所示,统计数据中包括的数据的存储情况如下:
节点1的磁盘的数据分布情况包括data1的part A–part D,data 2的part 1-part2;
节点1即将执行任务的数据使用情况包括data1的part A–part B,data 2的part1-part 2;
节点2的磁盘的数据分布情况包括data1的part E–part H,data 2的part 3-part4;
节点2即将执行任务的数据使用信息包括data1的part F,data 2的part 3;
节点3的磁盘的数据分布情况包括data1的part I–part L,data 2的part 5-part6;
节点3即将执行任务的数据使用情况包括data1的part L,data 2的part 5。
根据统计数据以及task1所需处理的数据信息从节点1-节点3中确定节点1和节点2即将执行任务的数据与task1所需处理的数据存在重叠。即节点1执行任务的数据包括的data1的part A–part B,data 2的part 1是task 1所需处理的数据。节点2执行任务的数据包括的data1的part F,data 2的part 3是task 1所需处理的数据。可以分别计算节点1和节点2针对task 1的data1的part A、part B、part E和part F,data2的part 1、part 4和part 6的计算开销。若task 1在节点1上执行时,节点1包括的task1所需处理的数据(partA、part B以及part 1)在执行task11时将读取到缓存中,无需再次从磁盘读取,但是需要从节点2的缓存中拉取2个数据(part F和part3)以及从节点2的磁盘中读取2个数据(part E和part 4),还需要从节点3的磁盘中读取part 6。若task2在节点2上执行,part F和part3在节点2执行task12时读取到缓存中,节点2无需再次读取,节点2需要从磁盘中读取part E和part 4,还需要从节点1的缓存中拉取part A、part B和part 1以及需要从节点3的磁盘中读取part 6。以每部分(part)的数据大小相同为例,所需要的读取开销相同为例,跨节点读取数据的时延比从本节点的磁盘的读取数据的时延要大。
按照本申请实施例提供的方案,在节点1并行计算task1和task11,part A、part B以及part 1无需重复从磁盘读取两遍,可以认为节点1在计算task1时,无需再次从磁盘读取part A、part B以及part 1,只需要从节点2缓存拉取2个数据、从节点2磁盘读取2个数据和节点2磁盘读取1个数据,而不是直接从存储系统的磁盘获取7个数据,缓存读取时延相对磁盘读取时延低,并节点1无需从自身的磁盘读取数据,直接复用缓存中的数据,节点可以更迅速的开始计算数据,降低计算时延。并且减少IO的瓶颈的加剧。
在一种可能的实施例中,还可以通过统计近期作业的数据使用情况和当前正在执行作业的数据使用情况来统计缓存中当前存储的数据的存储情况。
以近期作业为第二作业(job 2)为例,正在执行作业为第三作业为例。所述第二数据中包括第二作业的数据使用情况和第三作业的数据使用情况,所述第二作业为已完成执行的作业且完成执行时刻距离当前时刻所经过的时间小于第一时长;所述第二作业的数据使用情况指示所述第二作业中的每个任务对应的节点以及第二作业中的每个任务所使用的数据。所述第三作业的数据使用情况指示所述第三作业中的每个任务对应的节点以及第三作业中的每个任务所需的数据。
作为一种示例,在以上举例的情况下,在根据预设规则选择第一节点时,可以通过如下方式实现:
C1,根据所述数据统计以及第一任务的待处理数据的数据从所述N个节点中确定K1个节点,所述K1个节点用于执行所述第二作业的任务且所执行的第二作业的任务所使用的数据与所述第一任务所需分析的数据存在关联。K1为正整数。
C2,根据所述统计数据从所述K1个节点中确定针对待处理数据的计算开销最小X个节点。
C3,从所述X个节点中确定Y个节点,所述Y个节点用于执行所述第三作业的未完成任务且所执行的第三作业的任务所使用的数据与所述第一任务的待处理数据存在关联。
C4,根据所述统计数据从所述Y个节点中确定针对待处理数据的计算开销最小的第一节点。
作为另一种示例,在以上举例的情况下,在根据预设规则选择第一节点时,可以通过如下方式实现:
D1,根据所述统计数据以及第一任务的待处理数据的数据从所述N个节点中确定K2个节点,所述K2个节点用于执行所述第三作业的任务且所执行的第三作业的任务所使用的数据与所述第一任务的待处理数据存在关联。K1为正整数。
D2,根据所述统计数据从所述K2个节点中确定针对待处理数据的计算开销最小X个节点。
D3,从所述X个节点中确定Y个节点,所述Y个节点用于执行所述第二作业的未完成任务且所执行的第二作业的任务所使用的数据与所述第一任务的待处理数据存在关联。
D4,根据所述统计数据从所述Y个节点中确定针对待处理数据的计算开销最小的第一节点。
可以理解的是,为了实现上述实施例中功能,主节点包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以计算机软件、硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图4C,详细描述了根据本申请所提供的数据处理的方法,下面将结合图5和图6,描述根据本申请所提供的数据处理的装置。
本实施例提供一种数据处理的装置500,该装置500可以实现图3或图4A中主节点所执行的功能。参见图5所示,该装置500包括获取单元501、选择单元502和发送单元503。
获取单元501,用于获取第一任务,所述第一任务为第一作业分解获得的多个任务中任意一个,所述第一作业为大数据分析中一个完整任务。选择单元502,用于按照预设规则选择执行所述第一任务的第一节点,所述预设规则用于指示节点中可复用的数据和所述第一任务待处理的数据的关联关系。发送单元503,用于向所述第一节点发送所述第一任务。
应理解的是,本申请实施例的装置500可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据处理方法时,装置500及其各个模块也可以为软件模块。
在一种可能的实现方式中,选择单元502,具体用于根据所述节点缓存中数据与所述第一任务待处理的数据关联的可复用的数据选择所述第一节点。
在一种可能的实现方式中,选择单元502,具体用于根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合,所述第二节点集合中包括至少一个节点;根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点。
在一种可能的实现方式中,选择单元502具体用于:当所述节点的缓存中存在可复用的数据时,利用下述公式计算获取所述节点的计算开销:所述节点的计算开销=第一任务待处理的数据的大小/缓存读取速率;
其中,所述可复用的数据用于指示所述节点的缓存中存储的与所述第一任务待处理的数据相关联的数据;
当所述节点的磁盘中存在与所述第一任务关联的数据时,利用下述公式计算获取所述节点的计算开销:所述节点的计算开销=第一任务待处理的数据的大小/磁盘读取速率;
进一步地,选择单元502选择所述节点的计算开销最小的节点作为所述第一节点。
在一种可能的实现方式中,获取单元501还用于获取统计数据,所述统计数据包括第一数据和第二数据,所述第一数据用于指示节点的磁盘的数据分布情况,第二数据用于指示节点的缓存的数据分布情况;所述选择单元在根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合时,具体用于根据所述统计数据与所述第一任务待处理的数据的关联关系筛选出所述第二节点集合。
在一种可能的实现方式中,所述第二数据包括第二作业处理的数据在缓存的分布情况,所述第二作业包括已经完成执行的作业;所述第二节点集合包括用于执行所述第二作业的任务的节点,且执行所述第二作业的任务所处理的数据包括所述可复用的数据。
在一种可能的实现方式中,所述第二数据包括第三作业处理的数据在缓存的分布情况,所述第二作业包括正在执行的作业;所述第二节点集合包括用于执行所述第三作业的任务的节点,且执行所述第三作业的任务所处理的数据包括所述可复用的数据。
在一种可能的实现方式中,所述获取单元501,还用于在根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点节后中选择一个节点作为所述第一节点之前,实时获取所述第三作业处理的数据在缓存的分布情况。
在一种可能的实现方式中,所述发送单元503,还用于向所述第一节点发送第一指示,所述第一指示用于指示所述第一节点暂缓删除缓存中的所述可复用的数据。
在一种可能的实现方式中,所述装置还包括更新单元504,用于在完成所述第一作业的处理后,将所述第一作业的任务所处理的数据在缓存的分布情况更新至所述第二数据。
在一种可能的实现方式中,所述统计数据中还包括数据更新记录,所述数据更新记录用于指示在上一统计周期更新所述第一数据后所写入数据的存储情况。
根据本申请实施例的装置500可对应于执行本申请实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能分别为了实现图2至图3中的各个方法的相应流程,为了简洁,在此不再赘述。
图6为本申请提供的一种数据处理的装置600的结构示意图,如图所示,数据处理的装置600可以包括通信接口601、处理器602以及存储器603。所述存储器603,用于存储所述处理器602执行的程序代码。通信接口601用于获取第一作业、统计数据等。一种示例中,获取单元501、选择单元502以及发送单元503的功能均可以由处理器602实现,在实现发送单元503的功能时,处理器602可以控制通信接口601向第一节点发送第一任务。处理器602用于执行存储器603存储的程序代码,具体的,处理器602通过通信接口601获取到第一作业,并将第一作业分解为多个任务,从而为每个任务选择执行节点,再通过通信接口601将任务发送给各个执行节点。
处理器602,可以是通用处理器,通用处理器可以是微处理器或者任何常规的处理器等,比如中央处理单元(central processing unit,CPU)。处理器602,还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
本发明实施例中不限定上述通信接口601、处理器602以及处理器603之间的具体连接介质。本发明实施例在图6中以通信接口601、处理器602以及存储器603之间通过总线604连接,总线在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
该存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
应理解,根据本申请实施例的数据处理装置600可对应于本申请实施例中的数据处理的装置500,并可以对应于执行根据本申请实施例中图2和图3所述的方法中的相应主体,并且装置600中的各个模块的上述和其它操作和/或功能分别为了实现图1至图4C中的各个方法的相应流程,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (13)

1.一种数据处理的方法,其特征在于,所述方法包括:
获取第一任务,所述第一任务为第一作业分解获得的多个任务中任意一个,所述第一作业为大数据分析中一个完整任务;
按照预设规则选择执行所述第一任务的第一节点,所述预设规则用于指示节点中可复用的数据和所述第一任务待处理的数据的关联关系;
向所述第一节点发送所述第一任务。
2.根据权利要求1所述的方法,其特征在于,按照预设规则选择执行所述第一任务的第一节点,包括:
根据所述节点缓存中数据与所述第一任务待处理的数据关联的可复用的数据选择所述第一节点。
3.根据权利要求1所述的方法,其特征在于,所述按照预设规则选择执行所述第一任务的第一节点,包括:
根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合,所述第二节点集合中包括至少一个节点;
根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点。
4.根据权利要求1或3所述的方法,其特征在于,在所述获取第一任务之前,所述方法还包括:
获取统计数据,所述统计数据包括第一数据和第二数据,所述第一数据用于指示节点的磁盘的数据分布情况,第二数据用于指示节点的缓存的数据分布情况;
则根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合,包括:
根据所述统计数据与所述第一任务待处理的数据的关联关系筛选出所述第二节点集合。
5.根据权利要求4所述的方法,其特征在于,所述第二数据包括第二作业处理的数据在缓存的分布情况,所述第二作业包括已经完成执行的作业;
所述第二节点集合包括用于执行所述第二作业的任务的节点,且执行所述第二作业的任务所处理的数据包括所述可复用的数据。
6.根据权利要求5所述的方法,其特征在于,所述第二数据包括第三作业处理的数据在缓存的分布情况,所述第三作业包括正在执行的作业;
所述第二节点集合包括用于执行所述第三作业的任务的节点,且执行所述第三作业的任务所处理的数据包括所述可复用的数据。
7.一种数据处理的装置,其特征在于,所述装置包括:
获取单元,用于获取第一任务,所述第一任务为第一作业分解获得的多个任务中任意一个,所述第一作业为大数据分析中一个完整任务;
选择单元,用于按照预设规则选择执行所述第一任务的第一节点,所述预设规则用于指示节点中可复用的数据和所述第一任务待处理的数据的关联关系;
发送单元,用于向所述第一节点发送所述第一任务。
8.根据权利要求7所述的装置,其特征在于,
所述选择单元,还用于根据所述节点缓存中数据与所述第一任务待处理的数据关联的可复用的数据选择所述第一节点。
9.根据权利要求7所述的装置,其特征在于,
所述选择单元,还用于根据所述多个节点中数据分布情况和所述第一任务待处理的数据的关联关系筛选第二节点集合,所述第二节点集合中包括至少一个节点;根据所述第二节点集合中节点执行所述第一任务的计算开销在所述第二节点集合中选择一个节点作为所述第一节点。
10.根据权利要求7或9所述的装置,其特征在于,
所述获取单元,还用于在获取第一任务之前,获取统计数据,所述统计数据包括第一数据和第二数据,所述第一数据用于指示节点的磁盘的数据分布情况,第二数据用于指示节点的缓存的数据分布情况;
所述选择单元,还用于根据所述统计数据与所述第一任务待处理的数据的关联关系筛选出所述第二节点集合。
11.根据权利要求10所述的装置,其特征在于,所述第二数据包括第二作业处理的数据在缓存的分布情况,所述第二作业包括已经完成执行的作业;
所述第二节点集合包括用于执行所述第二作业的任务的节点,且执行所述第二作业的任务所处理的数据包括所述可复用的数据。
12.根据权利要求11所述的装置,其特征在于,所述第二数据包括第三作业处理的数据在缓存的分布情况,所述第三作业包括正在执行的作业;
所述第二节点集合包括用于执行所述第三作业的任务的节点,且执行所述第三作业的任务所处理的数据包括所述可复用的数据。
13.一种数据处理的装置,其特征在于,所述装置包括处理器以及存储器;
所述存储器,用于存储软件指令;
所述处理器,用于调用所述存储器存储的软件指令,以执行上述权利要求1至6中任一项所述的方法。
CN202010881197.XA 2020-08-27 2020-08-27 数据处理的方法及装置 Pending CN114116790A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010881197.XA CN114116790A (zh) 2020-08-27 2020-08-27 数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010881197.XA CN114116790A (zh) 2020-08-27 2020-08-27 数据处理的方法及装置

Publications (1)

Publication Number Publication Date
CN114116790A true CN114116790A (zh) 2022-03-01

Family

ID=80375014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010881197.XA Pending CN114116790A (zh) 2020-08-27 2020-08-27 数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN114116790A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840562A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 业务数据的分布式缓存方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840562A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 业务数据的分布式缓存方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11882054B2 (en) Terminating data server nodes
US10579364B2 (en) Upgrading bundled applications in a distributed computing system
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US11099937B2 (en) Implementing clone snapshots in a distributed storage system
US10831387B1 (en) Snapshot reservations in a distributed storage system
US20170060769A1 (en) Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof
US9619472B2 (en) Updating class assignments for data sets during a recall operation
US9965196B2 (en) Resource reservation for storage system metadata updates
US10817380B2 (en) Implementing affinity and anti-affinity constraints in a bundled application
US11914894B2 (en) Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
US10073648B2 (en) Repartitioning data in a distributed computing system
EP3881195A1 (en) Approach for a controllable trade-off between cost and availability of indexed data in a cloud log aggregation solution such as splunk or sumo
US10642530B2 (en) Global occupancy aggregator for global garbage collection scheduling
CN110427258A (zh) 基于云平台的资源调度控制方法及装置
US20240129251A1 (en) Data processing method and apparatus, computer device, and readable storage medium
Liu et al. Optimizing shuffle in wide-area data analytics
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN115587118A (zh) 任务数据的维表关联处理方法及装置、电子设备
CN113010289A (zh) 一种任务调度方法、装置和系统
CN115827250A (zh) 一种数据存储方法、装置及设备
CN108829345B (zh) 日志文件的数据处理方法和终端设备
CN114116790A (zh) 数据处理的方法及装置
CN111400241B (zh) 数据重构方法和装置
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US11748203B2 (en) Multi-role application orchestration in a distributed storage system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination