CN111159004A - 一种Hadoop集群仿真测试方法、装置及存储介质 - Google Patents
一种Hadoop集群仿真测试方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111159004A CN111159004A CN201811318559.3A CN201811318559A CN111159004A CN 111159004 A CN111159004 A CN 111159004A CN 201811318559 A CN201811318559 A CN 201811318559A CN 111159004 A CN111159004 A CN 111159004A
- Authority
- CN
- China
- Prior art keywords
- hadoop
- cluster
- simulation
- information
- test
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 129
- 238000003860 storage Methods 0.000 title claims abstract description 27
- 238000010998 test method Methods 0.000 title claims abstract description 10
- 238000004519 manufacturing process Methods 0.000 claims abstract description 145
- 238000012360 testing method Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000009826 distribution Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 16
- 238000005457 optimization Methods 0.000 claims description 13
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000012466 permeate Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Abstract
本发明涉及计算机应用技术领域,公开了一种Hadoop集群仿真测试方法、装置及存储介质,用于减少Hadoop测试集群调优的成本和周期,提高Hadoop生产集群运行速度和运行的稳定性,所述方法包括:获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,并根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业,再运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试,最后根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种Hadoop集群仿真测试方法、装置及存储介质。
背景技术
随着大数据时代的到来,用户数据量呈爆炸性增长,分布式计算处理系统Hadoop渗透到大数据处理领域的各方面,Hadoop集群因其高效性被广泛的应用于数据密集型工作中。Hadoop集群可以由数千个服务器组成,并能满足数据量的快速增长,数据特别大的需求。但随着Hadoop集群处理的数据越来越多,其处理数据的速度和稳定性会受到一定的影响,因此对其的调优也变得不必不可少。
目前Hadoop集群的调优主要是依赖运维人员的经验和研发人员对Hadoop源码的优化直接在Hadoop集群上进行,往往需要反复多次的试验才能达到调优的效果,增加了调优的成本和周期,且基于Hadoop集群直接进行调优的方式容错性较低,一旦失败,可能导致集群宕机、生产停止等重大事故,造成重大的损失。因此,如何解决Hadoop集群的调优问题是一个需要解决的技术问题。
发明内容
本发明实施例提供了一种Hadoop集群仿真测试方法、装置及存储介质,用于测试模拟实际Hadoop生产集群生成的仿真作业,并根据测试所得结果直接对Hadoop生出产集群进行调优,避免了直接在Hadoop生成集群上进行调优时对Hadoop生成集群产生的不良影响,同时也减少了调优的成本和周期,提高实际的Hadoop生产集群资源的使用率。
第一方面,本发明实施例提供的一种Hadoop集群仿真测试方法,包括:
获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息;
根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业;
运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试;
根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
可选的,所述获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,具体包括:
确定所述Hadoop生产集群信息采集接口处于开启状态;
通过所述接口,从所述Hadoop生产集群的作业日志信息中,获取所述资源使用状况信息和作业信息;或者
通过所述接口,向所述Hadoop生产集群发送获取所述资源使用状况信息和作业信息的请求,并基于所述Hadoop生产集群的反馈,获得所述资源使用状况信息和作业信息。
可选的,所述根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业,具体包括:
解析所述资源使用状况信息和作业信息,获得所述Hadoop生产集群中的作业指标分布特征;
根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业。
可选的,所述在根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业之前,所述方法还包括:获得对所述Hadoop生产集群进行调优测试的指令。
可选的,所述运行所述仿真作业,具体包括:
确定测试集群服务处于开启状态;
生成仿真计算节点;
调度用于运行所述仿真作业的资源,并基于所述资源,在所述仿真计算节点运行所述仿真作业。
第二方面,本发明实施例还提供了一种Hadoop集群仿真测试装置,包括:
获取单元,用于获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息;
仿真单元,用于根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业;
测试单元,用于运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试;
调优单元,根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
可选的,所述获取单元用于:
确定所述Hadoop生产集群信息采集接口处于开启状态;
通过所述接口,从所述Hadoop生产集群的作业日志信息中,获取所述资源使用状况信息和作业信息;或者
通过所述接口,向所述Hadoop生产集群发送获取所述资源使用状况信息和作业信息的请求,并基于所述Hadoop生产集群的反馈,获得所述资源使用状况信息和作业信息。
可选的,所述仿真单元用于:
解析所述资源使用状况信息和作业信息,获得所述Hadoop生产集群中的作业指标分布特征;
根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业。
可选的,在根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业之前,所述获取单元,还用于:
获得对所述Hadoop生产集群进行调优测试的指令。
可选的,所述测试单元用于:
确定测试集群服务处于开启状态;
生成仿真计算节点;
调度用于运行所述仿真作业的资源,并基于所述资源,在所述仿真计算节点运行所述仿真作业。
第三方面,本发明实施例还提供了一种Hadoop集群仿真测试装置,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行如第一方面所述方法的步骤。
第四方面,本发明实施例还提供了一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法的步骤。
在本发明实施的技术方案中,通过获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,并根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业,然后运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试,再根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。所以,避免了直接在Hadoop生成集群上进行调优时对Hadoop生成集群产生的不良影响,同时也减少了调优的成本和周期,提高实际的Hadoop生产集群资源的使用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种Hadoop集群仿真测试方法流程图;
图3为本发明实施例提供的Hadoop集群仿真测试系统组成图;
图4为本发明实施例提供的获取资源使用状况信息和作业信息的流程图;
图5为本发明实施例提供的生成Hadoop生产集群仿真作业的流程图;
图6为本发明实施例提供的解析采集信息的示意图;
图7为本发明实施例提供的一种对Hadoop参数进行调优测试的流程图;
图8为本发明实施例提供的测试集群模块运行的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
下面对本发明实施例中涉及的部分概念进行介绍。
1)Hadoop:是一个进行大规模数据处理的分布式计算与存储系统。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序,并以一种可靠、高效、可伸缩的方式进行数据处理。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算,MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。
2)RPC:Remote Procedure Call(远程过程调用),是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。因此,其在Hadoop集群中十分重要。
在具体实践过程中,本发明的发明人发现,现有技术中Hadoop集群调优方式大多依赖于运维人员的经验和研发人员优化源码的方式在集群上直接进行调优,调优的过程中,可能需要反复多次试验才能得到调优的效果,多次直接在集群上调优会影响生产作业运行,增加运维成本,且直接在集群上调优的方式容错性较低,一旦失败,可能导致集群宕机、生产停止等重大事故,造成严重损失。
基于此,本发明实施例提供了一种Hadoop集群仿真测试方法,该方法可以先获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,再根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业,然后再运行仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试,最后根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优,由此,避免了直接在Hadoop生成集群上进行调优时对Hadoop生成集群产生的不良影响,同时也减少了调优的成本和周期。
本发明实施例中的Hadoop集群仿真测试方法应用于如图1所示的应用场景,该应用场景中,包括Hadoop测试集群1(以下简称测试集群)、Hadoop生产集群2、以及终端设备3,其中,测试集群1是由多个服务器组成的用于运行仿真作业的集群,其服务器的规模数量少于实际的Hadoop生成集群,但其可以模拟产生与实际的Hadoop生产集群相同的节点,使得其可以通过运行仿真作业,还原实际的Hadoop生成集群的作业运行状况,调节测试集群中的参数,使作业运行达到最优状况,以便得到可用于Hadoop生产集群调优的参数。
Hadoop生产集群2是由多台服务器组成的进行实际运行作业的集群,一个服务器相当于一个节点,节点越多其处理的数据量更大,所以,在实际应用中,Hadoop生产集群所包含的服务器数量根据其需要处理的数据的多少决定。
终端设备3是任何具有显示功能的设备,可用于显示和查询测试集群仿真测试中得到的测试结果,这样的终端设备包括电脑、iPad等,终端设备3可通过网络与测试集群1以及Hadoop生产集群2进行通信,网络可以为局域网、广域网或移动互联网等通信网络中的任意一种。
需要注意的是,上文提及的应用场景仅是为了便于理解本发明的精神和原理而示出,本发明实施例在此方面不受任何限制。相反,本发明实施例可以应用于适用的任何场景。
下面结合图1所示的应用场景,对本发明实施例提供的Hadoop集群仿真测试方法进行说明。
请参考图2,为本发明实施例提供的一种Hadoop集群仿真测试方法,包括:
步骤101:获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息。
本发明实施例中的方法可以应用于如图1所示的测试集群中,在该测试集群中,可以设置用于实现本发明实施例中的方法的测试集群系统,测试集群系统可以如图3所示,包括自动抽取模块Automatic Extraction,集群指标存储模块Skyline Store,集群仿真模块Emulator Service以及测试集群模块Test Cluster,下文将在使用到测试集群系统对应模块时,对其进行详细介绍。
需要说明的是,在具体实践过程中,还可以根据实际需要测试集群系统中的各个功能模块,上述图3中的本发明实施例中划分测试集群系统中的各个功能模块的一种示例。
在本发明实施例中,如图3所示,Hadoop生产集群可以由RM(Resource Manager,资源管理服务),NN(NameNode,主节点),NM(Node Manager,计算节点),DN(DataNode,存储节点)等主要服务构成。
其中,RM负责所有资源的统一管理和分配,接收来自各个节点的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序;NN负责管理文件系统的命名空间和控制外部客户机的访问,它维护着文件系统树Filesystem Tree以及文件树中所有的文件和文件夹的目录;NM是RM在每台机器上的代理,负责管理并监控它们的资源使用情况,以及向集群资源管理服务/资源调度程序ResourceManager/Scheduler提供资源使用报告;DN是文件系统的工作节点,负责根据客户端或者是NN的调度存储和检索数据,并定期向NN发送存储的块的列表。
在本发明实施例中,Hadoop生产集群产生的资源使用状况信息和作业信息是能够反映Hadoop生产集群运行状况的信息,如反映生产集群的负载状况的信息、RPC响应信息、作业的类型、作业的开始时间和结束时间等,并且,能够通过获取的这些信息进行模拟仿真还原出Hadoop生产集群的实际运行环境中的运行状况。
在本发明实施例中,Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,可以通过测试集群系统中的设置的信息自动抽取模块Automatic Extraction抽取获取的。
一种可选的方式,在本发明实施例中,步骤101可以按照图4所示的流程执行,图4所示的流程,包括:
步骤201:确定Hadoop生产集群信息采集接口处于开启状态;
步骤201之后执行步骤202或执行步骤203,其中:
步骤202:通过接口,从Hadoop生产集群的作业日志信息中,获取资源使用状况信息和作业信息;
步骤203:通过接口,向Hadoop生产集群发送获取资源使用状况信息和作业信息的请求,并基于Hadoop生产集群的反馈,获得资源使用状况信息和作业信息。
在本发明实施例中,又可以将测试集群系统中的信息自动抽取模块AutomaticExtraction细分为信息采集模块Collectors和信息抽取子模块Extractor,其中,Collectors从Hadoop生产集群采集资源使用状况信息和作业信息,资源使用状况信息和作业信息为含有集群重要指标的信息,具体如JMX(Java Management Extensions,Java管理扩展)、Job logs等等,Collectors采集信息的周期,该可由测试人员根据仿真测试的需要灵活设定,如设定成每小时抽取一次或者每天抽取一次,也可以指定采集集群作业较多的一定时间段内的指标信息,例如,如果生产集群在早上9点至10点这段时间作业较多,则设定采集生产集群9点至10点这个时间段的指标信息。Extractors则对搜集的信息进行进一步解析抽取,得到集群周期负载状况。
在本发明实施例中,为了获取Hadoop生产集群实际运行中产生的资源使用状况信息和作业信息,可以先确定Hadoop生产集群是否开启资源使用状况信息和作业信息(指标信息)采集接口,在确定Hadoop生产集群开启该采集接口后,测试集群系统中的Collectors可通过Hadoop生产集群开启的信息采集接口,从对应服务的作业日志信息中直接采集资源使用状况信息和作业信息,还可以通过REST API请求的方式向Hadoop生产集群发送获取资源使用状况信息和作业信息的请求,然后通过Hadoop生产集群反馈的信息,获得Hadoop生产集群的资源使用状况信息和作业信息。
若确定Hadoop生产集群未开启该采集接口,则可以先向Hadoop生产集群发送开启该采集接口的请求,进而通过Hadoop生产集群的响应开启该采集接口。
在本发明实施例中,Hadoop生产集群开启的采集接口,可以具体为JMX和Job logs信息采集接口,JMX是Hadoop生产集群的监控接口,Job logs是对Hadoop生产集群中作业日志接口。
例如,用户可以使用REST API请求通过JMX监控接口,向Hadoop生产集群发送获取资源使用状况信息和作业信息的请求,获取与Hadoop生产集群RPC请求相关的信息,响应速度的快慢,RPC存储队列长度CallQueue Length,RPC完成的操作次数RpcQueueTimeNumOps,Hadoop生产集群RM服务的状态等JMX信息,也可以通过Job logs信息采集接口从Hadoop生产集群中直接获取相对应服务的作业日志信息。
步骤102:根据资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业。
在本发明实施例中,在生成模拟Hadoop生产集群实际运行的作业的仿真作业前,还可以对通过JMX和Job logs接口获得的JMX和Job logs信息进一步分析,并从中抽取获得用于生成仿真作业的作业指标分布特征信息。
一种可选的方式,步骤102可以按照图5所示的流程执行,图5所示的流程包括:
步骤301:解析资源使用状况信息和作业信息,获得Hadoop生产集群中的作业指标分布特征。
步骤302:根据作业指标分布特征,生成模拟Hadoop集群实际运行的作业的仿真作业。
在本发明实施例中,每一步骤之间都是可以通过接口来进行信息的传递。
在Collectors采集资源使用状况信息和作业信息之后,可以将采集的资源使用状况信息和作业信息传输到Extractors中,以对采集的资源使用状况信息和作业信息进行进一步解析抽取,得到生产集群周期负载状况。
具体的,Collectors将采集的资源使用状况信息和作业信息传输到Extractors中之后,Extractors中的JMX解析器,即JMX Parser,以及Job logs解析器,即Job logsParser,可以进一步的对上述采集的信息进行解析,并从中抽取访问的分布情况Skyline,参见图6,如作业类型am.type,作业开始时间job.start.ms,作业结束时间job.end.ms,作业使用的队列job.queue.name,提交Job的用户以及其他Job使用容器Container等Hadoop生产集群中的作业指标分布特征,并改变上述抽取的Hadoop生产集群中的作业指标分布特征数据结构,以便其能通被模拟仿真模块获取,并用于生成模拟Hadoop生产集群实际运行的作业的仿真作业。
在本发明实施例中,Extractors在对采集的资源使用状况信息和作业信息进行进一步解析抽取,得到生产集群周期负载状况之后,还可以将对采集的资源使用状况信息和作业信息,以及解析得到生产集群周期负载状况传输到集群指标存储模块Skyline Store中进行存储。
集群指标存储模块SkylineStore,存储的方式也可以使用参数来进行配置,可以配置为基于内存存储,也可以配置为基于结构化数据的分布式存储系统Hbase进行存储,其中,Hbase作为存储,因其数据持久化、易扩展的效果优先选为集群指标存储模块的存储方式。
在本发明实施例中,还可以设置有专用于生成模拟Hadoop生产集群实际运行的作业的仿真作业的模块,即集群仿真模块Emulator Service。当需要对Hadoop生成集群进行调优测试时,可以通过编写的代码,从上述的集群指标存储模块SkylineStore中获取其存储的作业指标分布特征,并根据作业指标分布特征模拟生成Hadoop生产集群实际运行的作业的仿真作业。
在具体的实践过程中,由于调优测试的对象不同,Hadoop生产集群的作业会随调优对象的不同而不同,抽取获得的作业指标分布特征信息也因Hadoop生产集群的作业的不同而不相同,所以集群指标存储模块中的存储的作业指标分布特征信息也不同,而且,即使Hadoop生产集群的作业不发生变化,但由于Hadoop生产集群的作业会重复的运行,获取的作业指标分布特征信息在一定时间段内是相同的。
所以,当有优化Hadoop生产集群的需要时,用户可以向测试集群发送对Hadoop生产集群进行调优测试的指令,那么,测试集群在接收到该指令之后,集群仿真模块EmulatorService可以从集群指标存储模块SkylineStore中获取其存储的作业指标分布特征,进而根据获取的作业指标分布特征信息,生成仿真作业。
在本发明实施例中,因为用于生成仿真作业的作业指标分布特征,是从实际的Hadoop生产集群中抽取出来,并根据作业指标分布特征进行生成的,所以,在测试集群上仿真出的仿真作业与Hadoop生产集群实际运行的作业相似度极高。
步骤103:运行仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试。
在本发明实施例中,在测试集群中,还可以设置专用于测试上述生产的仿真作业的测试集群模块Test Cluster,Test Cluster中也包括RM资源管理服务,NN节点,模拟的NM计算节点,DN存储节点等主要服务构成。
集群仿真模块Emulator Service在模拟生成仿真作业之后,可以将生成的仿真作业传输方测试集群模块Test Cluster,以便测试集群模块Test Cluster运行仿真作业。
一种可选的方式,在本发明实施例中,上述步骤103可以按照图7所示的流程执行,图7所示的流程包括:
步骤401:确定测试集群服务处于开启状态。
步骤402:在测试集群中,生成仿真计算节点。
步骤403:调度用于运行仿真作业的资源,并基于资源,在仿真节点运行仿真作业。
在本发明实施例中,进行测试前,需要确定集群仿真模块Emulator Service中的测试集群服务即RM是否处于开启状态,若RM处于开启状态,RM会根据仿真作业中需要处理的数据的量,使用资源调度器Resource Sheduler处理和调度模拟产生的NM和AM(Applicationg Master,应用主节点)节点。
请结合图8参考,在测试集群模块Test Cluster中,还可以设置TaskRunner模块,用于负责将接收到的将要在测试集群运行的仿真作业即Job作业,使用延迟队列DelayQueue进行存储。那么,在模拟产生的NM启动(对应图8中所示的S21:StartNM)之后,模拟产生的NM与Task Runner模块循环交互,使得仿真作业有序入队Task enQueue(任务队列)(图8中所示的S22:Task#enQueue)。
其中,在本发明实施例中,由于实际生产集群的计算节点NodeManager比较多,测试集群的节点不可能与生产集群的节点数保持一致,为了充分模拟生产集群节点情况,在本发明实施例中,如图8所示,在模拟产生NM的NMSimulator模拟器中,使用延迟队列DelayQueue存储模拟产生的NodeManager节点即NM节点,使测试集群与生产集群节点数一致,同时资源调度器ResourceScheduler根据输入的仿真作业的分布特征有序调度模拟产生的NM节点,即在将仿真作业如图8中S23:Schedule,即调度到模拟产生的NM节点上。
在本发明实施例中,还需要启动测试集群的AM节点(对应图8中所示的S31:StartAM),配合YARN RM与NM节点进行容器Container的调度,即调度用于在NM节点上运行仿真作业的资源。
其中,与模拟产生的NodeManager一样,可设置AMSimulator模拟产生器,用于模拟产生需要的AM节点,AM节点中的响应队列Response Queue负责响应资源分配的请求与释放等操作。
具体的,如图8所示,模拟产生的AM节点向RM发出资源请求操作S41:AllocateRequest,(每一个Job作业即仿真作业,都会有对应的AM向RM发出资源请求),AM请求的资源以容器Container的形式返回,即图8中的S42:Container Response,AM进行Container的启动以及释放操作,同时与NodeManager交互即图8中S43:Container enQueue,以便协同对仿真作业的进行运行和监控,并监控Container资源使用情况,管理Container的整个生命周期。
在本发明实施例中,NM与RM交互时,还可以定期向RM发送心跳nodeHeartbeat,使得NM与RM保持同步,以便其接受RM的相关指令。
由于测试集群运行的仿真作业完全模拟生产集群状况,所以,通过模拟仿真作业在测试集群中运行,并根据其运行过程中的性能反馈,能够重现生产集群作业运行时的RPC、I/O等特征分布,用户可以通过在测试集群中进行Hadoop参数调优,然后重复调度作业,观察集群特征变化。
步骤104:根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
在本发明实施例中,用户可以根据仿真作业在测试集群中的运行状况,在测试集群中对影响作业运行速度或者稳定性的参数进行调优,得到是仿真作业运行速度和运行稳定性都达到最优效果的参数值,那么,在获得使测试集群运行状况最优的参数值后,可直接将其应用于Hadoop生成集群中,对Hadoop生成集群中的参数进行调优,不需要反复在实际的Hadoop集群上改变参数进行调优避免了多次参数调优对集群作业的影响,提高了Hadoop生产集群资源的利用率,使得实际的Hadoop生产集群运行得更快更稳定。
所以,在获得实际的生产集群中的资源使用状况信息和作业信息的基础上,根据获得的信息模拟生成仿真作业,并通过与实际的Hadoop生产集群节点相同的测试集群,运行生成的仿真作业,还原实际的Hadoop生产集群中作业运行状况,调节测试集群中的参数,以得到最优运行状况下的参数,并根据得到的参数直接对实际的Hadoop生产集群进行调优,避免了直接在Hadoop生成集群上进行调优时对Hadoop生成集群产生的不良影响,同时也减少了调优的成本和周期,提高实际的Hadoop生产集群资源的利用率,从而达到减少Hadoop生成集群作业运行时间,提高Hadoop生成集群稳定性的效果。
基于同一发明构思,本发明实施例还提供了一种Hadoop集群仿真测试的装置,该装置的Hadoop集群仿真测试方法的具体实施可参见上述系统实施例部分的描述,重复之处不再赘述,该装置包括:
获取单元,用于获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息;
仿真单元,用于根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业;
测试单元,用于运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试;
调优单元,根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
可选的,所述获取单元用于:
确定所述Hadoop生产集群信息采集接口处于开启状态;
通过所述接口,从所述Hadoop生产集群的作业日志信息中,获取所述资源使用状况信息和作业信息;或者
通过所述接口,向所述Hadoop生产集群发送获取所述资源使用状况信息和作业信息的请求,并基于所述Hadoop生产集群的反馈,获得所述资源使用状况信息和作业信息。
可选的,所述仿真单元用于:
解析所述资源使用状况信息和作业信息,获得所述Hadoop生产集群中的作业指标分布特征;
根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业。
可选的,在根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业之前,所述获取单元,还用于:
获得对所述Hadoop生产集群进行调优测试的指令。
可选的,所述测试单元用于:
确定测试集群服务处于开启状态;
生成仿真计算节点;
调度用于运行所述仿真作业的资源,并基于所述资源,在所述仿真计算节点运行所述仿真作业。
基于同一发明构思,本发明实施例还提供了另一种Hadoop集群仿真测试装置,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行如上文叙述的Hadoop集群仿真测试方法的步骤。
基于同一发明构思,本发明实施例还提供了一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上文叙述的Hadoop集群仿真测试方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种Hadoop集群仿真测试方法,其特征在于,包括:
获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息;
根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业;
运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试;
根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
2.如权利要求1所述的方法,其特征在于,所述获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息,具体包括:
确定所述Hadoop生产集群信息采集接口处于开启状态;
通过所述接口,从所述Hadoop生产集群的作业日志信息中,获取所述资源使用状况信息和作业信息;或者
通过所述接口,向所述Hadoop生产集群发送获取所述资源使用状况信息和作业信息的请求,并基于所述Hadoop生产集群的反馈,获得所述资源使用状况信息和作业信息。
3.如权利要求2所述的方法,其特征在于,所述根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业,具体包括:
解析所述资源使用状况信息和作业信息,获得所述Hadoop生产集群中的作业指标分布特征;
根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业。
4.如权利要求3所述的方法,其特征在于,所述在根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业之前,所述方法还包括:获得对所述Hadoop生产集群进行调优测试的指令。
5.如权利要求1-4任一项所述的方法,其特征在于,所述运行所述仿真作业,具体包括:
确定测试集群服务处于开启状态;
生成仿真计算节点;
调度用于运行所述仿真作业的资源,并基于所述资源,在所述仿真计算节点运行所述仿真作业。
6.一种Hadoop集群仿真测试装置,其特征在于,包括:
获取单元,用于获取Hadoop生产集群在实际运行中产生的资源使用状况信息和作业信息;
仿真单元,用于根据所述资源使用状况信息和作业信息,生成模拟Hadoop生产集群实际运行的作业的仿真作业;
测试单元,用于运行所述仿真作业,并根据运行过程中的性能反馈,对Hadoop参数进行调优测试;
调优单元,根据调优测试结果,对所述Hadoop生产集群中的Hadoop参数进行调优。
7.如权利要求6所述的装置,其特征在于,所述获取单元用于:
确定所述Hadoop生产集群信息采集接口处于开启状态;
通过所述接口,从所述Hadoop生产集群的作业日志信息中,获取所述资源使用状况信息和作业信息;或者
通过所述接口,向所述Hadoop生产集群发送获取所述资源使用状况信息和作业信息的请求,并基于所述Hadoop生产集群的反馈,获得所述资源使用状况信息和作业信息。
8.如权利要求7所述的装置,其特征在于,所述仿真单元用于:
解析所述资源使用状况信息和作业信息,获得所述Hadoop生产集群中的作业指标分布特征;
根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业。
9.如权利要求8所述的装置,其特征在于,在根据所述作业指标分布特征,生成模拟所述Hadoop集群实际运行的作业的仿真作业之前,所述获取单元,还用于:
获得对所述Hadoop生产集群进行调优测试的指令。
10.如权利要求6-8任一项所述的装置,其特征在于,所述测试单元用于:
确定测试集群服务处于开启状态;
生成仿真计算节点;
调度用于运行所述仿真作业的资源,并基于所述资源,在所述仿真计算节点运行所述仿真作业。
11.一种Hadoop集群仿真测试装置,其特征在于,包括至少一个处理器、以及至少一个存储器,其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~5任一项所述方法的步骤。
12.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-5任一项权利要求所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318559.3A CN111159004A (zh) | 2018-11-07 | 2018-11-07 | 一种Hadoop集群仿真测试方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318559.3A CN111159004A (zh) | 2018-11-07 | 2018-11-07 | 一种Hadoop集群仿真测试方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111159004A true CN111159004A (zh) | 2020-05-15 |
Family
ID=70555006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811318559.3A Pending CN111159004A (zh) | 2018-11-07 | 2018-11-07 | 一种Hadoop集群仿真测试方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159004A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022262167A1 (zh) * | 2021-06-15 | 2022-12-22 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064664A (zh) * | 2012-11-28 | 2013-04-24 | 华中科技大学 | 一种基于性能预估的Hadoop参数自动优化方法和系统 |
-
2018
- 2018-11-07 CN CN201811318559.3A patent/CN111159004A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064664A (zh) * | 2012-11-28 | 2013-04-24 | 华中科技大学 | 一种基于性能预估的Hadoop参数自动优化方法和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022262167A1 (zh) * | 2021-06-15 | 2022-12-22 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844198B (zh) | 一种分布式调度自动化测试平台及方法 | |
CN102880503B (zh) | 数据分析系统及数据分析方法 | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN105049268B (zh) | 分布式计算资源分配系统和任务处理方法 | |
CN106776280B (zh) | 可配置性能测试装置 | |
CN110162471A (zh) | 一种基于容器云的压力测试方法及系统 | |
CN105653425B (zh) | 基于复杂事件处理引擎的监控系统 | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
US20150188969A1 (en) | Upload operation using multiple connections | |
CN111506660B (zh) | 一种热网实时数据仓系统 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN103092698A (zh) | 云计算应用自动部署系统及方法 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN108737549A (zh) | 一种大数据量的日志分析方法及装置 | |
CN103645904A (zh) | 一种接口调用的缓存实现方法 | |
CN111045911A (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
CN111984505B (zh) | 一种运维数据采集装置及采集方法 | |
CN110769018A (zh) | 一种消息推送方法及装置 | |
CN113468111A (zh) | 一种容器云的日志监控管理系统及方法 | |
CN111949521B (zh) | 软件性能测试方法及装置 | |
CN111159004A (zh) | 一种Hadoop集群仿真测试方法、装置及存储介质 | |
CN115809119A (zh) | 容器编排引擎的监控方法、系统及装置 | |
CN116226067A (zh) | 日志管理方法、日志管理装置、处理器和日志平台 | |
CN112115118B (zh) | 数据库压测的优化方法及装置、存储介质、电子设备 | |
CN110807058B (zh) | 一种导出数据的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200515 |