CN105593818A - 用于调度分布式工作流程任务的装置和方法 - Google Patents

用于调度分布式工作流程任务的装置和方法 Download PDF

Info

Publication number
CN105593818A
CN105593818A CN201580001459.6A CN201580001459A CN105593818A CN 105593818 A CN105593818 A CN 105593818A CN 201580001459 A CN201580001459 A CN 201580001459A CN 105593818 A CN105593818 A CN 105593818A
Authority
CN
China
Prior art keywords
data
workflow
profile
server according
scheduling
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
CN201580001459.6A
Other languages
English (en)
Other versions
CN105593818B (zh
Inventor
P·沃斯
K·瑙罗克
M·麦克马努斯
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.)
Datameer Inc
Original Assignee
Datameer Inc
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 Datameer Inc filed Critical Datameer Inc
Publication of CN105593818A publication Critical patent/CN105593818A/zh
Application granted granted Critical
Publication of CN105593818B publication Critical patent/CN105593818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种服务器具有处理器和存储器,该存储器存储由处理器运行以访问调度工具的指令,该调度工具包括具有工作流程任务调度和工作流程任务依赖性的实体工作负载简档。与实体工作负载简档内的工作流程任务相关联的经处理的数据被识别。工作流程任务依赖性被分析,以更改工作流程任务调度来对依赖于经处理的数据的工作流程任务指定优先级。

Description

用于调度分布式工作流程任务的装置和方法
相关申请的交叉引用
本申请要求于2014年10月3日提交的美国专利申请No.14/506,500的优先权,其内容通过引用并入本文中。
技术领域
本发明大体涉及计算机网络中的分布式数据处理。更具体地,本发明涉及在计算机网络中调度分布式工作流程任务。
背景技术
MapReduce是用于利用运行在计算机的集群上的并行的、分布式算法来处理并生成大数据集的编程模型和相关联的实施方式。MapReduce利用分布式服务器来并行地运行各种任务,同时管理系统的各个部分之间的所有通信和数据传输。这提供冗余和容错。ApacheHadoop平台是实施MapReduce的开源软件框架。假设存储在分布式文件系统中的数据为Hadoop分布式文件系统(HDFS)或其衍生系统。
存储器中数据处理是快速的。ApacheSpark提供针对存储器中集群计算的基元,存储器中集群计算允许用户程序将数据加载到集群的存储器中并重复地对其查询。ApacheSpark没有依赖MapReduce范式并且在某些情况下具有快得多的性能。
将令人期望的是,在运行复杂的分析工作流程的同时利用存储器中数据处理和MapReduce的强度。
发明内容
一种服务器具有处理器和存储器,该存储器存储由处理器运行以访问调度工具的指令,该调度工具包括具有工作流程任务调度和工作流程任务依赖性的实体工作负载简档。与实体工作负载简档内的工作流程任务相关联的经处理的数据被识别。工作流程任务依赖性被分析,以更改工作流程任务调度来对依赖于经处理的数据的工作流程任务指定优先级。
附图说明
联系结合附图进行的下文详细描述来更完整地理解本发明,在附图中:
图1图示了用于实施本发明的操作的系统。
图2图示了与本发明的实施例相关联的一般处理操作。
图3图示了与本发明的实施例相关联的更具体的处理操作。
图4图示了与本发明的实施例相关联的DAG处理。
图5图示了基于经处理的数据的任务优先级指定。
在附图的若干视图中,类似的附图标记指代对应的部分。
具体实施方式
图1图示了被配置为实施本发明的操作的系统100。该系统包括主节点或协调者节点102和用于实施分布式计算环境的从属节点或工作者节点104_1到104_N的集合。计算机经由网络106连接,网络106可以是有线网络和无线网络的任何组合。客户端计算机107还连接到网络106。
主节点102包括标准部件,诸如经由总线114连接的中央处理单元110和输入/输出设备112。输入/输出设备112可以包括键盘、鼠标、显示器等等。网络接口电路116还连接到总线114以提供到网络106的连接。存储器120还连接到总线114。存储器120存储主模块122,主模块122包括由中央处理单元110运行以实施本发明的操作的指令。
从属计算机104_1还包括标准部件,诸如中央处理单元130、输入/输出设备132、总线134和网络接口电路136。存储器140连接到总线134。存储器140存储从属模块142,从属模块142包括由中央处理单元130运行以实施与本发明的实施例相关联的分布式处理任务的指令。
客户端计算机107还包括标准部件,诸如中央处理单元150、输入/输出设备152、总线154和网络接口电路156。存储器160还连接到总线154。存储器160存储客户端模块162,客户端模块162可以是用于访问并启动计算机102和104_1到104_N上的工作流程任务的浏览器或专用应用。
图2图示了工作流程调度器200。工作流程调度器200可以是在计算机102上运行的主模块122。工作流程调度器还可以跨计算机104_1到104_N分布。工作流程调度器200访问调度工具202的集合。调度工具202可以在主节点102上或者可以跨多个工作者节点104_1到104_N分布。
工作流程调度器200访问调度工具202以调度实体工作流程任务并且备选地将它们分配给处理资源(例如,单个节点)204或MapReduce处理资源(例如,ApacheHadoop)206。在一些实施例中,工作流程调度器200连续地监控任务运行并且动态地更改任务调度。下面详细描述这些调度操作。
图3更具体地表征与工作流程调度器200相关联的工作。数据集被导入300到分布式数据系统中。在导入过程期间,数据被概括302。简档数据之后被加载到数据简档存储库304中。数据简档存储库304能用作对工作流程调度器200可用的调度工具。数据简档存储库304可以驻存在主模块122中或者可以跨各个节点104分布。下面讨论数据概括操作的示例。
工作流程调度器200还具有对以预览引擎306为形式的调度工具的访问。预览引擎处理与工作流程任务相关联的数据的子集以将分析和见解发展到对整个任务的运行中。该信息被用于通知完整工作流程任务的调度和运行。
工作流程调度器200还具有对以实体工作负载简档308为形式的调度工具的访问。实体工作负载简档308具有工作流程任务调度和工作流程任务依赖性。下面提供实体工作负载简档处理的示例。
工作流程调度器200还具有对集群资源可用性信息310的访问。集群资源可用性信息310包括对系统100中的资源使用和可用性的分析。工作流程调度器还可以访问操作符组成分析器312调度工具。操作符组成分析器312提供对与工作流程任务相关联的操作符的细粒度分析,以优化对这样的操作符的调度和运行。
工作流程调度器200选择性地将工作流程任务分配给处理资源204和map-reduce处理资源206。如下面所讨论的,SJEF是小作业运行框架(SJEF),而OMREF是优化的MapReduce框架。与这些任务的运行相关联的分析被存储为历史运行简档314,其对工作流程调度器200可用。
联系下面对技术的具体实例化的讨论来更完整地理解本发明的实施例。如本文中使用的,分析工作流程是针对逻辑单元中的一个或多个数据集执行的一系列操作。这些操作能够由通过任何数量的运行框架运行的任何数量的物理作业构成。作业常常(几乎总是)包括多个较低级作业。
有向无环图(DAG)是被建模为数据流程图的分析工作流程的低级表示。图中的每个顶点(节点)表示诸如过滤、变换或连接的操作并且每个边表示操作之间的数据流动。
数据集是在分析处理中使用的类型化列(字段)构成的记录的集合。术语能够被用于描述通过特定作业的数据流动的特定实例或者其能够指代随时间更新的记录的逻辑集合。
所公开的架构的部件使用与其组成数据集有关的知识来通知在运行分析工作流程的同时做出的优化决策。这通过在数据流过构成这些复杂工作流程的操作时构建并保持数据的简档来完成。如图3中示出的,数据被导入300、被概括302并且保持驻存在数据简档存储库304中。
输入数据集在作业的设计或运行之前被分析。数据集可以为被转换为指定格式的整个数据集。备选地,数据集可以为整个数据集的统计代表性样本。这些操作中的两者在设计阶段之前被执行并且作为结果的简档能够被用于通知对下游分析作业的设计和运行两者。
简档由列级的和数据集范围的统计两者构成。为了使对性能的影响最小化并以流的方式来执行这些计算,估计被用于许多统计。这些简档可以包括针对数字和日期列的总记录计数、最小值、最大值和平均值,以及指示列中的唯一值的数目的基数估计。简档还可以包括描述跨整个值范围的数字和日期列值的分布的直方图。为了利用在数据流上的单程来估计(针对数值属性的)直方图,应用基于分区增量离散化(PiD)算法的方法。该方法被扩展为能够运行在分布式环境中:在数据的子集上计算直方图并且之后将直方图进行组合以导出表示完整数据集的直方图。分布式直方图通过随后将其直条(bin)拆分并在新数据到达时增加其计数来被估计,确保该估计的误差保持很小。组合的流程之后将所有分布式直方图的直条成比例地合并以导出表示整个数据集的最终直方图。
简档还可以包括针对如字符串的类别列和低基数整数列的前K个概述(sketch)。为了估计前k个最频繁的值的频率,应用使用流概要数据结构的空间节省算法。该算法的基本思想是要仅仅维持在数据流内观察到k个最频繁的唯一元素的计数。如果不在维持的元素的集合中的元素到达,则该集合中的最不频繁的元素将由新元素替换以给予其“疑点利益”并对其分配以去除的元素的计数加一。这使得有可能跟踪最大高估误差。在分布式环境中,来自单个实例的概述使用相同的流程来组合以计算针对整个数据集的全局的前k个统计。
简档还可以包括用于基于最坏情况记录大小来检测稀疏列和总数据集占用空间的空计数。每次针对更新的数据源运行工作流程时,例如当新记录到来时,数据集的总数据占用空间基于以下公式而被估计为最坏情况计算:
S ^ = R ^ * Σ c = 1 C s c
其中,每列的大小由数据类型和空值计数来确定。对于除了字符串的所有数据类型,列大小是固定的并且是众所周知的。在字符串列的情况下,组成字符串值的最小值、最大值和平均值被跟踪以在确定总占用空间时适应可变长度值。
为了确定用于分析工作流程的不同阶段的占用空间,应用将由于使用针对不同类型的操作的不同策略来应用操作而得到的对行的数目的估计。例如,考虑产生比输入记录的数目更多的输出记录的生成性操作。评价准则可以包括:
●映射(Map):在工作薄中使用的大多数分析功能是映射操作,而明显的例外是分组(GroupBy)功能。映射操作的结果具有与对该操作的输入相同数目的记录。
●排序(Sort):对数据源的排序操作的结果具有该数据源中的相同数目的记录。
●分组(GroupBy):分组操作是对属性的值进行分组使得每个唯一值变成单个行。因此,对属性的分组操作的作为结果的记录计数等于该属性的基数。
●过滤(Filter):当恒定值过滤被应用到属性,前k个统计被用于确定该值在原始数据源中的频率。如果恒定值未被包含在前k个统计中(因为其频率小于统计中的最不频繁的值),则作为上限,原始数据源的记录的数目必须被选择。当应用高级过滤(函数或嵌套函数)时,系统下降回到作为上限的输入记录的数目。
●连接:为了确定连接的结果的大小,两个连接关键列的前k个统计被使用。来自那两个统计的两个元素集合的交集被计算。作为结果的值的集合之后被用于计算来自原始的前k个统计的对应频率的点积。
这些数据简档被用于优化在包括调度、框架选择和细粒度操作级别算法选择的所有运行级别的作业性能。
对于先前摄入的数据集和先前采样的数据集,系统使用已知数据简档但是当第一次处理工作流程任务时,系统构建估计的简档以便完全地优化作业运行。这通过在导入期间构建所有输入数据的统计代表性样本并在设计阶段期间针对该样本运行包含的分析工作流程来完成。
为了生成这些样本,应用蓄水池采样方法。样本的大小的蓄水池(缓冲器)被填充有流的第一元素。之后,针对来自流的新元素,确定其是否应当变成样本的部分:如果在零与一之间的随机数小于样本的大小除以样本的大小加一,则该新元素替换来自缓冲器的随机选择的元素。
由于样本是代表性的,所以系统做出与工作流程的形状、组成、大小和行为相关的某些假设。该数据简档之后在针对完整数据集运行工作流程任务时被用于通知优化决策。
一旦已经运行了完整分析工作流程,则数据简档连同作业元数据一起被保存。每次运行作业时创建并存储新简档。这些历史简档之后被用于预测数据增长和衰减模式,其通知对分析工作流程的后续运行的优化。
在一个实施例中,预览引擎306使用操作于输入数据的统计代表性样本的电子制表用户接口。这些工作流程向下被编译到有向无环图(DAG)数据流程结构中,在有向无环图(DAG)数据流程结构中顶点表示操作并且边表示操作之间的数据流动。
该图表示由工作流程调度器200利用来自数据简档存储库304的数据简档来修饰,以提供对在工作流程级别和在操作级别两者的优化机会的细粒度访问。边被标记有数据大小和形状信息并且顶点包含操作具体细节,其当被组合时允许做出智能优化决策。
工作流程调度器200从编译的分析工作流程引入底层运行框架的抽象。当运行分析作业时,系统使用相关联的数据简档中的信息来选择针对工作负载的合适的运行框架。
基于包含在作业的DAG内的数据简档和操作,工作流程调度器200选择要在其中运行DAG的合适的运行框架。这包括终止DAG和根据资源可用性、数据简档和操作的组成在不同的运行框架上运行其部分的能力。
工作流程调度器200支持可插拔运行框架,以允许在新用例和技术出现时对它们的扩展。这些包括用于机器学习的迭代存储器中技术(例如,ApacheSpark)、流和图处理框架和数不清的未来技术。
系统包括小作业运行框架(SJEF)。SJEF是用于运行常见用例的基于ApacheTez的框架。ApacheTez是用于构建基于YARN的、高性能批处理和在Hadoop中的处理TB到BP数据集的交互式数据处理应用的框架。整个DAG(或子DAG)被捆绑在一起并被发送到集群上的单个节点(例如,服务器104_1)以用于流线型运行。SJEF维持预热实例的池,其消除倾向于占据大部分小的数据作业的作业运行时间的昂贵的任务启动开销。对于这些作业,输入数据从源分布式文件系统被读取并被流传输通过单个过程。所有中间数据在可能的情况下被缓冲在存储器中并且在必要时被溢出到本地磁盘。
系统还包括优化的MapReduce框架(OMREF)。OMREF是被设计用于处理大批分析作业的基于Tez的框架。该框架支持对映射的流水线化并减少任务以减少任务开销。框架基于数据流程的细节来动态地控制在作业的运行中的并行化。当合适时,存储器中技术被采用以改善作业性能,尤其在真实MapReduce阶段的置乱(shuffle)阶段。
系统还包括本地运行框架(LEF)。LEF是与运行在集群上相反本地运行在实例(例如,计算机102)上的运行框架。这被用于许多系统级作业并且支持诸如创建样本、运行what-if情景并运行需要访问外部系统的作业的任务。
当运行作业时,工作流程调度器200使用所有调度工具202来做出关于如何运行每个作业的最佳决策。顶级工作流程被转换成内部DAG表示并且该DAG被分析以确定优选的工作流程。例如,这能够导致整个工作流程被发送到SJEF以完成运行或者DAG被拆分成更小的子DAG,其由不同的运行引擎运行。工作流程调度器200适当地将输入和输出链接,以允许运行框架在单个分析工作流程的运行期间协作。
该设计还允许通过支持在运行期间的某些检查点处对框架选择的重新评价的动态联机优化。例如,在使用优化的MapReduce框架运行DAG期间,当工作流程调度器200检测到数据集已经变得充分小,则其能够选择经由SJEF运行剩余的阶段以使性能最大化。
从OMREF切换到SJEF的决策依赖于工作流程调度器的所有输入数据的简档的知识。当到DAG或DAG的子集的总输入大小下降到集群的配置的块大小的一定倍数以下时,工作流程调度器200将数据局部性考虑在内并确定单个节点运行的优点是否将超过并行化的益处。当以高度的并行化在OMREF之下运行时,任务启动开销能够常常占据大部分运行时间,尤其当数据很小时。在这些情况下,工作流程调度器200在原始输入数据小或者在分析工作流程期间例如在应用过滤操作之后变小时提供主要性能提升。
除了选择合适的运行框架,工作流程调度器200的另一方面是针对工作流程的操作中间的数据选择合适的数据存储机制。以与在作业运行期间动态地改变运行框架相似的方式,工作流程调度器200能够利用现代集群中可用的增大的存储器占用空间来将数据集保持在存储器中并使其对于下游任务可用。
工作流程调度器200使用可用集群存储器和与DAG的剩余顶点相关联的数据简档来确定一个顶点的输出何时能够适合放入到存储器中并由下游顶点使用。这通过允许任务从存储器而非磁盘读取数据来提供进一步性能提升并且在数据由多个下游顶点使用或在数据能够跨分析工作流程而被重新使用时与优化的调度组合使用时尤其有用。
除了在运行复杂分析工作流程时优化运行模型和数据的存储,工作流程调度器200能够利用操作特定的优化来策划更高效的DAG。
当运行包含完整MapReduce循环(诸如分组(GroupBy))时一个实例出现,工作流程调度器能够基于流传输通过系统的数据的简档来动态地调节归约阶段并行化。这涉及减少配置的归约器的数目以便在处理置乱和排序阶段时尽可能高效。
优化的另一富裕区是连接运行。通过维持连接列的形状和基数的准确概述,工作流程调度器能够选择最合适的连接策略并且常常能够使用映射端连接来完全优化掉归约阶段。
工作流程调度器200充分利用数据简档存储库304并在设计期间和作业运行期间构建准确的数据简档以改善分析工作流程的性能。另一优点是访问实体工作负载简档308,其指定跨所有作业的安装的整个分析工作负载。这包括调度信息和作业间依赖性。工作流程调度器200使用该优点来优化对从属工作流程的调度以便减少重要工作负载的延迟。
当工作流程调度器200被触发以运行工作流程任务时,其分析输出数据的下游依赖性。无论何时在下游作业中使用结果,工作流程调度器200都向该作业添加提示以指示工作流程调度器200其应当在可能的情况下尝试将该输出保持在存储器中。
工作流程调度器200之后收集下游作业、提高其优先级并将它们调度在紧挨着源作业之后。该方法允许这些下游作业通过使用预缓存的数据来实现最低延迟可能,尤其是当它们对较小的数据集进行操作时。较小的数据集通常是在上游工作流程上的过滤或归约操作的结果。这种类型的较小的数据集在大数据分析中是常见的。
当用户设计分析工作流程时,该工作流程被转化成与将操作表示为顶点和将数据表示为边的DAG相对应的数据流程的内部抽象。系统之后使用处理物理上在集群上执行计算的细节的运行框架来运行这些DAG。该运行能够经由部分DAG运行跨多个运行框架。
分析处理中的常见工作流程是大数据集到较小工作集的选择、处理和过滤以及对这些较小数据集运行更深的分析。工作流程调度器200利用该模式来在使用优化的MapReduce框架与小作业框架之间进行选择以高效地运行这些DAG。
考虑数据集大的情况。MapReduce是用于批量运行分析工作负载的很好选择,因为与任务过程初始化和管理相关联的开销大部分由花费在读取和处理数据上的时间占据。当在集群环境中运行MapReduce时,启动和管理数百或数千个任务过程在数据集足够大以保持总体吞吐量高时可以是合理的。当数据集小时,管理这些任务的开销变得繁重,随着吞吐量下降许多任务被启动并被管理但是每个任务仅仅处理少量数据。
大多数大数据分析工作负载利用大数据集开始,执行某种初始变换和过滤并且之后执行对较小的细化的数据集的更深处理。使用传统MapReduce运行模型,该处理的稍后阶段使用与大的较早的阶段相同的模式和技术并且作业的总体性能受损。
工作流程调度器200被设计为支持使用针对分析工作流程的不同阶段的不同运行框架。这允许总体工作流程的所有阶段尽可能高效地运行。为了运行以上描述的工作流程的类型,工作流程调度器200组合地采用两种运行框架:OMREF和SJEF。
为了执行该框架选择,工作流程调度器200依赖于与所有输入相关联的内部数据简档、关于集群资源的信息和来自先前运行的历史元数据。为了说明这一点,考虑如图4中示出的典型分析工作流程。大数据集DS_1400包含如主要数据源使用的10TB的日志记录。较小的数据集DS_2402为100MB并且包含DS_1数据中包含的ID到逻辑的人类可读的字符串的映射,实际上为查找表。构建以下工作流程:
●添加针对DS_1的数据源表单“DataSourceOne”
●添加针对DS_2的数据源表单“DataSourceTwo”
●添加过滤表单404,“DataSourceOneLast60”,其使用“DataSourceOne”作为源和过滤表达式“DataSourceOne.TimeStampColumn>TODAY()-60d”作为对最近60天的记录过滤
●添加连接表单406,“EnhancedDataSourceOneLast60”,通过将“DataSourceOne.ID”连接到“DataSourceTwo.ID”引进“DataSourceTwo.Name”来增强记录,使它们可由人类消费者识别
●添加分组表单408,其通过“DataSourceTwo.Name”分组以聚集跨针对经过滤的数据集的该维度的记录。该表单通常包含与用例相关的许多分析函数。出于我们的目的,假设这是简单的加和、计数和求平均。
系统将该工作流程任务调度编译成图4的DAG。该DAG被分析并被分解以确定操作和运行框架的最佳分组。预览引擎306运行关于代表性数据样本的DAG以估计数据增长和衰减。在该示例中,预览引擎306观察到归因于过滤操作的1,000倍归约并决策这能够是切换运行框架的机会。工作流程调度器200创建部分DAG并仅仅将过滤操作提交到OMREF以用于运行。这允许工作流程调度器200在已经应用过滤之后做出决策以基于运行作业的实际结果而切换到SJEF。
注意,一旦作业已经被运行在集群上,针对DAG的所有分片的历史数据大小被跟踪。该数据之后代替预览估计被使用以通知如何终止DAG以用于后续运行。该逻辑还并入输入数据体积的增长。该过程是允许系统避免针对DAG中的每个操作重新评价运行环境的开销的优化,其限制并行化并增加额外DAG提交的开销。最佳解决方案是要一次提交DAG中的尽可能多的部分而同时仍然保留在合适的情况下切换运行框架的灵活性。
一旦OMREF完成对部分DAG的运行,工作流程调度器200就具有确定如何运行工作流程中的剩余部分的机会。在一个实施例中,工作流程调度器200在作出从OMREF切换到SJEF的决策时使用两个因素:对下游操作的以未压缩字节为单位的总输入大小和包含在那些输入内的记录的总数目。这些阈值取决于集群硬件配置和可用资源。
如果选择了SJEF,则所有下游工作将运行在集群内的单个节点上。因此,工作流程调度器200确保来自使用预热任务过程以及针对中间数据传输的存储器中和本地磁盘的获益将超过任务并行化的益处。
数据局部性也是集群作业性能中的OMREF能够隐含地利用的主要因素。SJEF被设计为通过保持一次最小数目的任务过程(集群中的每个机器一个)可用来减轻数据局部性的任何损失。这样,任何DAG将具有机会来在本地运行其输入的最大部分。在最坏情况下,SJEF保证本地运行并在不能够确保针对特定DAG的本地任务过程安全的情况下大量繁殖新鲜容器。
在大数据环境中,常常见到其中针对相同源数据来执行分析处理的多个截然不同的集合的工作负载。这些源数据集常常具有大尺寸并且在清洗阶段在它们由下游的高度特定的分析处理之前经历重大过滤和变换。系统能够在大输入源被更新时触发下游处理,所述更新通常基于某种周期性调度,例如每小时利用新日志条目来更新数据集。
假设这些下游过程常常共享小的源数据集,通过重新从磁盘读取相同数据串行地处理它们很慢并且不必要地消耗集群资源。这在用户期望分析的使用者尽可能接近实时地更新的情况下对于低延时用例尤其是重要的。以较好的资源利用率更快地递送这些结果是高度令人期望的。
为了解决这一点,系统利用它的这些分析工作流程之间的依赖性的知识来构建跨多个链接的工作流程的数据流程图。
当工作流程被运行时,工作流程调度器200考虑下游的使用来自源工作流程的任何结果的所有从属工作流程。给定下游作业的该集合,系统并入来自历史运行的元数据(或者来自针对第一次运行的样本的运行的估计)以基于集群和结果大小中的可用存储器来估计由当前作业生成的新源是否将适合于存储器中存储。
如果合适,当前工作流程被配置为将合适的结果数据缓存在集群存储器中并且受影响的下游作业被添加到工作流程调度器200内的优先级队列,预清空其他调度的作业以尽可能多地减少延迟。这些作业之后一旦它们的源经由存储器存储可用就被运行。这些作业运行更快,因为它们从存储器拉取源数据,并且集群使用更少资源,因为该作业花费更少时间并且源数据没有被冗余地访问多次。
在大数据分析环境中非常常见的情景是基于大的原始输入数据集的经清洗和过滤的版本来运行分析的多个集合。在大多数情况下,大的源数据集定期地被更新并且通过由数据管理员设计的过滤和变换的集合处理以产生清洁的结果集,其之后由下游分析使用。在这些清洗内,过程总体上被调度并且下游分析在新数据到来时被触发。假设系统具有实体工作负载简档和下游依赖性映射的知识,则系统独特地被定位为优化该常见工作流程的调度和运行。
在以上描述的情景中,如图5中所描绘的,当初始工作流程将要被运行时,系统通知‘经清洗的结果(Cleansed_Result)’由通过三个不同的用户构建的三个单独的分析集合在下游被使用。工作流程调度器200之后并入先前作业运行的历史知识以估量‘经清洗的结果’将为多大。这通过使用利用历史趋势将额外新数据并入‘大数据集(Big_DataSet)’中的增长模型来估计作为结果的数据大小来实现。
如果‘经清洗的结果’大小适合于使用给定的集群的当前存储器容量,则系统对当前作业进行重新配置以将‘经清洗的结果’缓存在存储器中并将三个下游作业添加到工作流程调度器200内的优先级队列。一旦‘经清洗的结果’可用,则这些作业被触发并将运行其针对‘经清洗的结果’的缓存的版本的分析,整体导致其自身的结果的更快产生和集群上的更低负载。
本发明的实施例涉及一种具有非暂态计算机可读存储介质的计算机存储产品,该非暂态计算机可读存储介质在其上具有用于执行各种计算机实施的操作的计算机代码。介质和计算机代码可以是出于本发明的目的而被专门设计并被构造的介质和计算机代码,或者它们可以具有众所周知的种类并且对计算机软件领域的技术人员可用。计算机可读介质的示例包括但不限于:磁介质、光学介质、磁光介质以及被专门配置为存储和运行程序代码的硬件器件,诸如专用集成电路(“ASIC”)、可编程逻辑器件(“PLD”)以及ROM和RAM器件。计算机代码的示例包括诸如由编译器产生的机器代码以及包含由使用解释器的计算机运行的高级代码的文件。例如,本发明的实施例可以使用C++或其他面向对象编程语言和开发工具来实施。本发明的另一实施例可以代替机器可执行软件指令或与机器可执行软件指令组合被实施在硬接线电路中。
出于解释的目的,前述描述使用特定命名法来提供对本发明的彻底理解。然而,对于本领域技术人员将显而易见的是,不要求特定细节以便实践本发明。因此,出于说明和描述的目的呈现对本发明的特定实施例的前述描述。它们不旨在为穷举的或将本发明限于所公开的精确形式;显然,能够鉴于上述教导进行许多修改和变型。实施例被选择并被描述以便最好地解释本发明的原理和其实际应用,它们由此使得本领域其他技术人员能够最好地利用本发明和具有如适于预见到的特定用途的各种修改的各种实施例。旨在由权利要求和其等效方案来限定本发明的范围。

Claims (13)

1.一种服务器,包括:
处理器;以及
存储器,所述存储器存储由所述处理器运行以执行以下操作的指令:
访问调度工具,所述调度工具包括具有工作流程任务调度和工作流程任务依赖性的实体工作负载简档,
识别与所述实体工作负载简档内的工作流程任务相关联的经处理的数据,以及
分析所述工作流程任务依赖性,以更改所述工作流程任务调度来对依赖于所述经处理的数据的工作流程任务指定优先级。
2.根据权利要求1所述的服务器,其中所述存储器存储由所述处理器运行以选择性地将工作流程任务指派给处理资源和MapReduce处理资源的指令。
3.根据权利要求1所述的服务器,其中所述存储器存储由所述处理器运行以选择性地将运行在MapReduce处理资源上的工作流程任务转变为运行在存储器中处理资源上的工作流程任务的指令。
4.根据权利要求1所述的服务器,其中所述调度工具包括具有针对个体数据源的个体数据简档的数据简档存储库。
5.根据权利要求4所述的服务器,其中所述个体数据简档包括列级和数据集范围的统计。
6.根据权利要求4所述的服务器,其中所述个体数据简档包括针对数字和日期列的总记录计数、最小值、最大值和平均值以及指示列中的唯一值的数目的基数估计。
7.根据权利要求4所述的服务器,其中所述个体数据简档包括针对最频繁值的频率估计。
8.根据权利要求4所述的服务器,其中所述个体数据简档包括数据集占用空间估计。
9.根据权利要求4所述的服务器,还包括由所述处理器运行以估计针对工作流程任务的数据增长和衰减模式的指令。
10.根据权利要求1所述的服务器,其中所述调度工具包括用于处理与工作任务相关联的数据的子集的预览引擎。
11.根据权利要求1所述的服务器,其中所述调度工具包括关于集群资源可用性的信息。
12.根据权利要求1所述的服务器,其中所述调度工具包括操作符组成分析器。
13.根据权利要求1所述的服务器,其中所述调度工具包括历史任务运行简档。
CN201580001459.6A 2014-10-03 2015-09-22 用于调度分布式工作流程任务的装置和方法 Active CN105593818B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/506,500 US10467569B2 (en) 2014-10-03 2014-10-03 Apparatus and method for scheduling distributed workflow tasks
US14/506,500 2014-10-03
PCT/US2015/051557 WO2016053695A1 (en) 2014-10-03 2015-09-22 Apparatus and method for scheduling distributed workflow tasks

Publications (2)

Publication Number Publication Date
CN105593818A true CN105593818A (zh) 2016-05-18
CN105593818B CN105593818B (zh) 2020-09-18

Family

ID=55631269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580001459.6A Active CN105593818B (zh) 2014-10-03 2015-09-22 用于调度分布式工作流程任务的装置和方法

Country Status (7)

Country Link
US (1) US10467569B2 (zh)
EP (1) EP3201771A4 (zh)
CN (1) CN105593818B (zh)
CA (1) CA2963088C (zh)
HK (1) HK1221027A1 (zh)
SG (1) SG11201601137RA (zh)
WO (1) WO2016053695A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287245A (zh) * 2019-05-15 2019-09-27 北方工业大学 用于分布式etl任务调度执行的方法及系统
CN112527387A (zh) * 2020-11-20 2021-03-19 杭州大搜车汽车服务有限公司 应用处理方法和装置
CN115004170A (zh) * 2020-01-13 2022-09-02 谷歌有限责任公司 根据数据新鲜度要求的优化查询调度

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798775B2 (en) 2015-01-16 2017-10-24 International Business Machines Corporation Database statistical histogram forecasting
US10095547B1 (en) * 2015-03-13 2018-10-09 Twitter, Inc. Stream processing at scale
US10318491B1 (en) 2015-03-31 2019-06-11 EMC IP Holding Company LLC Object metadata query with distributed processing systems
US11016946B1 (en) * 2015-03-31 2021-05-25 EMC IP Holding Company LLC Method and apparatus for processing object metadata
US10331380B1 (en) 2015-04-06 2019-06-25 EMC IP Holding Company LLC Scalable distributed in-memory computation utilizing batch mode extensions
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
US10425350B1 (en) 2015-04-06 2019-09-24 EMC IP Holding Company LLC Distributed catalog service for data processing platform
US10366111B1 (en) * 2015-04-06 2019-07-30 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10812341B1 (en) 2015-04-06 2020-10-20 EMC IP Holding Company LLC Scalable recursive computation across distributed data processing nodes
US10015106B1 (en) 2015-04-06 2018-07-03 EMC IP Holding Company LLC Multi-cluster distributed data processing platform
US10791063B1 (en) 2015-04-06 2020-09-29 EMC IP Holding Company LLC Scalable edge computing using devices with limited resources
US10706970B1 (en) 2015-04-06 2020-07-07 EMC IP Holding Company LLC Distributed data analytics
US10511659B1 (en) * 2015-04-06 2019-12-17 EMC IP Holding Company LLC Global benchmarking and statistical analysis at scale
US10776404B2 (en) * 2015-04-06 2020-09-15 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10348810B1 (en) * 2015-04-06 2019-07-09 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct clouds
US10505863B1 (en) 2015-04-06 2019-12-10 EMC IP Holding Company LLC Multi-framework distributed computation
US10860622B1 (en) 2015-04-06 2020-12-08 EMC IP Holding Company LLC Scalable recursive computation for pattern identification across distributed data processing nodes
US10528875B1 (en) 2015-04-06 2020-01-07 EMC IP Holding Company LLC Methods and apparatus implementing data model for disease monitoring, characterization and investigation
US10404787B1 (en) * 2015-04-06 2019-09-03 EMC IP Holding Company LLC Scalable distributed data streaming computations across multiple data processing clusters
US10496926B2 (en) 2015-04-06 2019-12-03 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10515097B2 (en) * 2015-04-06 2019-12-24 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10541936B1 (en) * 2015-04-06 2020-01-21 EMC IP Holding Company LLC Method and system for distributed analysis
US10541938B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
CN104834561B (zh) * 2015-04-29 2018-01-19 华为技术有限公司 一种数据处理方法及装置
WO2017059012A1 (en) * 2015-09-29 2017-04-06 Skytree, Inc. Exporting a transformation chain including endpoint of model for prediction
US10033816B2 (en) * 2015-09-30 2018-07-24 Amazon Technologies, Inc. Workflow service using state transfer
US10013214B2 (en) * 2015-12-29 2018-07-03 International Business Machines Corporation Adaptive caching and dynamic delay scheduling for in-memory data analytics
US10656861B1 (en) 2015-12-29 2020-05-19 EMC IP Holding Company LLC Scalable distributed in-memory computation
WO2017166269A1 (en) * 2016-04-01 2017-10-05 Intel Corporation System and method to accelerate reduce operations in graphics processor
US10698954B2 (en) * 2016-06-30 2020-06-30 Facebook, Inc. Computation platform agnostic data classification workflows
US10592813B1 (en) * 2016-11-29 2020-03-17 EMC IP Holding Company LLC Methods and apparatus for data operation pre-processing with probabilistic estimation of operation value
US10374968B1 (en) * 2016-12-30 2019-08-06 EMC IP Holding Company LLC Data-driven automation mechanism for analytics workload distribution
US10817334B1 (en) * 2017-03-14 2020-10-27 Twitter, Inc. Real-time analysis of data streaming objects for distributed stream processing
US10554577B2 (en) 2017-03-14 2020-02-04 International Business Machines Corporation Adaptive resource scheduling for data stream processing
US10726007B2 (en) 2017-09-26 2020-07-28 Microsoft Technology Licensing, Llc Building heavy hitter summary for query optimization
US10671436B2 (en) 2018-05-02 2020-06-02 International Business Machines Corporation Lazy data loading for improving memory cache hit ratio in DAG-based computational system
US20190042308A1 (en) * 2018-08-31 2019-02-07 Intel Corporation Technologies for providing efficient scheduling of functions
US20220043688A1 (en) * 2018-09-11 2022-02-10 Huawei Technologies Co., Ltd. Heterogeneous Scheduling for Sequential Compute Dag
US10901797B2 (en) 2018-11-06 2021-01-26 International Business Machines Corporation Resource allocation
CN110427252B (zh) * 2019-06-18 2024-03-26 平安银行股份有限公司 基于任务依赖关系的任务调度方法、装置及存储介质
CN113495679B (zh) * 2020-04-01 2022-10-21 北京大学 基于非易失存储介质的大数据存储访问与处理的优化方法
CN111475684B (zh) * 2020-06-29 2020-09-22 北京一流科技有限公司 数据处理网络系统及其计算图生成方法
US20220012525A1 (en) * 2020-07-10 2022-01-13 International Business Machines Corporation Histogram generation
KR102465932B1 (ko) * 2020-11-19 2022-11-11 주식회사 와이즈넛 태스크별 플랫폼 선정을 자동화하는 크로스 모델 데이터 통합처리 플랫폼
CN112529438B (zh) * 2020-12-18 2023-06-09 平安银行股份有限公司 分布调度系统工作流处理方法、装置、计算机设备及存储介质
CN113434279A (zh) * 2021-07-14 2021-09-24 上海浦东发展银行股份有限公司 一种任务执行方法、装置、设备及存储介质
CN113379397B (zh) * 2021-07-16 2023-09-22 北京华博创科科技股份有限公司 一种基于机器学习的云工作流架智能管理与调度系统
CN114662932A (zh) * 2022-03-24 2022-06-24 重庆邮电大学 一种节点分级的工作流类定时任务调度方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102077172A (zh) * 2008-07-02 2011-05-25 Nxp股份有限公司 使用运行时间任务调度的多处理器电路
US20110321051A1 (en) * 2010-06-25 2011-12-29 Ebay Inc. Task scheduling based on dependencies and resources
US20130318277A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Processing structured and unstructured data using offload processors
EP2752779A2 (en) * 2013-01-07 2014-07-09 Facebook, Inc. System and method for distributed database query engines

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4165522B2 (ja) * 2005-04-27 2008-10-15 ブラザー工業株式会社 画像読取装置
JP4822154B2 (ja) * 2005-07-29 2011-11-24 株式会社吉野工業所 インモールドラベル付き容器とその成形方法
CN1988541A (zh) 2005-12-19 2007-06-27 国际商业机器公司 确定恶意工作负荷模式的方法和装置
US8914781B2 (en) 2008-10-24 2014-12-16 Microsoft Corporation Scalability analysis for server systems
US9524192B2 (en) 2010-05-07 2016-12-20 Microsoft Technology Licensing, Llc Distributed workflow execution
US8612785B2 (en) 2011-05-13 2013-12-17 International Business Machines Corporation Optimizing energy consumption utilized for workload processing in a networked computing environment
US8417689B1 (en) 2011-11-21 2013-04-09 Emc Corporation Programming model for transparent parallelization of combinatorial optimization
US20130166515A1 (en) * 2011-12-22 2013-06-27 David Kung Generating validation rules for a data report based on profiling the data report in a data processing tool
US9235446B2 (en) 2012-06-22 2016-01-12 Microsoft Technology Licensing, Llc Parallel computing execution plan optimization
US10552774B2 (en) 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US10902464B2 (en) * 2013-08-27 2021-01-26 Verizon Media Inc. Spark satellite clusters to HADOOP data stores
US9286044B2 (en) * 2014-06-27 2016-03-15 International Business Machines Corporation Hybrid parallelization strategies for machine learning programs on top of MapReduce

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102077172A (zh) * 2008-07-02 2011-05-25 Nxp股份有限公司 使用运行时间任务调度的多处理器电路
US20110321051A1 (en) * 2010-06-25 2011-12-29 Ebay Inc. Task scheduling based on dependencies and resources
US20130318277A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Processing structured and unstructured data using offload processors
EP2752779A2 (en) * 2013-01-07 2014-07-09 Facebook, Inc. System and method for distributed database query engines

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287245A (zh) * 2019-05-15 2019-09-27 北方工业大学 用于分布式etl任务调度执行的方法及系统
CN110287245B (zh) * 2019-05-15 2021-03-19 北方工业大学 用于分布式etl任务调度执行的方法及系统
CN115004170A (zh) * 2020-01-13 2022-09-02 谷歌有限责任公司 根据数据新鲜度要求的优化查询调度
CN112527387A (zh) * 2020-11-20 2021-03-19 杭州大搜车汽车服务有限公司 应用处理方法和装置
CN112527387B (zh) * 2020-11-20 2024-03-01 杭州大搜车汽车服务有限公司 应用处理方法和装置

Also Published As

Publication number Publication date
SG11201601137RA (en) 2016-05-30
CN105593818B (zh) 2020-09-18
EP3201771A4 (en) 2018-04-11
US20160098662A1 (en) 2016-04-07
CA2963088A1 (en) 2016-04-07
HK1221027A1 (zh) 2017-05-19
EP3201771A1 (en) 2017-08-09
CA2963088C (en) 2021-10-26
US10467569B2 (en) 2019-11-05
WO2016053695A1 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
CN105593818A (zh) 用于调度分布式工作流程任务的装置和方法
US20210374610A1 (en) Efficient duplicate detection for machine learning data sets
US11379755B2 (en) Feature processing tradeoff management
Armenatzoglou et al. Amazon Redshift re-invented
CA2953826C (en) Machine learning service
Ousterhout et al. Monotasks: Architecting for performance clarity in data analytics frameworks
US10452992B2 (en) Interactive interfaces for machine learning model evaluations
CN110956272B (zh) 实现数据处理的方法和系统
CN106663224B (zh) 用于机器学习模型评估的交互式界面
Grover et al. Extending map-reduce for efficient predicate-based sampling
CN107612886A (zh) 一种Spark平台Shuffle过程压缩算法决策方法
CN114139728A (zh) 可视化全流程机器学习平台、控制方法、客户端及应用
Khan et al. Optimizing hadoop parameter settings with gene expression programming guided PSO
Kougka et al. On knowledge transfer from cost-based optimization of data-centric workflows to business process redesign
Chen et al. ALBERT: an automatic learning based execution and resource management system for optimizing Hadoop workload in clouds
Hemmi et al. Scenario-based learning for stochastic combinatorial optimisation
US20140114719A1 (en) Allocating Service Consumers into Compatible Resource Pools
Osei-Bryson et al. Exploration of a hybrid feature selection algorithm
EP3825873A1 (en) System with big data analysis device for cloud platforms and the operation method thereof
Zhao et al. A DAG refactor based automatic execution optimization mechanism for Spark
Hashem Optimisation Model for Scheduling MapReduce Jobs in Big Data Processing
Ibrahim Abaker Optimisation model for scheduling MapReduce jobs in big data processing/Ibrahim Abaker Targio Hashem
Xu et al. Quality-aware Scheduling for Key-value Data Stores
CN117114182A (zh) 基于物料关联性的安全库存预测方法、装置及产品
CN106776921A (zh) 一种处理查询的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1221027

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1221027

Country of ref document: HK