CN105096096A - 任务性能评价方法及系统 - Google Patents
任务性能评价方法及系统 Download PDFInfo
- Publication number
- CN105096096A CN105096096A CN201410177677.2A CN201410177677A CN105096096A CN 105096096 A CN105096096 A CN 105096096A CN 201410177677 A CN201410177677 A CN 201410177677A CN 105096096 A CN105096096 A CN 105096096A
- Authority
- CN
- China
- Prior art keywords
- subtask
- task
- mapping
- task attribute
- stipulations
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施方式公开了一种任务性能评价方法及系统。该任务性能评价方法用于评价分布式集群系统中的任务执行过程中利用集群资源的合理性,所述方法包括:获取所述分布式集群系统对所述任务分配的任务标识;依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值;将所述任务属性值与预定规则进行比对,产生评价结论。反馈所述评价结论。本申请通过获取任务的任务属性,按照预定规则依照任务属性对任务进行评价,给出任务的评价结论,可以指出影响任务性能的缺陷,帮助开发人员进行改进,进而实现减少集群中资源的浪费,提升集群整体任务的执行效率。
Description
技术领域
本申请涉及计算机数据处理领域,特别涉及一种分布式集群系统中任务性能评价方法及系统。
背景技术
企业运营过程中,会产生大量的数据,比如人员情况、工资情况、公司营收情况和客户记录等,该些数据对于企业的运转至关重要,企业可以通过分析数据得出业务发展趋势,并根据分析出的趋势,制定公司发展战略。此外,其他数据也可能为公司带来价值,比如一段记录消费者如何在商店浏览购物的视频、消费者在购买服务前后的情况、通过社交网络联系客户的方式、客户付款方式以及供应商喜欢的收款方式……等等,所有这些场景都提供了很多数据,通过对这些数据的分析筛选,从不同的维度进行观察,可能会发现潜在的商机,给企业带来发展的机遇。
然而,由于数据量往往非常庞大,涉及大量的计算,单一一个的计算机难以进行处理,而采用高运算速度的计算机,又会大量的增加企业的成本。在这种情况下,Apache基金会研发了一种名为“Hadoop”分布式集群系统架构。该系统架构使用大量廉价的计算机构成计算机集群,通过该集群取代昂贵的高运算速度的计算机进行高速运算和存储。
Hadoop系统主要包括分布式文件系统和映射规约系统。其中,分布式文件系统进行数据管理和数据存储。映射规约系统实现对分布式文件系统输入的数据进行运算处理,主要包括:映射阶段和规约阶段。其中,映射阶段主要将分布式文件系统输入的数据划分成若干个任务块,对任务块进行解析建立若干映射子任务,映射子任务对任务块进行处理输出运算结果。规约阶段会建立规约子任务,每个规约子任务对应一个或多个映射子任务,将映射子任务输出的运算结果合并,并输出给分布式集群系统进行管理存储。
请参阅图1,Client(客户端)提交任务之后,该任务会到达Hadoop系统的JobTracker(主人节点),JobTracker会对接收到的任务分配至TaskTracker(奴隶节点),TaskTracker会具体执行任务的运算,其中包括MapTask(映射子任务)和ReduceTask(规约子任务),MapTask会从HDFS(分布式文件系统)中获取与当前任务相关的数据,并经过MapTask处理之后输出中间文件,经过ReduceTask对MapTask输出的中间文件进行合并,并输出至HDFS保存,后续HDFS便可以向Client反馈任务处理的结果。
Hadoop系统为所述任务定义了一些任务属性。定义的这些任务属性值中,一部分任务属性可以记录任务执行过程中的相关信息。在此以任务属性映射子任务输出字节数量为例,该任务属性记录任务被Hadoop系统执行过程中,映射子任务输出字节数量。Hadoop系统为该任务属性赋值,而不需要开发人员设置。还有一部分任务属性值的设置会影响任务在执行过程中使用的资源数量,以及执行速度。在此以规约子任务数量为例,比如,一个任务设置了较大数量的规约子任务数量,比方规约子任务数量会占用20%的集群资源,Hadoop系统在执行该任务时,会调度集群资源为执行该任务做准备。由于Hadoop系统中可能会同时运行许多任务,所以Hadoop系统在准备执行所述任务的过程中,会等待其他的任务释放集群资源,使得Hadoop系统会花费较多的时间在等待有足够的资源执行该任务。在一些情况下,所述任务实际上并不需要这么多的规约子任务,即该任务并不需要这么多的集群资源,设置了较大的规约子任务数量反而导致该任务执行的时间被拖长,即Hadoop系统需要花费较长的时间准备足够的集群资源。再者,若一个任务在执行过程中,其映射子任务输出结果的数据量较大,而该任务设置了较小的规约子任务数量,此时规约子任务需要花费较长的时间处理映射子任务输出的大量数据,如此也会导致任务处理时间过长。由此可见,一个任务在设置了合理数量的规约子任务数量时,该任务才会被较快的执行。再者,若每个任务都能够占用合理的资源,也会使整个Hadoop系统具有较高的运行效率。
然而,在程序的开发过程中,开发人员往往根据自身的经验设置程序的任务属性,在一些情况下,开发人员的经验不足,在设置程序的任务属性时,难以设置的较为合理,导致程序作为任务在Hadoop系统中执行时,花费较长的时间。
发明内容
本申请实施方式的目的是提供一种任务性能评价方法及系统,能够评价任务占用集群资源的合理性。
为解决上述技术问题,本申请提供一种任务性能评价方法,用于评价分布式集群系统中的任务执行过程中利用集群资源的合理性,所述方法包括:
获取所述分布式集群系统对所述任务分配的任务标识;
依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值;
将所述任务属性值与预定规则进行比对,产生评价结论;
反馈所述评价结论。
本申请还提供一种任务性能评价系统,用于评价分布式集群系统中的任务执行过程中利用集群资源的合理性,包括:
标识获取模块,用于获取所述分布式集群系统对所述任务分配的任务标识;
特征获取模块,用于依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值;
评价模块,用于将所述任务属性值与预定规则进行比对,产生评价结论,产生评价结论;
反馈模块,用于反馈所述评价结论。
由以上本申请实施方式提供的技术方案可见,本申请通过获取任务的任务属性,按照预定规则依照任务属性对任务进行评价,给出任务的评价结论,可以指出影响任务性能的缺陷,帮助开发人员进行改进,进而实现减少集群中资源的浪费,提升集群整体任务的执行效率。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的Hadoop系统的功能模块示意图;
图2本申请一个实施方式提供的任务性能评价方法的流程图;
图3为本申请一个实施方式提供的任务性能评价方法中,反馈评价结论的子步骤流程图;
图4为本申请一个实施方式提供的任务性能评价方法中,产生评价结论的子步骤流程图;
图5为本申请一个实施方式提供的任务性能评价方法中,产生评价结论的子步骤流程图;
图6为本申请一个实施方式提供的任务性能评价方法中,产生评价结论的子步骤流程图;
图7为本申请一个实施方式提供的任务性能评价系统的模块图;
图8为本申请一个实施方式提供的任务性能评价系统的模块图;
图9为本申请一个实施方式提供的任务性能评价系统的模块图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
请参阅图2,为本申请的一个实施方式提供的任务性能评价方法。所述任务性能评价方法适用于分布式集群系统框架下,采用集群资源进行作业的任务。例如,采用Hadoop系统的集群资源中运行的任务。所述任务为能在分布式集群系统中执行并能够实现特定功能的一个程序。
所述任务性能评价方法包括如下步骤。
步骤S10:获取所述分布式集群系统对所述任务分配的任务标识。
在本实施方式中,分布式集群系统中运行一个任务时,会给该任务分配一个任务标识,该任务标识能够唯一标识该任务。具体的,举例为:在Hadoop系统中,设置有JobTracker,所述JobTracker用于针对任务进行调度,分配集群资源,以及为任务分配任务标识。如此,根据任务标识便可以区分不同的任务,或者跟踪某一个任务的执行情况。
在本实施方式中,通过获取任务标识确定目标任务,而目标任务是将被评价的任务。目标任务可以是集群中的任一个任务。任务标识的获取方式可以通过接收外部输入的方式确定。当然,也可以按照预定获取规则获取分布式集群系统中某一个的任务的任务标识,该任务标识对应的任务即为目标任务,例如:获取Hadoop系统中最近一个执行完成的任务的任务标识,则Hadoop系统最近一个执行完成的任务即为目标任务。当然,在一次评价过程中,目标任务的数量并不限于一个,可以获取多个任务标识,并将该多个任务标识对应的多个任务作为目标任务进行评价。比如,用户输入多个任务标识,或者获取Hadoop系统某一个时间段内完成的任务的任务标识。
步骤S20:依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值。
在本实施方式中,Hadoop系统执行某一个任务后,会在Hadoop的日志中记录该任务在执行过程中的执行信息。执行信息中可以包括一个或一个以上的任务属性及其具体取值,该任务属性可以表达任务执行过程中的异常情况以及任务执行过程的集群资源占用情况。任务属性可以包括任务占用的资源数量、任务执行过程的中间结果是否被压缩、任务执行过程中缓存空间大小等等。具体的,以Hadoop框架下为例,可以从集群的日志中获取如下任务属性:映射子任务数和规约子任务数等。当然,本领域技术人员,在本发明的技术精髓启示下,还可能获取获取其它的任务属性,或者取消或变更上述列举的任务属性,还可能不进行创造性劳动的基础上进行变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S30:将所述任务属性值与预定规则进行比对,产生评价结论。
在本实施方式中,可以针对每个任务属性预先制定评价规则,形成预定规则。在预定规则中可以包括任务属性的较佳取值,将目标任务的一个或一个以上任务属性的当前取值与较佳取值进行对比,便可以得出目标任务本身性能的优劣情况。
在本实施方式中,评价结论可以为针对每个任务属性产生一个评价结论,也可以将一个或一个以上任务属性作为一整体产生一个评价结论。针对每个任务均产生一个评价结论,有助于帮助开发人员了解任务属性的细节,便于开发人员对细节部分进行改进。针对整体的评价结论有助于开发人员对任务的整体情况进行了解,有助于开发人员对任务的整体算法进行改进。评价结论的内容可以包括任务属性的当前状况和改进建议。
步骤S40:反馈所述评价结论。
在本实施方式中,针对目标任务产生评价结论之后,将评价结论向开发人员展示,具体的可以直接以一个网页的方式展示给开发人员,也可以将所述评价结论作为保存至一个文件中,比如扩展名为“.doc”或“.txt”格式的文件,再或者将评价结论保存为一个不会被轻易修改的文件避免研发人员的误操作修改的评价结论,具体的比如扩展名为“.pdf”或“.jpg”格式的文件。
本申请实施方式提供的分布式集群系统任务性能评价方法,通过获取任务的任务属性,将任务属性与预定规则进行对比,给出任务的改进建议,实现可以帮助研发人员提升任务的执行性能,减少集群中资源的浪费,提升集群整体任务的执行效率。
请参阅图3,在本申请的一个实施方式中,所述步骤S40还包括如下子步骤。
步骤S41:接收电子邮件地址。
步骤S43:制定邮件,所述邮件附有所述评价结论。
步骤S45:将所述邮件发送到所述电子邮件地址。
在本实施方式中,产生评价结论之后,可以通过电子邮件的方式向开发人员反馈任务的评价结论。实现评价结论能够及时有效的反馈给开发人员,并且便于开发人员的不断查阅。评价结论可以作为邮件的内容,也可以作为邮件的一个附件。当然,还可以不包括所述步骤S41,此时在步骤S45中将所述邮件发送到预定电子邮件地址。预定电子邮件地址可以为预先设置的用于接收评价结论的电子邮箱。
请参阅图4,在本申请的一个实施方式中,所述步骤S20中获取的所述任务属性包括:映射子任务输出字节数量和规约子任务数量。所述步骤S30还包括如下子步骤。
步骤S311:依据所述映射子任务输出字节数量按照第一预定逻辑得到目标规约子任务数量。
在本实施方式中,第一预定逻辑依照映射子任务输出字节数量在第一预定数据列表中查找目标规约子任务数量范围。第一预定数据列表中对应映射子任务输出字节数量记录有目标规约子任务数量范围。具体的,举例见下表1。
表1
映射子任务输出字节数量 | 目标规约子任务数量 |
0~30GB | 1~240 |
30GB~100GB | 240~380 |
100GB~500GB | 380~780 |
500GB以上 | 780~1900 |
步骤S313:将所述规约子任务数量与所述目标规约子任务数量对比,产生评价结论。
在本实施方式中,判断当前规约子任务数量是否处于目标规约子任务数量范围内,如果处于目标规约子任务数量范围内,则当前规约子任务数量设置较为合理,否则当前规约子任务数量设置不合理,建议将当前规约子任务数量设置到目标规约子任务数量范围内。
请参阅图5,所述步骤S20中获取的任务属性包括:映射子任务数量、映射阶段输入文件数量和单个映射子任务执行时长。所述步骤S30还包括子步骤。
步骤S321:所述映射子任务数量大于所述映射阶段输入文件数量时,若所述单个映射子任务执行时长小于预定时长,产生的评价结论包括建议减少映射子任务数量。
在本实施方式中,通过预定时长可以限定单个映射子任务的最短执行时长,一个任务有多个映射子任务时,则每个映射子任务的执行时长需大于预定时长,否则会被认为映射子任务数量设置不合理。映射子任务数量大于映射阶段输入文件数量,则说明存在多个映射子任务读取并处理一份文件的数据,当单个映射子任务执行时长小于预定时长,说明单个映射子任务实行时间过短,需要减小映射子任务的数量。在Hadoop系统中,若任务的映射子任务数量设置较大,则Hadoop系统在执行所述任务时,会首先准备执行所述任务的集群资源,同前文描述,准备集群资源会花费一定的时间,在单个映射子任务执行时长小于预定时长时,表明单个映射子任务处理的数据量非常少,而在调度准备集群资源却花费了较长时间,可以适当减小映射子任务数量,以减少Hadoop系统的调度时间,减少了当前任务占用的集群资源。具体的,所述预定时长可以为2分钟。
在本实施方式中,所述步骤S30还可以包括子步骤S323:所述映射子任务数量大于第一预定数量时,若所述映射子任务数量大于所述映射阶段输入文件数量的第一预定倍数,产生的评价结论包括建议减少映射子任务数量。在本实施方式中,第一预定数量可以为1000,第一预定倍数可以为1.5倍。当映射子任务数量大于第一预定数量时,说明当前任务执行映射阶段时会占用较多的系统资源,而映射子任务数量大于映射阶段输入文件数量的第一预定倍数,说明映射子任务数量设置过多。此时,Hadoop系统会花费较长时间调动集群资源,花费较长时间,再者也会导致Hadoop系统中其它运行的任务因缺少资源而无法得到执行,对Hadoop系统整体运行存在较大的影响,但映射子任务数量大于映射阶段输入文件数量的第一预定倍数,表明当前任务在映射阶段不需要如此多的映射子任务数量,所以建议减少映射子任务数量。
在本实施方式中,所述步骤S30还可以包括子步骤S325:所述映射子任务数量大于第二预定数量时,产生的评价结论包括建议将所述映射子任务的任务优先级设置为最低,所述第二预定数量大于所述第一预定数量。在本实施方式中,所述第二预定数量可以为4000个。当映射子任务数量大于第二预定数量时,表明映射子任务数量已经非常庞大,在任务的映射阶段需要占用大量的集群资源,如果该任务的映射子任务优先于其它任务执行,则大量的任务因为缺少资源而无法执行,容易导致整个Hadoop系统因集群资源被一个任务大量占用而阻塞。因此,当映射子任务数量大于第二预定数量时,建议将每个映射子任务的优先级设置为最低,如此当Hadoop系统中存在足够的空闲集群资源才会执行所述任务,从而不会影响Hadoop系统中其它任务的运行。
在本申请的一个实施方式中,所述步骤S20中获取的所述任务属性包括映射阶段输出结果的压缩情况,所述步骤S30还包括子步骤:若所述映射阶段输出结果的压缩情况为没有压缩,产生的评价结论包括建议对映射阶段输出结果的进行压缩。在本实时方式中,映射阶段输出结果往往较大,可能达到几十或上百GB字节,所以映射阶段输出结果往往会占用集群的磁盘存储器较多空间,为了避免磁盘存储器的存储空间不足,应减小映射阶段输出结果占用的空间,故需要对映射阶段输出结果进行压缩。
在本申请的一个实施方式中,所述步骤S20获取的所述任务属性包括映射阶段映射子任务占用内存空间的大小。所述步骤S30还可以包括子步骤:若所述映射子任务占用内存空间的大小小于预定数值,产生的评价结论包括建议增大所述映射子任务占用内存空间的大小至所述预定数值以上。在本实施方式中,所述预定数值可以为512MB,映射阶段映射子任务往往会读取或输出大量的数据,如果映射子任务占用内存空间设置为小于512MB,则很可能导致内存空间过小,导致映射子任务处理的一部分数据需要缓存至磁盘存储器中,由于磁盘存储器的读写速度较慢,使得映射子任务的执行时间被整体拖长,降低了Hadoop系统的执行效率,故此映射子任务占用内存空间的大小应不小于512MB。
在本申请的一个实施方式中,映射阶段映射子任务占用的内存空间包括索引空间和数据空间,所述任务属性包括映射阶段所述索引空间与所述数据空间的比例和内存空间状态,所述内存空间状态包括表示所述索引空间存满数据的第一取值,和表示所述数据空间存满数据的第二取值。所述步骤S30还可以包括子步骤:若所述内存空间状态的当前值为所述第一取值,产生的平价结论包括建议将所述索引空间与所述数据空间的比例增大;若所述内存空间状态特征的当前值为所述第二取值,产生的平价结论包括建议将所述索引空间与所述数据空间的比例缩小。
在本实施方式中,索引空间内用于存储索引信息,即所述索引信息为所述数据空间内存储的数据的索引,通过所述索引信息可以查找数据空间内的数据。在映射阶段,映射子任务输出数据至内存空间,当索引空间或数据空间内存入的数据到达80%时,会将当前内存空间的数据一次性存入磁盘存储器,形成一个中间文件,而在将数据存入磁盘存储器的过程中,会利用内存空间20%的部分接收映射子任务的输出,在完成向磁盘存储器的写入之后,内存空间的80%内的数据被清空可以继续存入新的数据,如此反复,当一个映射子任务输出的数据较多时,可以在磁盘存储器中形成多个中间文件。
在本实施方式中,所述任务属性映射阶段索引空间与数据空间的比例,规定了索引信息和数据分别能够使用的内存空间的大小,当索引空间或数据空间内存入的数据达到80%,映射子任务输出的数据便会开始存入磁盘存储器,如果该比例设置不合理,那么索引空间或数据空间中的一个会相对容易到达80%,则会反复多次进行写入磁盘存储器的操作,由于磁盘存储器的处理速度相对较慢,可能会导致内存空间被存满使映射子任务被阻塞。具体的,举例为,索引空间和数据空间的比例为1:9,假设索引空间为10MB,数据空间为90MB,假设映射子任务输出的数据多为整型数据,占用较少的内存空间,当索引空间到达8MB时,数据空间仅仅占用了60MB不到数据空间的80%,此时由于索引空间已经到达了80%,需要进行写入磁盘存储器的操作,在写入磁盘存储器的过程中,会使用索引空间剩余的2MB空间和数据空间剩余的30MB空间接收映射子任务的数据,此时可能会因为索引空间较小,在写入磁盘存储器的没有结束时,索引空间剩余的2MB空间已经被写满,导致映射子任务被阻塞,延长了整个任务的执行时间。所以需要调整所述任务属性映射阶段索引空间与数据空间的比例,使内存空间的使用更加合理。
在本申请的一个实施方式中,所述步骤S20中获取的所述任务属性包括磁盘同时合并文件数,所述磁盘同时合并文件数为映射阶段映射子任务向磁盘写入中间文件后,所述磁盘同时合并的所述中间文件的数量。所述步骤S30还可以包括子步骤:若所述磁盘同时合并文件数小于第三预定数量,产生的评价结论包括建议增大所述磁盘同时合并文件数至所述第三预定数量以上。在本实施方式中,所述第三预定数量的取值可以为100。映射子任务对数据处理完成之后,通常会在磁盘存储器中形成多个中间文件,磁盘存储器需要将改写中间文件合并成一个文件,若磁盘存储器一次合并的中间文件的数量较少,则会进行反复多次合并中间文件的操作,增加多次重复的寻址操作,延长了处理时间,所以通常为将中间文件在一次合并操作中完成合并为较佳情况。
请参阅图6,在本申请的一个实施方式中,所述步骤S20中获取的所述任务属性包括规约阶段同时下载映射子任务输出结果的线程数,以及规约子任务输入字节数量。所述步骤S30还包括如下子步骤。
步骤S361:依据所述规约子任务输入字节数量按照第二预定逻辑得出目标线程数。
在本实施方式中,第二预定逻辑为依照映射子任务输出结果在第二预定数据列表中查找目标线程数,第二预定数据列表中对应映射子任务输出结果记录有目标线程数。如此实现判断规约子任务输出字节数量对应处于的数据范围,进而对应得出目标线程数。具体的,举例参表2。
表2
规约子任务输入字节数量 | 目标线程数 |
0~10GB | 10 |
10GB~20GB | 20 |
20GB以上 | 40 |
步骤S363:将所述线程数与所述目标线程数对比,产生评价结论。
在本实施方式中,判断规约子任务输入字节数量所处的范围之后得到目标线程数,将当前线程数与目标线程数作比较,若不相同,表明当前线程数设置不合理,建议修改为目标线程数。
在本申请的一个实施方式中,所述步骤S20中获取的任务属性包括任务占用内存上限值,所述步骤S30还包括子步骤:若所述任务占用内存上限值小于第三预定数量,产生的评价结论包括建议将所述任务占用内存上限值增大至第三预定数量以上。在本实施方式中,第三预定数量可以为1500MB。任务占用内存上限值约定了一个任务能够使用的最大内存,若任务占用内存上限值设置较小,则可能会出现映射子任务或规约子任务在执行过程中内存空间不够用而将数据缓存在磁盘存储器中,因磁盘存储器读写速度慢,会降低任务的执行速度。将任务占用内存上限值设置在1500MB以上,能够满足多数任务执行过程中对内存的使用需求。
在本申请的一个实施方式中,所述步骤S20中获取的任务属性包括任务使用计数器的数量。所述步骤S30还可以包括子步骤:若所述计数器的数量超过第四预定数量,产生的评价结论包括建议减少所述计数器的数量至所述第四预定数量以下。在本实施方式中,所述第四预定数量可以为50个。任务中的计数器需要进行一些列的运算,当计数器的数量设置较多时,会增加任务的运算量,导致任务的执行速度降低,故当任务的计数器数量超过50个,则建议对任务进行修改,减少任务中计数器的数量。
在本申请的一个实施方式中,所述步骤S20中获取的所述任务属性包括日志大小。所述步骤S30还包括子步骤:若所述日志大小大于第五预定数量,产生的评价结论包括建议将所述日志大小减小至第五预定数量以下。在本实施方式中,第五预定数量的取值可以为5MB。由于Hadoop系统本身会记录日志,任务执行过程中也可以单独记录日志,该日志往往作为调试使用,若任务执行过程中单独记录的日志较大,则需要多次读写磁盘的操作,导致任务的执行速度变慢,故此建议任务输出的日志大小小于5MB。
在本申请的一个实施方式中,所述任务属性包括规约子任务执行时间,所述按照预定规则评价所述预定特征的步骤包括:若所述规约子任务执行时间大于平均规约子任务执行时间的第二预定倍数,产生的评价结论包括建议修改任务分配机制,减小所述规约子任务处理的文件。在本实施方式中,映射子任务输出的文件会作为规约子任务的输入进行处理,任务分配机制会对多个映射子任务的输出多个文件进行归类,一个或多个规约子任务会处理一类映射子任务输出的文件,当某一类文件过多时,会导致规约子任务执行时间大于平均规约子任务执行时间,当规约子任务执行时间大于平均规约子任务时间时间的第二预定倍数,此时处理其他类别文件的规约子任务已经执行完毕,而由于某一类的文件过多,处理该类文件的规约子任务仍在执行,导致延长了任务的执行时间,使得任务占用的资源长时间无法释放,故此,建议修改任务分配机制
请参阅图7,本申请实施方式还提供一种分布式集群系统中任务性能评价系统100。任务性能评价系统100包括:标识获取模块10、特征获取模块20、评价模块30和反馈模块40。
标识获取模块10用于获取所述分布式集群系统对所述任务分配的任务标识。
在本实施方式中,分布式集群系统中运行一个任务时,会给该任务分配一个任务标识,该任务标识能够唯一标识该任务。具体的,举例为:在Hadoop系统中,设置有JobTracker,所述JobTracker用于针对任务进行调度,分配集群资源,以及为任务分配任务标识。如此,根据任务标识便可以区分不同的任务,或者跟踪某一个任务的执行情况。
在本实施方式中,标识获取模块10获取任务标识,从而通过任务标识确定目标任务。目标任务可以是集群中的任一个任务。任务标识的获取方式可以通过接收外部输入的方式确定。当然,也可以按照预定获取规则获取分布式集群系统中某一个的任务的任务标识,该任务标识对应的任务即为目标任务,例如:获取Hadoop系统中最近一个执行完成的任务的任务标识,则Hadoop系统最近一个执行完成的任务即为目标任务。当然,在一次评价过程中,目标任务的数量并不限于一个,可以获取多个任务标识,并将该多个任务标识对应的多个任务作为目标任务进行评价。比如,用户输入多个任务标识,或者获取Hadoop系统某一个时间段内完成的任务的任务标识。
特征获取模块20用于依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值。
在本实施方式中,Hadoop系统执行某一个任务,会在Hadoop的日志中记录该任务在执行过程中的执行信息。执行信息中可以包括一个或一个以上的任务属性,该任务属性用于表达任务执行过程中的异常情况以及任务执行过程的集群资源占用情况。任务属性可以包括任务占用的资源数量、任务执行过程的中间结果是否被压缩、任务执行过程中缓存空间大小等等。特征获取模块20获取日志中对应于目标任务的任务标识记录的任务属性。
评价模块30用于将所述任务属性值与预定规则进行比对,产生评价结论。
在本实施方式中,在评价模块30中针对每个任务属性预先制定评价规则,形成预定规则。在预定规则中可以包括任务属性的较佳取值。将目标任务的一个或一个以上任务属性与预定规则进行对比,便可以得出目标任务本身性能的优劣情况。评价结论可以为针对每个任务属性产生一个评价结论,也可以将一个或一个以上任务属性作为一整体产生一个评价结论。评价结论的内容可以包括任务属性的当前状况和改进建议。
反馈模块40用于反馈所述评价结论。
在本实施方式中,针对目标任务产生评价结论之后,反馈模块40将评价结论向开发人员展示,具体的可以直接以一个网页的方式展示给开发人员,也可以将所述评价结论作为保存至一个文件中,比如扩展名为“.doc”或“.txt”格式的文件,再或者将评价结论保存为一个不会被轻易修改的文件避免研发人员的误操作修改的评价结论,具体的比如扩展名为“.pdf”或“.jpg”格式的文件。
请参阅图8,在本申请的一个实施方式中,所述任务属性值包括:映射子任务输出字节数量和规约子任务数量。评价模块30还包括:目标规约子任务数量确定模块31和对比模块32。
目标规约子任务数量确定模块31用于依据所述映射子任务输出字节数量按照第一预定逻辑得到目标规约子任务数量。
在本实施方式中,目标规约子任务数量去顶模块31包括预定数据列表和查表模块。预定数据列表中对应映射子任务输出字节数量记录有目标规约子任务数量。如此实现可以根据映射子任务输出字节数量获取目标规约子任务数量。具体的,对预定数据列表举例为表3。
表3
映射子任务输出字节数量 | 目标规约子任务数量 |
0~30GB | 1~240 |
30GB~100GB | 240~380 |
100GB~500GB | 380~780 |
500GB以上 | 780~1900 |
在本实施方式中,查表模块用于依照映射子任务输出字节数量在预定数据列表中查找目标规约子任务数量。
对比模块32用于将所述规约子任务数量与所述目标规约子任务数量对比,确定所述任务性能。在本实施方式中,对比模块32判断当前规约子任务数量是否处于目标规约子任务数量范围内,如果处于目标规约子任务数量范围内,则当前规约子任务数量设置较为合理,否则当前规约子任务数量设置不合理,建议将当前规约子任务数量设置到目标规约子任务数量范围内。
请参阅图9,在本申请的一个实施方式中,所述任务属性值包括:映射子任务数量、映射阶段输入文件数量和单个映射子任务执行时长。评价模块30包括:第一比较模块33。第一比较模块33用于当所述映射子任务数量大于所述映射阶段输入文件数量时,若所述单个映射子任务执行时长小于预定时长,产生包括建议减少映射子任务数量的评价结论。
在本实施方式中,通过预定时长可以限定单个映射子任务的最短执行时长,一个任务有多个映射子任务时,则每个映射子任务的执行时长需大于预定时长,否则会被认为映射子任务数量设置不合理。映射子任务数量大于映射阶段输入文件数量,则说明存在多个映射子任务读取并处理一份文件的数据,当单个映射子任务执行时长小于预定时长,说明单个映射子任务实行时间过短,需要减小映射子任务的数量。在Hadoop系统中,若任务的映射子任务数量设置较大,则Hadoop系统在执行所述任务时,会首先准备执行所述任务的集群资源,同前文描述,准备集群资源会花费一定的时间,在单个映射子任务执行时长小于预定时长时,表明单个映射子任务处理的数据量非常少,而在调度准备集群资源却花费了较长时间,可以适当减小映射子任务数量,以减少Hadoop系统的调度时间,减少了当前任务占用的集群资源。具体的,所述预定时长可以为2分钟。
在本实施方式中,评价模块30还可以包括第二比较模块34。第二比较模块34用于当所述映射子任务大于第一预定数量时,若所述映射子任务数量大于所述映射阶段输入文件的第一预定倍数,产生包括建议减少映射子任务数量的评价结论。在本实施方式中,第一预定数量可以为1000,第一预定倍数可以为1.5倍。当映射子任务数量大于第一预定数量时,说明当前任务执行映射阶段时会占用较多的系统资源,而映射子任务数量大于映射阶段输入文件数量的第一预定倍数,说明映射子任务数量设置过多。此时,Hadoop系统会花费较长时间调动集群资源,花费较长时间,再者也会导致Hadoop系统中其它运行的任务因缺少资源而无法得到执行,对Hadoop系统整体运行存在较大的影响,但映射子任务数量大于映射阶段输入文件数量的第一预定倍数,表明当前任务在映射阶段不需要如此多的映射子任务数量,所以建议减少映射子任务数量。
在本实施方式中,评价模块30还可以包括第三比较模块35。第三比较模块35用于当所述映射子任务数量大于第二预定数量时,产生包括建议将所述映射子任务的任务优先级设置为最低的评价结论,其中所述第二预定数量大于所述第一预定数量。在本实施方式中,所述第二预定数量可以为4000个。当映射子任务数量大于第二预定数量时,表明映射子任务数量已经非常庞大,在任务的映射阶段需要占用大量的集群资源,如果该任务的映射子任务优先于其它任务执行,则大量的任务因为缺少资源而无法执行,容易导致整个Hadoop系统因集群资源被一个任务大量占用而阻塞。因此,当映射子任务数量大于第二预定数量时,建议将每个映射子任务的优先级设置为最低,如此当Hadoop系统中存在足够的空闲集群资源才会执行所述任务,从而不会影响Hadoop系统中其它任务的运行。
由以上本申请实施方式提供的技术方案可见,本申请通过获取任务的任务属性,按照预定规则依照任务属性对任务进行评价,给出任务的评价结论,可以指出影响任务性能的缺陷,帮助开发人员进行改进,进而实现减少集群中资源的浪费,提升集群整体任务的执行效率。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (16)
1.一种任务性能评价方法,用于评价分布式集群系统中的任务执行过程中利用集群资源的合理性,其特征在于,所述方法包括:
获取所述分布式集群系统对所述任务分配的任务标识;
依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值;
将所述任务属性值与预定规则进行比对,产生评价结论;
反馈所述评价结论。
2.如权利要求1所述的方法,其特征在于,所述任务属性值包括:映射子任务输出字节数量和规约子任务数量,所述将所述任务属性值与预定规则进行比对的步骤包括:
依据所述映射子任务输出字节数量按照第一预定逻辑得到目标规约子任务数量;
将所述规约子任务数量与所述目标规约子任务数量对比,产生评价结论。
3.如权利要求2所述的方法,其特征在于,所述第一预定逻辑包括依照所述映射子任务输出字节数量在第一预定数据列表中查找目标规约子任务数量,所述第一预定数据列表中对应所述映射子任务输出字节数量记录有所述目标规约子任务数量。
4.如权利要求1所述的方法,其特征在于,所述任务属性值包括:映射子任务数量、映射阶段输入文件数量和单个映射子任务执行时长,所述将所述任务属性值与预定规则进行比对的步骤包括:
所述映射子任务数量大于所述映射阶段输入文件数量时,若所述单个映射子任务执行时长小于预定时长,产生的评价结论包括建议减少映射子任务数量。
5.如权利要求4所述的方法,其特征在于,所述将所述任务属性值与预定规则进行比对的步骤还包括:
所述映射子任务数量大于第一预定数量时,若所述映射子任务数量大于所述映射阶段输入文件数量的第一预定倍数,产生的评价结论包括建议减少映射子任务数量;
所述映射子任务数量大于第二预定数量时,产生的评价结论包括建议将所述映射子任务的任务优先级设置为最低,其中所述第二预定数量大于所述第一预定数量。
6.如权利要求1所述的方法,其特征在于,所述任务属性包括映射阶段输出结果的压缩情况,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述映射阶段输出结果的压缩情况为没有压缩,产生的评价结论包括建议对映射阶段输出结果的进行压缩。
7.如权利要求1所述的方法,其特征在于:所述任务属性包括映射阶段映射子任务占用内存空间的大小,所述按照预定规则评价所述预定特征的步骤包括:
若所述映射子任务占用内存空间的大小小于预定数值,产生的评价结论包括建议增大所述映射子任务占用内存空间的大小至所述预定数值以上。
8.如权利要求1所述的方法,其特征在于:所述内存空间包括索引空间和数据空间,所述任务属性包括映射阶段所述索引空间与所述数据空间的比例和内存空间状态特征,所述内存空间状态特征包括表示所述索引空间存满数据的第一取值,和表示所述数据空间存满数据的第二取值,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述内存空间状态特征的当前值为所述第一取值,产生的评价结论包括建议将所述索引空间与所述数据空间的比例增大;若所述内存空间状态特征的当前值为所述第二取值,产生的评价结论包括建议将所述索引空间与所述数据空间的比例缩小。
9.如权利要求1所述的方法,其特征在于:所述任务属性包括磁盘同时合并文件数,所述磁盘同时合并文件数为映射阶段映射子任务向磁盘写入中间文件后,所述磁盘同时合并的所述中间文件的数量,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述磁盘同时合并文件数小于第三预定数量,产生的评价结论包括建议增大所述磁盘同时合并文件数至所述第三预定数量以上。
10.如权利要求1所述的方法,其特征在于:所述任务属性包括规约阶段同时下载映射子任务输出结果的线程数,所述将所述任务属性值与预定规则进行比对的步骤包括:
依据所述映射子任务输出结果按照第二预定逻辑得出目标线程数;
将所述线程数与所述目标线程数对比,确定所述任务的性能。
11.如权利要求10所述的方法,其特征在于:所述第二预定逻辑为依照所述映射子任务输出结果在第二预定数据列表中查找目标线程数,所述第二预定数据列表中对应所述映射子任务输出结果记录有所述目标线程数。
12.如权利要求1所述的方法,其特征在于:所述任务属性包括任务占用内存上限值,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述任务占用内存上限值小于第三预定数量,产生的评价结论包括建议将所述任务占用内存上限值增大至第三预定数量以上。
13.如权利要求1所述的方法,其特征在于:所述任务属性包括任务使用计数器的数量,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述计数器的数量超过第四预定数量,产生的评价结论包括建议减少所述计数器的数量至所述第四预定数量以下。
14.如权利要求1所述的方法,其特征在于:所述任务属性包括日志大小,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述日志大小大于第五预定数量,产生的评价结论包括建议将所述日志大小减小至第五预定数量以下。
15.如权利要求1所述的方法,其特征在于:所述任务属性包括规约子任务执行时间,所述将所述任务属性值与预定规则进行比对的步骤包括:
若所述规约子任务执行时间大于平均规约子任务执行时间的第二预定倍数,产生的评价结论包括建议修改任务分配机制,减小所述规约子任务处理的文件。
16.一种任务性能评价系统,用于评价分布式集群系统中的任务执行过程中利用集群资源的合理性,其特征在于,包括:
标识获取模块,用于获取所述分布式集群系统对所述任务分配的任务标识;
特征获取模块,用于依照所述任务标识在所述分布式集群系统中获取所述任务运行后记录的任务属性值;
评价模块,将所述任务属性值与预定规则进行比对,产生评价结论;
反馈模块,用于反馈所述评价结论。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410177677.2A CN105096096A (zh) | 2014-04-29 | 2014-04-29 | 任务性能评价方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410177677.2A CN105096096A (zh) | 2014-04-29 | 2014-04-29 | 任务性能评价方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105096096A true CN105096096A (zh) | 2015-11-25 |
Family
ID=54576464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410177677.2A Pending CN105096096A (zh) | 2014-04-29 | 2014-04-29 | 任务性能评价方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105096096A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451039A (zh) * | 2016-03-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种对集群中执行设备评价的方法和设备 |
CN110019092A (zh) * | 2017-12-27 | 2019-07-16 | 杭州华为数字技术有限公司 | 数据存储的方法、控制器和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902621A (zh) * | 2011-07-28 | 2013-01-30 | 塔塔咨询服务有限公司 | 应用性能评价和报告 |
CN103618644A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种基于hadoop集群的分布式监控系统及其方法 |
CN103618626A (zh) * | 2013-11-28 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于日志的安全分析报告生成的方法和系统 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN103701886A (zh) * | 2013-12-19 | 2014-04-02 | 中国信息安全测评中心 | 一种云计算环境下的服务及资源分层调度方法 |
CN103713935A (zh) * | 2013-12-04 | 2014-04-09 | 中国科学院深圳先进技术研究院 | 一种在线管理Hadoop集群资源的方法和装置 |
CN103746883A (zh) * | 2014-01-14 | 2014-04-23 | 博元森禾信息科技(北京)有限公司 | 服务流性能的检测方法和装置 |
-
2014
- 2014-04-29 CN CN201410177677.2A patent/CN105096096A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902621A (zh) * | 2011-07-28 | 2013-01-30 | 塔塔咨询服务有限公司 | 应用性能评价和报告 |
CN103618644A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种基于hadoop集群的分布式监控系统及其方法 |
CN103618626A (zh) * | 2013-11-28 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于日志的安全分析报告生成的方法和系统 |
CN103713935A (zh) * | 2013-12-04 | 2014-04-09 | 中国科学院深圳先进技术研究院 | 一种在线管理Hadoop集群资源的方法和装置 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN103701886A (zh) * | 2013-12-19 | 2014-04-02 | 中国信息安全测评中心 | 一种云计算环境下的服务及资源分层调度方法 |
CN103746883A (zh) * | 2014-01-14 | 2014-04-23 | 博元森禾信息科技(北京)有限公司 | 服务流性能的检测方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451039A (zh) * | 2016-03-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种对集群中执行设备评价的方法和设备 |
CN110019092A (zh) * | 2017-12-27 | 2019-07-16 | 杭州华为数字技术有限公司 | 数据存储的方法、控制器和系统 |
CN110019092B (zh) * | 2017-12-27 | 2021-07-09 | 华为技术有限公司 | 数据存储的方法、控制器和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577805B (zh) | 一种面向日志大数据分析的业务服务系统 | |
CN107145586B (zh) | 一种基于电力营销数据的标签产出方法和装置 | |
CN106354729B (zh) | 一种图数据处理方法、装置和系统 | |
Grover et al. | Extending map-reduce for efficient predicate-based sampling | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
CN108171528B (zh) | 一种归因方法及归因系统 | |
Osman et al. | Towards real-time analytics in the cloud | |
CN108268565A (zh) | 基于数据仓库处理用户浏览行为数据的方法及系统 | |
CN103019855A (zh) | MapReduce作业执行时间预测方法 | |
CN112835966A (zh) | 数据查询方法、装置以及电子设备 | |
CN109669975B (zh) | 一种工业大数据处理系统及方法 | |
US9292405B2 (en) | HANA based multiple scenario simulation enabling automated decision making for complex business processes | |
Kougka et al. | Optimization of data flow execution in a parallel environment | |
Chen et al. | Cloud computing value chains: Research from the operations management perspective | |
Pospiech et al. | A descriptive big data model using grounded theory | |
CN105096096A (zh) | 任务性能评价方法及系统 | |
CN113849503A (zh) | 一种开放式大数据处理系统、方法及介质 | |
US11966868B2 (en) | Rapid sorting-based supply assignment tool for order fulfillment with short supply | |
CN114116908A (zh) | 一种数据管理方法、装置及电子设备 | |
US10109019B2 (en) | Accelerated disaggregation in accounting calculation via pinpoint queries | |
CN113641654A (zh) | 一种基于实时事件的营销处置规则引擎方法 | |
CN113641705A (zh) | 一种基于计算引擎的营销处置规则引擎方法 | |
Liu et al. | Multivariate modeling and two-level scheduling of analytic queries | |
Xie et al. | Ower Big Data Analysis Technology and Application Based on Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151125 |