CN104077328A - MapReduce分布式系统的作业诊断方法及设备 - Google Patents

MapReduce分布式系统的作业诊断方法及设备 Download PDF

Info

Publication number
CN104077328A
CN104077328A CN201310109756.5A CN201310109756A CN104077328A CN 104077328 A CN104077328 A CN 104077328A CN 201310109756 A CN201310109756 A CN 201310109756A CN 104077328 A CN104077328 A CN 104077328A
Authority
CN
China
Prior art keywords
journal file
diagnostic
job
file
distributed system
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
CN201310109756.5A
Other languages
English (en)
Other versions
CN104077328B (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 CN201310109756.5A priority Critical patent/CN104077328B/zh
Publication of CN104077328A publication Critical patent/CN104077328A/zh
Application granted granted Critical
Publication of CN104077328B publication Critical patent/CN104077328B/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/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种MapReduce分布式系统的作业诊断方法及设备。本发明实施例通过获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。

Description

MapReduce分布式系统的作业诊断方法及设备
【技术领域】
本发明涉及通信技术,尤其涉及一种MapReduce分布式系统的作业诊断方法及设备。
【背景技术】
近年来,随着宽带网络技术与并行计算理论的快速发展,一种更简化的分布式系统即映射和汇总(MapReduce)分布式系统应运而生,以为多种应用提供服务,例如,为搜索引擎提供服务。在MapReduce分布式系统,也可以成为MapReduce分布式集群,例如,Hadoop系统,中,一个数据处理过程称为一个作业(Job),Job提交之后,将待处理数据分为N份,每份待处理数据由一个映射(Map)任务进行处理,Map任务运行在该MapReduce分布式系统中的一个节点设备上,一个节点设备上可以运行一个或多个Map任务;所有Map任务的输出结果由汇总(Reduce)任务进行汇总,输出对应的结果。其中,Hadoop是阿帕奇软件基金下的一个开源项目。
然而,在作业运行过程中,作业的运行状态的监控、作业的运行控制参数的调整等诸多作业诊断均需要操作人员进行手动控制,操作复杂,且容易出错,从而导致了作业诊断的效率和可靠性的降低。
【发明内容】
本发明的多个方面提供一种MapReduce分布式系统的作业诊断方法及设备,用以提高作业诊断的效率和可靠性。
本发明的一方面,提供一种MapReduce分布式系统的作业诊断方法,包括:
获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识;
利用所述对象标识,获得至少一个作业运行的日志文件;
根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述利用所述对象标识,获得至少一个作业运行的日志文件,包括:
利用所述对象标识,获得所述日志文件的URL;
根据所述日志文件的URL,获得所述日志文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,包括:
根据所述日志文件,提取作业信息;
根据预先设置的数据格式,对所述作业信息进行封装;
根据所述诊断规则,对封装之后的作业信息进行诊断。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果之后,还包括:
根据所述诊断结果,调整所述至少一个作业的运行控制参数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述日志文件包括配置文件和状态文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
对所述至少一个作业的运行状况进行统计,以获得统计信息。
本发明的另一方面,提供一种MapReduce分布式系统的作业诊断设备,包括:
获得单元,用于获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识;
所述获得单元,还用于利用所述对象标识,获得至少一个作业运行的日志文件;
诊断单元,用于根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获得单元,具体用于
利用所述对象标识,获得所述日志文件的URL;以及根据所述日志文件的URL,获得所述日志文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述诊断单元,具体用于
根据所述日志文件,提取作业信息;根据预先设置的数据格式,对所述作业信息进行封装;以及根据所述诊断规则,对封装之后的作业信息进行诊断。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述设备还包括调整单元,用于
根据所述诊断结果,调整所述至少一个作业的运行控制参数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获得单元所获得的所述日志文件包括配置文件和状态文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述设备还包括统计单元,用于
对所述至少一个作业的运行状况进行统计,以获得统计信息。
由上述技术方案可知,本发明实施例通过获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的MapReduce分布式系统的作业诊断方法的流程示意图;
图2为本发明另一实施例提供的MapReduce分布式系统的作业诊断设备的结构示意图;
图3为本发明另一实施例提供的MapReduce分布式系统的作业诊断设备的结构示意图;
图4为本发明另一实施例提供的MapReduce分布式系统的作业诊断设备的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明一实施例提供的MapReduce分布式系统的作业诊断方法的流程示意图。
101、获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识。
例如,所述集群标识可以为集群名称(Cluster Name)。
再例如,所述作业标识可以为作业标识符(Job ID)。
102、利用所述对象标识,获得至少一个作业运行的日志文件。
其中,所述日志文件可以包括但不限于配置文件(例如,conf.xml文件)和状态文件(例如,log文件),本实施例对此不进行限定。
103、根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
需要说明的是,101~103的执行主体可以是一诊断设备。
这样,通过获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。
可选地,在本实施例的一个可能的实现方式中,在102中,诊断设备具体可以利用所述对象标识,获得所述日志文件的统一资源定位符(UniformResource Locator,URL)。例如,所述日志文件的URL可以通过拼接字符串的方式生成,具体方式的详细描述可以参见现有技术中的相关内容,此处不再赘述。然后,所述诊断设备则可以根据所述日志文件的URL,获得所述日志文件。
可选地,在本实施例的一个可能的实现方式中,在103中,诊断设备具体可以根据所述日志文件,提取作业信息。具体地,所述诊断设备具体可以根据用户指定,或者所述诊断规则的需要,从所述日志文件中提取有用的部分内容,作为作业信息。然后,所述诊断设备则可以根据预先设置的数据格式,对所述作业信息进行封装,以及根据所述诊断规则,对封装之后的作业信息进行诊断。
可选地,在本实施例的一个可能的实现方式中,在103之后,诊断设备还可以进一步根据所述诊断结果,调整所述至少一个作业的运行控制参数。这样,可以缩短所述至少一个作业的执行时间,从而提高了MapReduce分布式系统的作业执行效率。
另外,还可以优化所述至少一个作业的执行策略,从而提高了MapReduce分布式系统的资源利用率。
具体地,所述诊断规则可以有很多种,下面将举几个例子进行简单说明。简单来说,可以将所述诊断规则分为三类,一类是Map任务相关的一些规则,另一类是Reduce任务相关的一些规则,还有一类是其它规则。
第一类、Map任务相关的一些规则
1、Map阶段磁盘溢写(Map Side Disk Spill)
当Map任务开始运行,并产生中间数据时,其产生的中间数据并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存(buffer)来进行产生的中间数据的缓存,并在buffer中进行一些预排序(sort)来优化整个Map任务的性能。每一个Map任务都会对应存在一个buffer(MapOutputBuffer),Map任务会将产生的中间数据先写入到该buffer中,这个buffer默认是100兆字节(MB)大小,但是这个大小是可以根据作业提交时的参数设定来调整的,该参数即为:io.sort.mb。当Map任务产生的中间数据非常大时,并且把io.sort.mb调大,那么Map任务在整个计算过程中溢写(spill)的次数就势必会降低,Map任务对磁盘的操作就会变少,如果Map任务的瓶颈在磁盘上,这样调整就会大大提高Map任务的计算性能。
Map任务在运行过程中,不停的向该buffer中写入产生的中间数据,但是该buffer并不一定能将全部的Map任务产生的中间数据缓存下来,当Map任务产生的中间数据超出一定阈值(例如,100MB),那么Map任务就必须将该buffer中的数据写入到磁盘中去,这个过程在MapReduce分布式系统中叫做溢写(spill)。Map任务并不是要等到将该buffer全部写满时才进行spill,因为如果全部写满了再去写spill,势必会造成Map任务的计算部分等待buffer释放空间的情况。所以,Map任务其实是当buffer被写满到一定程度(例如,80%)时,就开始进行spill。这个阈值也是可以根据作业提交时的参数设定来调整的由,该参数即为:io.sort.spill.percent,默认为0.80或80%。这个参数同样也是影响spill频繁程度,进而影响Map任务运行周期对磁盘的读写频率的。
具体的诊断规则可以参见公式(1):
( Σ 1 num _ maps Map _ output _ Bytes - Σ 1 num _ maps Map _ Local _ Write ) / Map _ output _ bytes - - - ( 1 )
其中,Map_local_Write表示一个Map任务写入磁盘的数据量;num_maps表示Map任务的总数,表示全部的Map任务写入磁盘的数据量之和;Map_output_Bytes表示一个Map任务输出的数据量;num_maps表示Map任务的总数,表示一个作业的Map任务输出的数据量之和。公式(1)的取值范围在0~1之间,取值越大,说明Map任务的计算性能越好。
2、Map任务重复执行次数(Map Re-Executed Impact)
具体的诊断规则可以参见公式(2):
(Total_launched_maps-Total_maps)/Total_maps      (2)
其中,Total_launched_maps表示总共启动的Map任务数量;Total_maps表示作业所包含的Map任务数量,一个Map任务可能由于不稳定等原因失败而被重复执行,所以Total_launched_maps大于或等于Total_maps。公式(2)的取值范围大于或等于0,取值越小,说明Map任务的计算性能越好。
3、Map任务本地化影响(Reading HDFS Files As Side Effect)
具体的诊断规则可以参见公式(3):
JobKeys.HDFS_READ/JobKeys.Map_input_bytes      (3)
其中,JobKeys.HDFS_READ表示通过网络从Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)读取的数据量;JobKeys.Map_input_bytes表示Map任务的输入数据量,一个Map任务的输入数据包括两部分数据,一部分数据是通过网络从HDFS读取的数据,另一部分数据是从本地读取的数据。公式(3)的取值范围在0~1之间,取值越小,说明Map任务的本地化率越高,Map任务的效率越高。
4、压缩Map任务产生的中间数据(Compressing Map Output)
控制Map任务产生的中间数据是否使用压缩的参数为:mapred.compress.map.output(true/false)。将这个参数设置为真(true)时,那么Map任务在写中间数据时,就会将中间数据压缩后再写入磁盘,读数据时也会采用先解压后读取数据。这样,写入磁盘的中间数据的数据量会变少,但是中央处理单元(Central Processing Unit,CPU)会消耗一些处理能力用来进行压缩和解压。当Map任务产生的中间数据非常大时,并且该参数设置为真(true),那么,Map任务在整个计算过程中溢写(spill)的数据量就势必会降低,Map任务对磁盘的操作就会变少,如果Map任务的瓶颈在磁盘上,这样调整就会大大提高Map任务的计算性能。
5、Map任务的槽位数是否需要增加(Increasing Maps Slots)
下一个作业的并发Map任务数量不应该超过MapReduce分布式系统的总槽位的阈值,例如,90%。如果超过该阈值,则可以通过增加MapReduce分布式系统的总槽位数量,这样调整就会大大提高Map任务的计算性能。
第二类、Reduce任务相关的一些规则
1、Reduce分桶均匀判断(Balance Reduce Partitioning)
由于作业的每一个Map任务都会根据Reduce任务的个数n将Map任务产生的中间数据分成n个partition,每个partition由一个Map任务执行。因此,Map任务产生的中间数据中是有可能包含每一个Reduce需要处理的部分数据的。所以,为了优化Reduce任务的执行时间,在MapReduce分布式系统中,每个作业是等该作业的第一个Map任务结束之后,所有的Reduce任务就开始尝试从完成的Map任务中下载该Reduce任务对应的partition,这个过程就是通常所说的拖拽(shuffle)。Reduce任务在做shuffle时,实际上就是从不同的已经完成的Map任务中下载属于自己这个Reduce任务的partition,由于Map任务通常有许多个,所以对一个Reduce任务来说,下载也可以是并行的从多个Map任务中下载,这个并行度是可以调整的,调整参数为:mapred.reduce.parallel.copies(默认值为5)。默认情况下,每个只会有5个并行的下载线程在从Map任务中下载数据,如果一个时间段内该作业完成的Map任务有100个或者更多,那么Reduce任务也最多只能同时下载5个Map任务产生的中间数据,所以这个参数比较适合map很多并且完成的比较快的作业的情况下调大,有利于Reduce任务更快的获取属于自己的部分数据。
具体的诊断规则可以参见公式(4):
InputRecord/TotalInputRecord      (4)
其中,InputRecord表示一个Reduce任务所处理的输入记录;TotalInputRecord表示所有Reduce任务所处理的总输入记录。对于所有的Reduce任务,若公式(2)的取值均小于或等于预先设置的比例阈值(默认值为0.9),说明partition的划分合理;若公式(2)的取值有大于预先设置的比例阈值,说明partition的划分不合理。
2、减少中间数据(Reducing Intermediate data)
具体可以根据作业运行的日志文件,确定该作业是否使用合并(combiner)函数。其中,combiner函数是指在Map任务中做一次数据归并(merge),其意义在于减少中间传输的数据量。如果该作业没有使用combiner函数,则可以根据作业运行的日志文件,建议使用combiner函数,例如,若Map任务的输入数据量远远大于Reduce任务的输入数据量,例如,Map任务的输入数据量大于3倍的Reduce任务的输入数据量,则可以建议使用combiner函数。
3、Reduce阶段磁盘溢写(Reduce Side Disk Spill)
具体的诊断规则可以参见公式(5):
Σ 1 num _ maps Map _ output _ Bytes - Σ 1 num _ reduces Reduce _ Local _ Write - - - ( 5 )
其中,Map_output_Bytes表示一个Map任务输出的数据量;num_maps表示Map任务的总数,表示一个作业的Map任务输出的数据量之和;Reduce_Local_Write表示一个Reduce任务写入磁盘的数据量;num_rudecues表示Reduce任务的总数,表示一个作业的Reduce任务写入磁盘的数据量之和。公式(5)的取值范围大于或等于0,取值越大,说明Reduce任务的计算性能越好。
4、Reduce任务重复执行次数(Reduce Re-Executed Impact)
具体的诊断规则可以参见公式(6):
(Total_launched_reduces-Total_reduces)/Total_reduces      (6)
其中,Total_launched_reduces表示总共启动的Reduce任务数量;Total_reduces表示作业所包含的Reduce任务数量,一个Reduce任务可能由于不稳定等原因失败而被重复执行,所以Total_launched_maps大于或等于Total_maps。公式(6)的取值范围大于或等于0,取值越小,说明Reduce任务的计算性能越好。
第三类、其它规则(也可以称之为作业相关规则)
1、Map任务和Reduce任务的处理数据量
具体可以调整Map任务的处理数据量与Reduce任务的处理数据量,以保证Reduce任务的输入数据量是Map任务的输入数据量的指定倍数,例如1.5倍。
具体地,在MapReduce分布式系统中,具体可以通过解析配置文件(例如,conf.xml文件),获得Map任务数量(total_map_task)和Reduce任务数量(total_reduce_task)。此外,具体还可以通过解析状态文件(例如,log文件),获得保存到numBytesReadByMaps中作业的所有Map任务的输入数据量,以及保存到numBytesReadByReduces中作业的所有Reduce任务的输入数据量。然后,计算获得每个Map任务的处理数据量和每个Reduce任务的处理数据量。
可选地,在本实施例的一个可能的实现方式中,诊断设备还可以进一步对所述至少一个作业的运行状况进行统计,以获得统计信息。
具体地,诊断设备可以对一个作业进行统计。例如,可以对各个时段区间内作业运行时的任务数进行统计,或者还可以对各个时段区间内运行时间较长的作业的作业信息进行统计,或者还可以对作业的Map任务的输入数据量与输出数据量进行统计,或者还可以对作业的Reduce任务的输入数据量与输出数据量进行统计等。
具体地,诊断设备还可以对多个作业即集群进行统计。例如,可以对作业的资源占用情况进行统计,或者还可以对占用集群资源最多的作业的作业信息进行统计,或者还可以对集群影响最大的作业的作业信息进行统计等。
另外,所述诊断设备还可以进一步将统计结果以图表形式展示出来。
本实施例中,通过获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本发明另一实施例提供的MapReduce分布式系统的作业诊断设备的结构示意图。本实施例提供的MapReduce分布式系统的作业诊断设备可以包括获得单元21和诊断单元22。其中,获得单元21,用于获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识;所述获得单元21,还用于利用所述对象标识,获得至少一个作业运行的日志文件;诊断单元22,用于根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
例如,所述集群标识可以为集群名称(Cluster Name);再例如,所述作业标识可以为作业标识符(Job ID)。
其中,所述获得单元21所获得的所述日志文件可以包括但不限于配置文件(例如,conf.xml文件)和状态文件(例如,log文件),本实施例对此不进行限定。
这样,通过获得单元获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得诊断单元能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。
可选地,在本实施例的一个可能的实现方式中,所述获得单元21,具体可以用于利用所述对象标识,获得所述日志文件的URL;以及根据所述日志文件的URL,获得所述日志文件。例如,所述日志文件的URL可以通过拼接字符串的方式生成,具体方式的详细描述可以参见现有技术中的相关内容,此处不再赘述。
可选地,在本实施例的一个可能的实现方式中,所述诊断单元22,具体可以用于根据所述日志文件,提取作业信息;根据预先设置的数据格式,对所述作业信息进行封装;以及根据所述诊断规则,对封装之后的作业信息进行诊断。具体地,所述诊断单元22具体可以根据用户指定,或者所述诊断规则的需要,从所述日志文件中提取有用的部分内容,作为作业信息。
可选地,在本实施例的一个可能的实现方式中,如图3所示,本实施例提供的MapReduce分布式系统的作业诊断设备还可以进一步包括调整单元31,用于根据所述诊断结果,调整所述至少一个作业的运行控制参数。这样,可以缩短所述至少一个作业的执行时间,从而提高了MapReduce分布式系统的作业执行效率。
另外,所述调整单元31还可以优化所述至少一个作业的执行策略,从而提高了MapReduce分布式系统的资源利用率。
具体地,所述诊断规则可以有很多种,下面将举几个例子进行简单说明。简单来说,可以将所述诊断规则分为三类,一类是Map任务相关的一些规则,另一类是Reduce任务相关的一些规则,还有一类是其它规则。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
可选地,在本实施例的一个可能的实现方式中,如图4所示,本实施例提供的MapReduce分布式系统的作业诊断设备还可以进一步包括统计单元41,用于对所述至少一个作业的运行状况进行统计,以获得统计信息。
具体地,所述统计单元41可以对一个作业进行统计。例如,可以对各个时段区间内作业运行时的任务数进行统计,或者还可以对各个时段区间内运行时间较长的作业的作业信息进行统计,或者还可以对作业的Map任务的输入数据量与输出数据量进行统计,或者还可以对作业的Reduce任务的输入数据量与输出数据量进行统计等。
具体地,所述统计单元41还可以对多个作业即集群进行统计。例如,可以对作业的资源占用情况进行统计,或者还可以对占用集群资源最多的作业的作业信息进行统计,或者还可以对集群影响最大的作业的作业信息进行统计等。
另外,所述统计单元41还可以进一步将统计结果以图表形式展示出来。
本实施例中,通过获得单元获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识,进而利用所述对象标识,获得至少一个作业运行的日志文件,使得诊断单元能够根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果,全部流程为自动化操作流程,无需操作人员进行手动控制,操作简单,且正确率高,从而提高了作业诊断的效率和可靠性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种MapReduce分布式系统的作业诊断方法,其特征在于,包括:获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识;
利用所述对象标识,获得至少一个作业运行的日志文件;
根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
2.根据权利要求1所述的方法,其特征在于,所述利用所述对象标识,获得至少一个作业运行的日志文件,包括:
利用所述对象标识,获得所述日志文件的URL;
根据所述日志文件的URL,获得所述日志文件。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,包括:
根据所述日志文件,提取作业信息;
根据预先设置的数据格式,对所述作业信息进行封装;
根据所述诊断规则,对封装之后的作业信息进行诊断。
4.根据权利要求1~3任一权利要求所述的方法,其特征在于,所述根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果之后,还包括:
根据所述诊断结果,调整所述至少一个作业的运行控制参数。
5.根据权利要求1~4任一权利要求所述的方法,其特征在于,所述日志文件包括配置文件和状态文件。
6.根据权利要求1~5任一权利要求所述的方法,其特征在于,所述方法还包括:
对所述至少一个作业的运行状况进行统计,以获得统计信息。
7.一种MapReduce分布式系统的作业诊断设备,其特征在于,包括:
获得单元,用于获得MapReduce分布式系统中待诊断对象的对象标识,所述对象标识包括集群标识,或者集群标识和作业标识;
所述获得单元,还用于利用所述对象标识,获得至少一个作业运行的日志文件;
诊断单元,用于根据所述日志文件和预先配置的诊断规则,对所述至少一个作业进行诊断,以获得诊断结果。
8.根据权利要求7所述的设备,其特征在于,所述获得单元,具体用于
利用所述对象标识,获得所述日志文件的URL;以及根据所述日志文件的URL,获得所述日志文件。
9.根据权利要求7或8所述的设备,其特征在于,所述诊断单元,具体用于
根据所述日志文件,提取作业信息;根据预先设置的数据格式,对所述作业信息进行封装;以及根据所述诊断规则,对封装之后的作业信息进行诊断。
10.根据权利要求7~9任一权利要求所述的设备,其特征在于,所述设备还包括调整单元,用于
根据所述诊断结果,调整所述至少一个作业的运行控制参数。
11.根据权利要求7~10任一权利要求所述的设备,其特征在于,所述获得单元所获得的所述日志文件包括配置文件和状态文件。
12.根据权利要求7~11任一权利要求所述的设备,其特征在于,所述设备还包括统计单元,用于
对所述至少一个作业的运行状况进行统计,以获得统计信息。
CN201310109756.5A 2013-03-29 2013-03-29 MapReduce分布式系统的作业诊断方法及设备 Active CN104077328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310109756.5A CN104077328B (zh) 2013-03-29 2013-03-29 MapReduce分布式系统的作业诊断方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310109756.5A CN104077328B (zh) 2013-03-29 2013-03-29 MapReduce分布式系统的作业诊断方法及设备

Publications (2)

Publication Number Publication Date
CN104077328A true CN104077328A (zh) 2014-10-01
CN104077328B CN104077328B (zh) 2019-05-24

Family

ID=51598587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310109756.5A Active CN104077328B (zh) 2013-03-29 2013-03-29 MapReduce分布式系统的作业诊断方法及设备

Country Status (1)

Country Link
CN (1) CN104077328B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138706A (zh) * 2015-09-30 2015-12-09 浪潮(北京)电子信息产业有限公司 分布式文件系统数据诊断方法、装置和系统
CN105205144A (zh) * 2015-09-18 2015-12-30 北京百度网讯科技有限公司 用于数据诊断优化的方法和系统
CN106168983A (zh) * 2016-08-08 2016-11-30 中国农业银行股份有限公司 一种混合资源处理方法及装置
CN106326005A (zh) * 2016-01-21 2017-01-11 华南师范大学 一种迭代型MapReduce作业的参数自动调优方法
CN109101188A (zh) * 2017-11-21 2018-12-28 新华三大数据技术有限公司 一种数据处理方法和装置
WO2020034194A1 (zh) * 2018-08-17 2020-02-20 西门子股份公司 分布式数据处理方法、装置及系统和机器可读介质
CN111143161A (zh) * 2019-12-09 2020-05-12 东软集团股份有限公司 日志文件的处理方法、装置、存储介质和电子设备
CN113010377A (zh) * 2021-03-03 2021-06-22 中国工商银行股份有限公司 一种作业的运行日志的采集方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070261102A1 (en) * 2006-05-04 2007-11-08 Tony Spataro Methods and systems for specifying and enforcing access control in a distributed system
CN101267647A (zh) * 2008-04-24 2008-09-17 中兴通讯股份有限公司 用于通信系统的网管系统
CN101499934A (zh) * 2008-01-29 2009-08-05 华为技术有限公司 在对等网络中诊断节点是否异常的方法、装置及系统
CN102143008A (zh) * 2010-01-29 2011-08-03 国际商业机器公司 用于数据中心的诊断故障事件的方法及装置
CN102724059A (zh) * 2012-03-31 2012-10-10 常熟市支塘镇新盛技术咨询服务有限公司 基于MapReduce的网站运行状态监控与异常检测

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070261102A1 (en) * 2006-05-04 2007-11-08 Tony Spataro Methods and systems for specifying and enforcing access control in a distributed system
CN101499934A (zh) * 2008-01-29 2009-08-05 华为技术有限公司 在对等网络中诊断节点是否异常的方法、装置及系统
CN101267647A (zh) * 2008-04-24 2008-09-17 中兴通讯股份有限公司 用于通信系统的网管系统
CN102143008A (zh) * 2010-01-29 2011-08-03 国际商业机器公司 用于数据中心的诊断故障事件的方法及装置
CN102724059A (zh) * 2012-03-31 2012-10-10 常熟市支塘镇新盛技术咨询服务有限公司 基于MapReduce的网站运行状态监控与异常检测

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205144B (zh) * 2015-09-18 2019-03-26 北京百度网讯科技有限公司 用于数据诊断优化的方法和系统
CN105205144A (zh) * 2015-09-18 2015-12-30 北京百度网讯科技有限公司 用于数据诊断优化的方法和系统
CN105138706A (zh) * 2015-09-30 2015-12-09 浪潮(北京)电子信息产业有限公司 分布式文件系统数据诊断方法、装置和系统
CN106326005B (zh) * 2016-01-21 2019-12-17 华南师范大学 一种迭代型MapReduce作业的参数自动调优方法
CN106326005A (zh) * 2016-01-21 2017-01-11 华南师范大学 一种迭代型MapReduce作业的参数自动调优方法
CN106168983A (zh) * 2016-08-08 2016-11-30 中国农业银行股份有限公司 一种混合资源处理方法及装置
CN106168983B (zh) * 2016-08-08 2019-12-20 中国农业银行股份有限公司 一种混合资源处理方法及装置
CN109101188A (zh) * 2017-11-21 2018-12-28 新华三大数据技术有限公司 一种数据处理方法和装置
CN109101188B (zh) * 2017-11-21 2022-03-01 新华三大数据技术有限公司 一种数据处理方法和装置
WO2020034194A1 (zh) * 2018-08-17 2020-02-20 西门子股份公司 分布式数据处理方法、装置及系统和机器可读介质
CN111143161A (zh) * 2019-12-09 2020-05-12 东软集团股份有限公司 日志文件的处理方法、装置、存储介质和电子设备
CN111143161B (zh) * 2019-12-09 2024-04-09 东软集团股份有限公司 日志文件的处理方法、装置、存储介质和电子设备
CN113010377A (zh) * 2021-03-03 2021-06-22 中国工商银行股份有限公司 一种作业的运行日志的采集方法及装置
CN113010377B (zh) * 2021-03-03 2024-06-14 中国工商银行股份有限公司 一种作业的运行日志的采集方法及装置

Also Published As

Publication number Publication date
CN104077328B (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
CN104077328A (zh) MapReduce分布式系统的作业诊断方法及设备
DE102019106669A1 (de) Verfahren und anordnungen zum verwalten von speicher in kaskadierten neuronalen netzen
CN103218263B (zh) MapReduce参数的动态确定方法及装置
CN104123184A (zh) 一种用于为构建过程中的任务分配资源的方法和系统
US20150370885A1 (en) Method and system for clustering event messages and managing event-message clusters
CN104077218A (zh) MapReduce分布式系统的测试方法及设备
CN106682036A (zh) 一种数据交换系统及其交换方法
CN102902558A (zh) 项目脚本文件更新系统和方法、脚本文件合并方法和装置
CN110928802A (zh) 基于自动生成用例的测试方法、装置、设备及存储介质
US9275359B1 (en) Mechanism and techniques for discovery and prediction of long-term high-level nearly periodical business processes from low-level logs
CN105700956A (zh) 用于处理分布式作业的方法和系统
JP2016100006A (ja) パフォーマンス試験のためのベンチマーク・アプリケーションを生成する方法および装置
DE112016004192T5 (de) Fehlerprüfung komprimierter Ströme in heterogenen Kompressionsbeschleunigern
KR20200054372A (ko) 클라우드-엣지 시스템 및 이의 데이터 처리 방법
US9396095B2 (en) Software verification
CN103631848A (zh) 决策服务中的有效规则执行
Xin et al. Locat: Low-overhead online configuration auto-tuning of spark sql applications
CN111679860A (zh) 分布式信息处理方法及装置
WO2020038376A1 (zh) 统一地执行特征抽取的方法及系统
CN110750359A (zh) 硬件资源配置方法、装置、云侧设备和存储介质
CN103970512A (zh) 多核处理器及其并行重放方法
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN110795304B (zh) 分布式存储系统性能测试的方法及装置
US10545740B2 (en) Distributed agent to collect input and output data along with source code for scientific kernels of single-process and distributed systems
CN114329116B (zh) 基于人工智能的智慧园区资源匹配度分析方法及系统

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