CN106445645A - 用于执行分布式计算任务的方法和装置 - Google Patents

用于执行分布式计算任务的方法和装置 Download PDF

Info

Publication number
CN106445645A
CN106445645A CN201610803934.8A CN201610803934A CN106445645A CN 106445645 A CN106445645 A CN 106445645A CN 201610803934 A CN201610803934 A CN 201610803934A CN 106445645 A CN106445645 A CN 106445645A
Authority
CN
China
Prior art keywords
keyword
operator
distributed
key
data collection
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.)
Granted
Application number
CN201610803934.8A
Other languages
English (en)
Other versions
CN106445645B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610803934.8A priority Critical patent/CN106445645B/zh
Priority to JP2019506685A priority patent/JP6810246B2/ja
Priority to EP16915544.7A priority patent/EP3474158A4/en
Priority to KR1020197002248A priority patent/KR102172255B1/ko
Priority to PCT/CN2016/100514 priority patent/WO2018045610A1/zh
Publication of CN106445645A publication Critical patent/CN106445645A/zh
Priority to US16/293,360 priority patent/US11379499B2/en
Application granted granted Critical
Publication of CN106445645B publication Critical patent/CN106445645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

本申请公开了用于执行分布式计算任务的方法和装置。所述方法的一具体实施方式包括:解析分布式计算任务的表达式,得到算子关键字;利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,其中,所述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,所述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。该实施方式实现了对嵌套数据集的操作,从而支持对诸如分布式数据集以及分布式数据集分组后的分组数据进行操作的分布式计算任务,实现了代码可重用。

Description

用于执行分布式计算任务的方法和装置
技术领域
本申请涉及计算机领域,具体涉及分布式计算领域,尤其涉及用于执行分布式计算任务的方法和装置。
背景技术
在分布式计算程序的开发中,用户(例如编写分布式计算程序的工程师)可以利用分布式计算框架提供的接口,编写分布式计算程序。
现有的分布式计算框架提供的接口主要包括原生类接口(例如,用于大规模数据集的并行运算的编程模型MapReduce)、类似结构化查询语言(SQL-Like,Structured QueryLanguage Like)类接口(例如,建立在由Apache基金会所开发的分布式系统基础架构Hadoop上的数据仓库基础构架Hive)和弹性分布式数据集(RDD,Resilient DistributedDatasets)类接口(例如,由加州大学伯克利分校AMP(算法机器和人,Algorithms Machinesand People)实验室开发的用来构建大型的、低延迟的数据分析应用程序的开源集群计算环境Spark)三种类型。其中,原生类接口用配置的方式将多个不同类型的算子拼接成一个有向无环图,用以表达一个完整的分布式计算需求;SQL-Like类接口则是用SQL(结构化查询语言,Structured Query Language Like)的形式来表达一个分布式计算需求,把数据都抽象成一张张表格,每个分布式计算需求都转化成一个SQL检索;RDD类接口则是以数据为中心,整个计算需求被描述为由一个分布式数据集进行一个变换产生一个新的分布式数据集,继续变换,直到产生最终需要的分布式数据集为止这样一个过程。
然而,现有的分布式计算框架普遍存在接口使用较为不便,尤其是缺少嵌套数据集的概念,导致许多逻辑表达起来较为复杂(特别是对分组逻辑的表达),代码较难重用的问题。以SQL-Like类接口为例,由于SQL-Like类接口中缺少嵌套数据集的概念,导致无法描述一些计算需求。以一个常见的计算需求为例:将数据按某个字段分组,在每个分组上取该分组字段取值最大的前10条记录为例,当表达式为“select field_1,field_2from table_1group by field1order by field_2desc limit 10”时,实际上是在全局取出前10条记录,而非每个分组上取出前10条记录;当表达式为“select field_1,field_2from table_1group by field1limit 10order by field_2desc”时,该表达式不符合SQL语法,从而导致SQL-Like类接口无法描述一些常见的计算需求。
发明内容
本申请的目的在于提出一种改进的用于执行分布式计算任务的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于执行分布式计算任务的方法,所述用于执行分布式计算任务的方法包括:解析分布式计算任务的表达式,得到算子关键字,所述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,其中,所述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,所述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
第二方面,本申请提供了一种用于执行分布式计算任务的装置,所述用于执行分布式计算任务的装置包括:表达式解析单元,配置用于解析分布式计算任务的表达式,得到算子关键字,所述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;执行单元,配置用于利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,其中,所述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,所述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
本申请提供的用于执行分布式计算任务的方法和装置,通过解析分布式计算任务的表达式,得到算子关键字,再利用算子关键字对应的算子,基于算子的输入参数执行分布式计算任务,其中,算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。从而实现了对嵌套数据集的操作,使得算子既可以作用于分布式数据集上,也可以作用于对分布式数据集进行分组后所得到的分布式键值对集合中的每个键值对中的值所对应的分布式数据集上,从而支持对诸如分布式数据集以及分布式数据集分组后的分组数据进行操作的分布式计算任务,实现了代码可重用。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于执行分布式计算任务的方法的一个实施例的流程图;
图3是根据本申请的用于执行分布式计算任务的装置的一个实施例的结构示意图;
图4是适于用来实现本申请实施例的分布式计算设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于执行分布式计算任务的方法或装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括分布式计算设备101、102、103、105和网络104。网络104用以在分布式计算设备101、102、103、105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用分布式计算设备101、102、103、105中的任一设备通过网络104与其他分布式计算设备交互,以接收或发送消息等。分布式计算设备101、102、103、105上可以安装有各种客户端应用,例如分布式计算应用、数据库应用等。
分布式计算设备101、102、103、105可以是具有处理器并提供分布式计算服务的各种电子设备,包括但不限于膝上型便携计算机和台式计算机等等。例如分布式计算设备105可以将其上运行的分布式计算任务分配给分布式计算设备101、102、103分别执行部分计算任务,并接收分布式设备101、102、103分别返回的计算结果,再对接收到的各个结果进行汇总。分布式计算设备101、102、103、105上还可以存储有分布式计算任务所需的各种数据。
需要说明的是,本申请实施例所提供的用于执行分布式计算任务的方法可以由分布式计算设备101、102、103、105中任一设备执行,相应地,用于执行分布式计算任务的装置可以设置于分布式计算设备101、102、103、105中任一设备中。
应该理解,图1中的分布式计算设备和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的分布式计算设备和网络。
继续参考图2,其示出了根据本申请的用于执行分布式计算任务方法的一个实施例的流程图200。所述的用于执行分布式计算任务的方法,包括以下步骤:
步骤201,解析分布式计算任务的表达式,得到算子关键字。
在本实施例中,用于执行分布式计算任务的方法运行于其上的电子设备(例如图1所示的分布式计算设备)可以解析分布式计算任务的表达式,得到算子关键字。
在本实施例中,算子关键字可以包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字。
在本实施例中,分布式计算任务是把一个大计算任务拆分成多个小计算任务分布到不同的计算机上去执行,然后再将各个计算机执行小任务的结果进行汇总。通常,分布式计算任务都是通过表达式(即,使用分布式计算框架提供的接口编写的代码)来进行表示的。在分布式计算任务的表达式中可以包含算子关键字,例如,算子关键字可以是分布式计算框架提供的接口中的函数名。每个算子关键字都有对应的算子,该算子表示对数据的操作,例如,算子可以是分布式计算框架提供的接口中的函数。作为示例,分组算子关键字“group_by”对应的分组算子可以实现对分组算子作用于的分布式数据集进行分组操作;操作算子关键字“count”对应的操作算子可以实现对操作算子关键字“count”作用于的分布式数据集内的元素个数进行计数;操作算子关键字“kmeans”对应的操作算子可以实现对操作算子关键字“kmeans”作用于的分布式数据集进行K均值聚类操作。
步骤202,利用算子关键字对应的算子,基于算子的输入参数执行分布式计算任务。
在本实施例中,基于步骤201中得到的算子关键字,上述电子设备可以利用算子关键字对应的算子,基于算子的输入参数执行分布式计算任务。由于算子表示对数据的操作,算子的输入参数就是算子要操作的数据。
在本实施例中,算子的输入参数可以包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,其中,分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
在本实施例中,数据元素可以是能够被序列化的任何数据类型,例如,整型、浮点型、字符串等。分布式数据集可以是分布式存储在至少一台计算机中的数据元素的集合。分布式数据集中的数据元素之间没有顺序关系,数据类型也可以不同。分布式数据集中不同数据元素的取值可以相同(即,分布式数据集的数据元素可重复)。当然,只有一个数据元素的分布式数据集是数据元素,也是一种特殊的分布式数据集。分布式键值对集合中的键值对之间没有顺序关系。分布式键值对集合中不同键值对的取值可以相同(即,分布式键值对集合的键值对可重复)。分布式键值对中的值可以为分布式数据集或分布式键值对集合。
在本实施例的一些可选的实现方式中,还可以利用算子关键字对应的算子,基于算子的输入参数和输出参数执行分布式计算任务。算子除了可以对算子的输入参数进行操作外,算子还可以将对算子的输入参数进行操作后的结果返回给算子的输出参数。算子的输出参数可以是分布式数据集或者分布式键值对集合。
作为示例,在本实施例中,用PCollection表示分布式数据集,用PObject表示只有一个数据元素的分布式数据集,用PTable表示分布式键值对集合。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到分组算子关键字、用于指示上述分组算子关键字对应的分组算子作用于的分布式数据集的被分组分布式数据集关键字和用于指示对上述被分组分布式数据集关键字所指示的分布式数据集进行分组的分组依据的分组条件关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:对上述被分组分布式数据集关键字所指示的分布式数据集按照上述分组条件关键字进行分组,得到分组数据,将上述分组条件关键字和上述分组数据组成键值对以得到分布式键值对集合。
作为示例,对于一个包括数据元素[1,2,3,4,5,6]的分布式数据集pollection,执行表达式“pcollection.group_by(lambda num:num%3);”对应的分布式计算任务包括:首先,解析上述表达式,得到分组算子关键字“group_by”、被分组分布式数据集关键字“pcollection”以及分组条件关键字“lambda num:num%3”;然后,对被分组分布式数据集关键字“pcollection”所指示的分布式数据集“[1,2,3,4,5,6]”按照分组条件关键字“lambda num:num%3”(即,按对3取余)进行分组,得到分组数据[3,6],[1,4]和[2,5],再将分组条件关键字和上述分组数据组成键值对以得到分布式键值对集合:{0:[3,6],1:[1,4],2:[2,5]}。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到操作算子关键字、用于指示上述操作算子关键字对应的操作算子作用于的分布式数据集的被操作分布式数据集关键字和用于指示对上述被操作分布式数据集关键字所指示的分布式数据集进行上述操作算子关键字对应的操作后返回的分布式数据集的返回分布式数据集关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:对上述被操作分布式数据集关键字所指示的分布式数据集执行上述操作算子关键字对应的操作并返回新的分布式数据集,将上述新的分布式数据集作为上述返回分布式数据集关键字所指示的分布式数据集。
作为示例,执行表达式“pcollection_2=pcollection_1.map(lambda num:num*2);”对应的分布式计算任务包括:首先,解析上述表达式,得到操作算子关键字“map(lambda num:num*2)”、被操作分布式数据集关键字“pcollection_1”以及返回分布式数据集关键字“pcollection_2”;然后,对被操作分布式数据集关键字“pcollection_1”所指示的分布式数据集pcollection_1执行操作算子关键字“map(lambda num:num*2)”对应的操作(即,将分布式数据集pcollection_1中的各个数据元素乘以2),并将操作的结果作为新的分布式数据集返回,再将返回的新的分布式数据集作为返回分布式数据集关键字“pcollection_2”所指示的分布式数据集pcollection_2。
又例如,执行表达式“pcollection_2=pcollection_1.count();”对应的分布式计算任务包括:首先,解析上述表达式,得到操作算子关键字“count()”、被操作分布式数据集关键字“pcollection_1”以及返回分布式数据集关键字“pcollection_2”;然后,对被操作分布式数据集关键字“pcollection_1”所指示的分布式数据集pcollection_1执行操作算子关键字“count()”对应的操作(即,对分布式数据集pcollection_1中的数据元素个数计数),并将操作的结果(即,计数结果)作为新的分布式数据集返回,并将新的分布式数据集作为返回分布式数据集关键字“pcollection_2”所指示的分布式数据集pcollection_2。这里,需要指出的是“pcollection_2”是一个特殊的分布式数据集,其中只有一个数据元素,该数据元素的取值为pcollection_1中的数据元素个数。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到遍历算子关键字、用于指示上述遍历算子关键字对应的遍历算子作用于的分布式键值对集合的被遍历分布式键值对集合关键字和用于指示上述遍历算子关键字对应的遍历算子作用于的算子的被遍历算子关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:对上述被遍历分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值所对应的分布式数据集执行上述被遍历算子关键字对应的操作。
作为示例,执行表达式“ptable.apply_values(count_distinct);”对应的分布式计算任务包括:首先,解析上述表达式,得到遍历算子关键字“apply_values”、被遍历分布式键值对集合关键字“ptable”以及被遍历算子关键字“count_distinct”;然后,对被遍历分布式键值对集合关键字“ptable”所指示的分布式键值对集合ptable中各个键值对中的值所对应的分布式数据集执行被遍历算子关键字“count_distinct”对应的操作(即,统计分布式数据集中不重复的数据元素的个数)。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到值获取算子关键字、用于指示上述值获取算子关键字对应的值获取算子作用于的分布式键值对集合的被取值分布式键值对集合关键字和用于指示对上述被取值分布式键值对集合关键字所指示的分布式键值对集合执行上述值获取算子关键字对应的操作后返回的分布式数据集的值获取分布式数据集关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:将上述被取值分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值作为数据元素添加到上述值获取分布式数据集关键字所指示的分布式数据集中。
作为示例,对一个取值为{0:[3,6],1:[1,4],2:[2,5]}的分布式键值对集合ptable,执行表达式“pcollection=ptable.flatten_values();”对应的分布式计算任务包括:首先,解析上述表达式,得到值获取算子关键字“flatten_values”、被取值分布式键值对集合关键字“ptable”以及值获取分布式数据集关键字“pcollection”;然后,将被取值分布式键值对集合关键字“ptable”所指示的分布式键值对集合中各个键值对中的值作为数据元素添加到值获取分布式数据集关键字“pcollection”所指示的分布式数据集pcollection中,所得到的pcollection的取值为:[1,2,3,4,5,6]。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到键值对获取算子关键字、用于指示上述键值对获取算子关键字对应的键值对获取算子作用于的分布式键值对集合的被取键值对分布式键值对集合关键字和用于指示对上述被取键值对分布式键值对集合关键字所指示的分布式键值对集合执行上述键值对获取算子关键字对应的操作后返回的分布式数据集的键值对获取分布式数据集关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:对上述被取键值对分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中值为分布式数据集的键值对,将该分布式数据集中的各个数据元素分别与该键值对中的键组合以形成新的键值对,将所形成的新的键值对作为数据元素添加到上述键值对获取分布式数据集关键字所指示的分布式数据集中。
作为示例,对取值为{0:[3,6],1:[1,4],2:[2,5]}的分布式键值对集合ptable,执行表达式“pcollection=ptable.flatten();”对应的分布式计算任务包括:首先,解析上述表达式,得到键值对获取算子关键字“flatten”、被取键值对分布式键值对集合关键字“ptable”以及键值对获取分布式数据集关键字“pcollection”;然后,对被取键值对分布式键值对集合关键字“ptable”所指示的分布式键值对集合ptable中各个键值对中值为分布式数据集的键值对,将该分布式数据集中的各个数据元素分别与该键值对中的键组合以形成新的键值对,将所形成的新的键值对作为数据元素添加到键值对获取分布式数据集关键字“pcollection”所指示的分布式数据集pcollection中。所得到的pcollection为:[0:3,0:6,1:1,1:4,2:2,2:5],其中包括六个数据元素,每个数据元素都是一个键值对。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到文件读取算子关键字、用于指示上述文件读取算子关键字对应的文件读取算子作用于的分布式数据集的文件读取分布式数据集关键字和用于指示上述文件读取算子作用于的文件的读取文件存储路径;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:将上述读取文件存储路径所指示的文件中的数据写入上述文件读取分布式数据集关键字所指示的分布式数据集中。
作为示例,执行表达式“pcollection=pipeline.read(From.TextFile('hdfs:///input.txt'));”对应的分布式计算任务包括:首先,解析上述表达式,得到文件读取算子关键字“pipeline.read(From.TextFile”、文件读取分布式数据集关键字“pcollection”以及读取文件存储路径“hdfs:///input.txt”;然后,将读取文件存储路径“hdfs:///input.txt”所指示的input.txt文件中的数据写入文件读取分布式数据集关键字“pcollection”所指示的分布式数据集pcollection中。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到内存读取算子关键字、用于指示上述内存读取算子作用于的分布式数据集的内存读取分布式数据集关键字和用于指示上述内存读取算子作用于的内存的读取内存地址关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:将上述读取内存地址关键字所指示的内存中的数据写入上述内存读取分布式数据集关键字所指示的分布式数据集中。
作为示例,执行表达式“pcollection=pipeline.parallelize([1,2,3]);”对应的分布式计算任务包括:首先,解析上述表达式,得到内存读取算子关键字“pipeline.parallelize”、内存读取分布式数据集关键字“pcollection”以及读取内存地址关键字“[1,2,3]”;然后,将读取内存地址关键字“[1,2,3]”所指示的内存中的数据[1,2,3]写入内存读取分布式数据集关键字“pcollection”所指示的分布式数据集pcollection中。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到文件写入算子关键字、用于指示上述文件写入算子作用于的分布式数据集的文件写入分布式数据集关键字和用于指示上述文件写入算子作用于的文件的写入文件存储路径;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:将上述文件写入分布式数据集关键字所指示的分布式数据集中的数据写入上述写入文件存储路径所指示的文件中。
作为示例,执行表达式“pipeline.write(pcollection,To.SequenceFile('hdfs:///output.txt'));”对应的分布式计算任务包括:首先,解析上述表达式,得到文件写入算子关键字“pipeline.write”、文件写入分布式数据集关键字“pcollection”以及写入文件存储路径“hdfs:///output.txt”;然后,将文件写入分布式数据集关键字“pcollection”所指示的分布式数据集中的数据写入上述写入文件存储路径“hdfs:///output.txt”所指示的output.txt文件中。
在本实施例的一些可选的实现方式中,上述解析分布式计算任务的表达式,得到算子关键字,可以包括:解析分布式计算任务的表达式,得到内存写入算子关键字、用于指示上述内存写入算子作用于的分布式数据集的内存写入分布式数据集关键字和用于指示上述内存写入算子作用于的内存的写入内存地址关键字;以及上述利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,可以包括:将上述内存写入分布式数据集关键字所指示的分布式数据集中的数据写入上述写入内存地址关键字所指示的内存中。
作为示例,执行表达式“a_list=pcollection.get();”对应的分布式计算任务包括:首先,解析上述表达式,得到内存写入算子关键字“get()”、内存写入分布式数据集关键字“pcollection”和写入内存地址关键字“a_list”;然后,将内存写入分布式数据集关键字“pcollection”所指示的分布式数据集pcollection中的数据写入写入内存地址关键字“a_list”所指示的内存中。
本申请的上述实施例提供的用于执行分布式计算任务的方法,通过解析分布式计算任务的表达式,得到算子关键字,再利用算子关键字对应的算子,基于算子的输入参数执行分布式计算任务。实现了对嵌套数据集的操作,使得算子既可以作用于分布式数据集上,也可以作用于对分布式数据集进行分组后所得到的分布式键值对集合中的每个键值对中的值所对应的分布式数据集上,从而支持对诸如分布式数据集以及分布式数据集分组后的分组数据进行操作的分布式计算任务,实现了代码可重用。
进一步参考图3,作为对上述各图所示方法的实现,本申请提供了一种用于执行分布式计算任务的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的用于执行分布式计算任务的装置300包括:表达式解析单元301和执行单元302。其中,表达式解析单元301,配置用于解析分布式计算任务的表达式,得到算子关键字,上述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;执行单元302,配置用于利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,其中,上述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,上述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
在本实施例中,用于执行分布式计算任务的装置300的表达式解析单元301和执行单元302的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201和步骤202的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到分组算子关键字、用于指示上述分组算子关键字对应的分组算子作用于的分布式数据集的被分组分布式数据集关键字和用于指示对上述被分组分布式数据集关键字所指示的分布式数据集进行分组的分组依据的分组条件关键字;以及上述执行单元302可以进一步配置用于:对上述被分组分布式数据集关键字所指示的分布式数据集按照上述分组条件关键字进行分组,得到分组数据,将上述分组条件关键字和上述分组数据组成键值对以得到分布式键值对集合。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到操作算子关键字、用于指示上述操作算子关键字对应的操作算子作用于的分布式数据集的被操作分布式数据集关键字和用于指示对上述被操作分布式数据集关键字所指示的分布式数据集进行上述操作算子关键字对应的操作后返回的分布式数据集的返回分布式数据集关键字;以及上述执行单元302可以进一步配置用于:对上述被操作分布式数据集关键字所指示的分布式数据集执行上述操作算子关键字对应的操作并返回新的分布式数据集,将上述新的分布式数据集作为上述返回分布式数据集关键字所指示的分布式数据集。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到遍历算子关键字、用于指示上述遍历算子关键字对应的遍历算子作用于的分布式键值对集合的被遍历分布式键值对集合关键字和用于指示上述遍历算子关键字对应的遍历算子作用于的算子的被遍历算子关键字;以及上述执行单元302可以进一步配置用于:对上述被遍历分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值所对应的分布式数据集执行上述被遍历算子关键字对应的操作。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到值获取算子关键字、用于指示上述值获取算子关键字对应的值获取算子作用于的分布式键值对集合的被取值分布式键值对集合关键字和用于指示对上述被取值分布式键值对集合关键字所指示的分布式键值对集合执行上述值获取算子关键字对应的操作后返回的分布式数据集的值获取分布式数据集关键字;以及上述执行单元302可以进一步配置用于:将上述被取值分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值作为数据元素添加到上述值获取分布式数据集关键字所指示的分布式数据集中。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到键值对获取算子关键字、用于指示上述键值对获取算子关键字对应的键值对获取算子作用于的分布式键值对集合的被取键值对分布式键值对集合关键字和用于指示对上述被取键值对分布式键值对集合关键字所指示的分布式键值对集合执行上述键值对获取算子关键字对应的操作后返回的分布式数据集的键值对获取分布式数据集关键字;以及上述执行单元302可以进一步配置用于:对上述被取键值对分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中值为分布式数据集的键值对,将该分布式数据集中的各个数据元素分别与该键值对中的键组合以形成新的键值对,将所形成的新的键值对作为数据元素添加到上述键值对获取分布式数据集关键字所指示的分布式数据集中。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到文件读取算子关键字、用于指示上述文件读取算子关键字对应的文件读取算子作用于的分布式数据集的文件读取分布式数据集关键字和用于指示上述文件读取算子作用于的文件的读取文件存储路径;以及上述执行单元302可以进一步配置用于:将上述读取文件存储路径所指示的文件中的数据写入上述文件读取分布式数据集关键字所指示的分布式数据集中。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到内存读取算子关键字、用于指示上述内存读取算子作用于的分布式数据集的内存读取分布式数据集关键字和用于指示上述内存读取算子作用于的内存的读取内存地址关键字;以及上述执行单元302可以进一步配置用于:将上述读取内存地址关键字所指示的内存中的数据写入上述内存读取分布式数据集关键字所指示的分布式数据集中。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到文件写入算子关键字、用于指示上述文件写入算子作用于的分布式数据集的文件写入分布式数据集关键字和用于指示上述文件写入算子作用于的文件的写入文件存储路径;以及上述执行单元302可以进一步配置用于:将上述文件写入分布式数据集关键字所指示的分布式数据集中的数据写入上述写入文件存储路径所指示的文件中。
在本实施例的一些可选的实现方式中,上述表达式解析单元301可以进一步配置用于:解析分布式计算任务的表达式,得到内存写入算子关键字、用于指示上述内存写入算子作用于的分布式数据集的内存写入分布式数据集关键字和用于指示上述内存写入算子作用于的内存的写入内存地址关键字;以及上述执行单元302可以进一步配置用于:将上述内存写入分布式数据集关键字所指示的分布式数据集中的数据写入上述写入内存地址关键字所指示的内存中。
下面参考图4,其示出了适于用来实现本申请实施例的分布式计算设备的计算机系统的结构示意图。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口404也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口404。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括表达式解析单元和执行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,表达式解析单元还可以被描述为“解析分布式计算任务的表达式的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:解析分布式计算任务的表达式,得到算子关键字,上述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;利用上述算子关键字对应的算子,基于上述算子的输入参数执行上述分布式计算任务,其中,上述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,上述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (20)

1.一种用于执行分布式计算任务的方法,其特征在于,所述方法包括:
解析分布式计算任务的表达式,得到算子关键字,所述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;
利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,其中,所述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,所述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
2.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到分组算子关键字、用于指示所述分组算子关键字对应的分组算子作用于的分布式数据集的被分组分布式数据集关键字和用于指示对所述被分组分布式数据集关键字所指示的分布式数据集进行分组的分组依据的分组条件关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
对所述被分组分布式数据集关键字所指示的分布式数据集按照所述分组条件关键字进行分组,得到分组数据,将所述分组条件关键字和所述分组数据组成键值对以得到分布式键值对集合。
3.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到操作算子关键字、用于指示所述操作算子关键字对应的操作算子作用于的分布式数据集的被操作分布式数据集关键字和用于指示对所述被操作分布式数据集关键字所指示的分布式数据集进行所述操作算子关键字对应的操作后返回的分布式数据集的返回分布式数据集关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
对所述被操作分布式数据集关键字所指示的分布式数据集执行所述操作算子关键字对应的操作并返回新的分布式数据集,将所述新的分布式数据集作为所述返回分布式数据集关键字所指示的分布式数据集。
4.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到遍历算子关键字、用于指示所述遍历算子关键字对应的遍历算子作用于的分布式键值对集合的被遍历分布式键值对集合关键字和用于指示所述遍历算子关键字对应的遍历算子作用于的算子的被遍历算子关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
对所述被遍历分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值所对应的分布式数据集执行所述被遍历算子关键字对应的操作。
5.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到值获取算子关键字、用于指示所述值获取算子关键字对应的值获取算子作用于的分布式键值对集合的被取值分布式键值对集合关键字和用于指示对所述被取值分布式键值对集合关键字所指示的分布式键值对集合执行所述值获取算子关键字对应的操作后返回的分布式数据集的值获取分布式数据集关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
将所述被取值分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值作为数据元素添加到所述值获取分布式数据集关键字所指示的分布式数据集中。
6.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到键值对获取算子关键字、用于指示所述键值对获取算子关键字对应的键值对获取算子作用于的分布式键值对集合的被取键值对分布式键值对集合关键字和用于指示对所述被取键值对分布式键值对集合关键字所指示的分布式键值对集合执行所述键值对获取算子关键字对应的操作后返回的分布式数据集的键值对获取分布式数据集关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
对所述被取键值对分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中值为分布式数据集的键值对,将该分布式数据集中的各个数据元素分别与该键值对中的键组合以形成新的键值对,将所形成的新的键值对作为数据元素添加到所述键值对获取分布式数据集关键字所指示的分布式数据集中。
7.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到文件读取算子关键字、用于指示所述文件读取算子关键字对应的文件读取算子作用于的分布式数据集的文件读取分布式数据集关键字和用于指示所述文件读取算子作用于的文件的读取文件存储路径;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
将所述读取文件存储路径所指示的文件中的数据写入所述文件读取分布式数据集关键字所指示的分布式数据集中。
8.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到内存读取算子关键字、用于指示所述内存读取算子作用于的分布式数据集的内存读取分布式数据集关键字和用于指示所述内存读取算子作用于的内存的读取内存地址关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
将所述读取内存地址关键字所指示的内存中的数据写入所述内存读取分布式数据集关键字所指示的分布式数据集中。
9.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到文件写入算子关键字、用于指示所述文件写入算子作用于的分布式数据集的文件写入分布式数据集关键字和用于指示所述文件写入算子作用于的文件的写入文件存储路径;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
将所述文件写入分布式数据集关键字所指示的分布式数据集中的数据写入所述写入文件存储路径所指示的文件中。
10.根据权利要求1所述的方法,其特征在于,所述解析分布式计算任务的表达式,得到算子关键字,包括:
解析分布式计算任务的表达式,得到内存写入算子关键字、用于指示所述内存写入算子作用于的分布式数据集的内存写入分布式数据集关键字和用于指示所述内存写入算子作用于的内存的写入内存地址关键字;以及
所述利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,包括:
将所述内存写入分布式数据集关键字所指示的分布式数据集中的数据写入所述写入内存地址关键字所指示的内存中。
11.一种用于执行分布式计算任务的装置,其特征在于,所述装置包括:
表达式解析单元,配置用于解析分布式计算任务的表达式,得到算子关键字,所述算子关键字包括以下至少一项:分组算子关键字、操作算子关键字、遍历算子关键字、值获取算子关键字、键值对获取算子关键字、文件读取算子关键字、内存读取算子关键字、文件写入算子关键字、内存写入算子关键字;
执行单元,配置用于利用所述算子关键字对应的算子,基于所述算子的输入参数执行所述分布式计算任务,其中,所述算子的输入参数包括以下至少一项:分布式存储的由至少一个数据元素组成的分布式数据集、分布式存储的由至少一对键值对组成的分布式键值对集合,所述分布式键值对集合中键值对的值为分布式数据集或分布式键值对集合。
12.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到分组算子关键字、用于指示所述分组算子关键字对应的分组算子作用于的分布式数据集的被分组分布式数据集关键字和用于指示对所述被分组分布式数据集关键字所指示的分布式数据集进行分组的分组依据的分组条件关键字;以及
所述执行单元进一步配置用于:
对所述被分组分布式数据集关键字所指示的分布式数据集按照所述分组条件关键字进行分组,得到分组数据,将所述分组条件关键字和所述分组数据组成键值对以得到分布式键值对集合。
13.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到操作算子关键字、用于指示所述操作算子关键字对应的操作算子作用于的分布式数据集的被操作分布式数据集关键字和用于指示对所述被操作分布式数据集关键字所指示的分布式数据集进行所述操作算子关键字对应的操作后返回的分布式数据集的返回分布式数据集关键字;以及
所述执行单元进一步配置用于:
对所述被操作分布式数据集关键字所指示的分布式数据集执行所述操作算子关键字对应的操作并返回新的分布式数据集,将所述新的分布式数据集作为所述返回分布式数据集关键字所指示的分布式数据集。
14.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到遍历算子关键字、用于指示所述遍历算子关键字对应的遍历算子作用于的分布式键值对集合的被遍历分布式键值对集合关键字和用于指示所述遍历算子关键字对应的遍历算子作用于的算子的被遍历算子关键字;以及
所述执行单元进一步配置用于:
对所述被遍历分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值所对应的分布式数据集执行所述被遍历算子关键字对应的操作。
15.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到值获取算子关键字、用于指示所述值获取算子关键字对应的值获取算子作用于的分布式键值对集合的被取值分布式键值对集合关键字和用于指示对所述被取值分布式键值对集合关键字所指示的分布式键值对集合执行所述值获取算子关键字对应的操作后返回的分布式数据集的值获取分布式数据集关键字;以及
所述执行单元进一步配置用于:
将所述被取值分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中的值作为数据元素添加到所述值获取分布式数据集关键字所指示的分布式数据集中。
16.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到键值对获取算子关键字、用于指示所述键值对获取算子关键字对应的键值对获取算子作用于的分布式键值对集合的被取键值对分布式键值对集合关键字和用于指示对所述被取键值对分布式键值对集合关键字所指示的分布式键值对集合执行所述键值对获取算子关键字对应的操作后返回的分布式数据集的键值对获取分布式数据集关键字;以及
所述执行单元进一步配置用于:
对所述被取键值对分布式键值对集合关键字所指示的分布式键值对集合中各个键值对中值为分布式数据集的键值对,将该分布式数据集中的各个数据元素分别与该键值对中的键组合以形成新的键值对,将所形成的新的键值对作为数据元素添加到所述键值对获取分布式数据集关键字所指示的分布式数据集中。
17.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到文件读取算子关键字、用于指示所述文件读取算子关键字对应的文件读取算子作用于的分布式数据集的文件读取分布式数据集关键字和用于指示所述文件读取算子作用于的文件的读取文件存储路径;以及
所述执行单元进一步配置用于:
将所述读取文件存储路径所指示的文件中的数据写入所述文件读取分布式数据集关键字所指示的分布式数据集中。
18.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到内存读取算子关键字、用于指示所述内存读取算子作用于的分布式数据集的内存读取分布式数据集关键字和用于指示所述内存读取算子作用于的内存的读取内存地址关键字;以及
所述执行单元进一步配置用于:
将所述读取内存地址关键字所指示的内存中的数据写入所述内存读取分布式数据集关键字所指示的分布式数据集中。
19.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到文件写入算子关键字、用于指示所述文件写入算子作用于的分布式数据集的文件写入分布式数据集关键字和用于指示所述文件写入算子作用于的文件的写入文件存储路径;以及
所述执行单元进一步配置用于:
将所述文件写入分布式数据集关键字所指示的分布式数据集中的数据写入所述写入文件存储路径所指示的文件中。
20.根据权利要求11所述的装置,其特征在于,所述表达式解析单元进一步配置用于:
解析分布式计算任务的表达式,得到内存写入算子关键字、用于指示所述内存写入算子作用于的分布式数据集的内存写入分布式数据集关键字和用于指示所述内存写入算子作用于的内存的写入内存地址关键字;以及
所述执行单元进一步配置用于:
将所述内存写入分布式数据集关键字所指示的分布式数据集中的数据写入所述写入内存地址关键字所指示的内存中。
CN201610803934.8A 2016-09-06 2016-09-06 用于执行分布式计算任务的方法和装置 Active CN106445645B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201610803934.8A CN106445645B (zh) 2016-09-06 2016-09-06 用于执行分布式计算任务的方法和装置
JP2019506685A JP6810246B2 (ja) 2016-09-06 2016-09-28 分散コンピューティングタスクを実行するための方法及び装置
EP16915544.7A EP3474158A4 (en) 2016-09-06 2016-09-28 METHOD AND DEVICE FOR PERFORMING DISTRIBUTED COMPUTER TASK
KR1020197002248A KR102172255B1 (ko) 2016-09-06 2016-09-28 분산형 컴퓨팅 태스크를 실행하기 위한 방법 및 장치
PCT/CN2016/100514 WO2018045610A1 (zh) 2016-09-06 2016-09-28 用于执行分布式计算任务的方法和装置
US16/293,360 US11379499B2 (en) 2016-09-06 2019-03-05 Method and apparatus for executing distributed computing task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610803934.8A CN106445645B (zh) 2016-09-06 2016-09-06 用于执行分布式计算任务的方法和装置

Publications (2)

Publication Number Publication Date
CN106445645A true CN106445645A (zh) 2017-02-22
CN106445645B CN106445645B (zh) 2019-11-26

Family

ID=58165025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610803934.8A Active CN106445645B (zh) 2016-09-06 2016-09-06 用于执行分布式计算任务的方法和装置

Country Status (6)

Country Link
US (1) US11379499B2 (zh)
EP (1) EP3474158A4 (zh)
JP (1) JP6810246B2 (zh)
KR (1) KR102172255B1 (zh)
CN (1) CN106445645B (zh)
WO (1) WO2018045610A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417671A (zh) * 2019-07-31 2019-11-05 中国工商银行股份有限公司 数据传输的限流方法和服务器
CN111753040A (zh) * 2020-06-30 2020-10-09 北京超图软件股份有限公司 地理空间数据的处理方法、装置及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245184B (zh) * 2019-05-13 2022-04-12 中国邮政集团公司广东省分公司 一种基于tagSQL的数据处理方法、系统及装置
SG10202103347VA (en) * 2021-04-01 2021-11-29 Grabtaxi Holdings Pte Ltd Distributed computing system and method for generating a vectortile of a selected squared map area
CN115952426B (zh) * 2023-03-10 2023-06-06 中南大学 基于随机采样的分布式噪音数据聚类方法及用户分类方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置
CN104115146A (zh) * 2012-02-14 2014-10-22 阿尔卡特朗讯公司 在分布式系统中存储和搜索带标签的内容项的方法
CN105426504A (zh) * 2015-11-27 2016-03-23 陕西艾特信息化工程咨询有限责任公司 一种基于内存计算的分布式数据分析处理方法
CN105786808A (zh) * 2014-12-15 2016-07-20 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
CN105824957A (zh) * 2016-03-30 2016-08-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN105912609A (zh) * 2016-04-06 2016-08-31 中国农业银行股份有限公司 一种数据文件处理方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254808B2 (en) * 2002-07-20 2007-08-07 Microsoft Corporation Method for specifying and parsing expressions
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US20080294624A1 (en) * 2007-05-25 2008-11-27 Ontogenix, Inc. Recommendation systems and methods using interest correlation
US7676461B2 (en) 2007-07-18 2010-03-09 Microsoft Corporation Implementation of stream algebra over class instances
US7917463B2 (en) * 2008-10-10 2011-03-29 Business.Com, Inc. System and method for data warehousing and analytics on a distributed file system
MX2012009291A (es) * 2010-02-10 2012-12-17 Tiki Labs Sas Metodo y sistema para la organización de informacion con una interface de usuario que puede compartirse.
US20120109935A1 (en) * 2010-11-02 2012-05-03 Microsoft Corporation Object model to key-value data model mapping
US10956422B2 (en) * 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10275736B1 (en) * 2012-12-06 2019-04-30 Google Llc Updating information in a product database
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库系统
CN104123288B (zh) * 2013-04-24 2018-06-01 阿里巴巴集团控股有限公司 一种数据查询方法及装置
US9734192B2 (en) * 2013-09-20 2017-08-15 Oracle International Corporation Producing sentiment-aware results from a search query
US9646003B2 (en) * 2013-11-20 2017-05-09 Wolfram Research, Inc. Cloud storage methods and systems
IN2014CH01330A (zh) * 2014-03-13 2015-09-18 Infosys Ltd
US10235431B2 (en) * 2016-01-29 2019-03-19 Splunk Inc. Optimizing index file sizes based on indexed data storage conditions
US10607150B2 (en) * 2016-02-23 2020-03-31 Splunk Inc. Machine-learning data analysis tool
US10122788B2 (en) * 2016-03-29 2018-11-06 Amazon Technologies, Inc. Managed function execution for processing data streams in real time
US11227208B2 (en) * 2016-07-29 2022-01-18 Splunk Inc. Automated data-generation for event-based system
CN106406985B (zh) * 2016-09-21 2019-10-11 北京百度网讯科技有限公司 分布式计算框架和分布式计算方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115146A (zh) * 2012-02-14 2014-10-22 阿尔卡特朗讯公司 在分布式系统中存储和搜索带标签的内容项的方法
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置
CN105786808A (zh) * 2014-12-15 2016-07-20 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
CN105426504A (zh) * 2015-11-27 2016-03-23 陕西艾特信息化工程咨询有限责任公司 一种基于内存计算的分布式数据分析处理方法
CN105824957A (zh) * 2016-03-30 2016-08-03 电子科技大学 分布式内存列式数据库的查询引擎系统及查询方法
CN105912609A (zh) * 2016-04-06 2016-08-31 中国农业银行股份有限公司 一种数据文件处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417671A (zh) * 2019-07-31 2019-11-05 中国工商银行股份有限公司 数据传输的限流方法和服务器
CN110417671B (zh) * 2019-07-31 2023-01-06 中国工商银行股份有限公司 数据传输的限流方法和服务器
CN111753040A (zh) * 2020-06-30 2020-10-09 北京超图软件股份有限公司 地理空间数据的处理方法、装置及系统

Also Published As

Publication number Publication date
CN106445645B (zh) 2019-11-26
EP3474158A1 (en) 2019-04-24
JP6810246B2 (ja) 2021-01-06
EP3474158A4 (en) 2019-08-21
WO2018045610A1 (zh) 2018-03-15
JP2019531539A (ja) 2019-10-31
KR20190021397A (ko) 2019-03-05
KR102172255B1 (ko) 2020-10-30
US11379499B2 (en) 2022-07-05
US20190213007A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
Barbierato et al. Performance evaluation of NoSQL big-data applications using multi-formalism models
CN106445645A (zh) 用于执行分布式计算任务的方法和装置
Yan et al. Quegel: A general-purpose query-centric framework for querying big graphs
US9466041B2 (en) User selected flow graph modification
CN105550268A (zh) 大数据流程建模分析引擎
CN103226762A (zh) 一种基于云计算平台的物流配送方法
CN103631922A (zh) 基于Hadoop集群的大规模Web信息提取方法及系统
Bala et al. P-ETL: Parallel-ETL based on the MapReduce paradigm
CN107315843A (zh) 海量结构化数据的存储方法和系统
JPH04257928A (ja) 並列計算機におけるプロセッサ割り当て方法、及び装置
CN106406985B (zh) 分布式计算框架和分布式计算方法
Azgomi et al. MR-MVPP: A map-reduce-based approach for creating MVPP in data warehouses for big data applications
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
Wieder et al. Toward data lakes as central building blocks for data management and analysis
US11928083B2 (en) Determining collaboration recommendations from file path information
CN103853844A (zh) 基于Hadoop的关系表非冗余键集合识别方法
Laudanno et al. Additional analytical support for a new method to compute the likelihood of diversification models
Jahnavi et al. A novel processing of scalable web log data using map reduce framework
CN106096159A (zh) 一种云平台下的分布式系统行为仿真分析系统的实现方法
CN108874395A (zh) 一种组件化流处理过程中的硬编译方法及装置
Munir et al. Resilientstore: A heuristic-based data format selector for intermediate results
Mishra et al. Challenges in big data application: a review
Bala et al. Extracting-transforming-loading modeling approach for big data analytics
CN110019252A (zh) 信息处理的方法、装置及电子设备
Jiang Research and practice of big data analysis process based on hadoop framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant