CN104954453B - 基于云计算的数据挖掘rest服务平台 - Google Patents
基于云计算的数据挖掘rest服务平台 Download PDFInfo
- Publication number
- CN104954453B CN104954453B CN201510297442.1A CN201510297442A CN104954453B CN 104954453 B CN104954453 B CN 104954453B CN 201510297442 A CN201510297442 A CN 201510297442A CN 104954453 B CN104954453 B CN 104954453B
- Authority
- CN
- China
- Prior art keywords
- service
- algorithm
- log
- cloud
- data mining
- 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.)
- Active
Links
- 238000007418 data mining Methods 0.000 title claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000009412 basement excavation Methods 0.000 claims abstract description 12
- 238000007405 data analysis Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 29
- 238000005065 mining Methods 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010845 search algorithm Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 31
- 238000007726 management method Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 9
- XXUZFRDUEGQHOV-UHFFFAOYSA-J strontium ranelate Chemical compound [Sr+2].[Sr+2].[O-]C(=O)CN(CC([O-])=O)C=1SC(C([O-])=O)=C(CC([O-])=O)C=1C#N XXUZFRDUEGQHOV-UHFFFAOYSA-J 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 241000042700 Abdera Species 0.000 description 1
- 238000001787 Wald–Wolfowitz test Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于云计算的数据挖掘REST服务平台,包括:云计算集群层,用于提供云存储及并行计算能力;算法引擎层,用于提供并行数据挖掘能力,提供各种并行算法库;数据挖掘服务引擎层,用于对外提供挖掘云服务,所有服务以Restful接口对外暴露;云挖掘服务SDK,用于提供一种本地调用挖掘云服务的方式,通过在其他业务***中引入云挖掘服务SDK,在业务***中使用数据挖掘、数据分析功能。本发明有效适用于海量数据处理、产品收益较高。
Description
技术领域
本发明涉及数据挖掘技术领域,尤其是一种数据挖掘REST服务平台。
背景技术
随着互联网及移动互联网、物联网的飞速发展,人类社会的数据种类和规模正以前所未有的速度增长。据IDC的研究报告显示:2013年中国产生的数据总量超过0.8ZB(相当于8亿TB),2倍于2012年,相当于2009年全球的数据总量。预计2020年,中国的数据总量将是2013年的10倍,海量数据中如何提取有价值的信息将成为人们迫切要求解决的问题。数据挖掘是从大量不完全有噪声的实际数据中提取隐含在其中的具有潜在实用信息和知识的过程,它能有效发现大规模数据中有价值的信息。然而,传统的建立在关系型数据库、数据仓库上的数据挖掘技术在进行数据分析和统计计算时需要大量的存储资源和计算资源,在面对大规模异构、高维数据时很难完成高效的数据分析。
云计算是一种新兴的计算模式,它将计算任务分布在由大量计算节点组成的资源池上,使各种应用***能够根据需要获取计算能力、存储空间和信息服务。云计算的出现,使得数据挖掘技术和平台有了新的发展方向,结合云计算的虚拟化、高扩展、高可用性构建新一代的数据挖掘平台是一种趋势。
云计算是并行计算、分布式计算的发展,是解决海量数据挖掘任务,解决海量数据挖掘的有效手段,在理论和实践上都已得到证实和广泛应用。Google提出的MapReduce框架,是业界广泛认可的海量数据处理的并行计算模型,它对分布式操作如任务调度、节点通信等细节进行了封装,提供了更高层次的编程接口。Hadoop作为MapReduce的开源实现,在大数据挖掘领域得到广泛应用。迭代式计算框架Spark是一种分布式的内存计算平台,支持MapReduce计算范式,同时提供了DAG计算引擎有效弥补了Hadoop对循环数据流计算的不足。这些云计算框架的提出使用户不需要考虑计算的具体细节,而只要考虑任务间的逻辑关系。这样不仅可以提高研发的效率,还可以降低***维护的成本。
SaaS是Software-as-a-Service(软件即服务)的简称,是一种新的软件应用模式。它是一种通过Internet提供软件的模式,用户可以根据自己的实际需求通过互联网获取需要的服务。Rest作为Saas的一种实现,具有轻量、易懂、语义化等优点,软件***的服务化、Rest化易于企业内部多***间的集成与联通。将基于云的数据挖掘平台提供的算法能力采用服务的方式对外暴露,符合SaaS的设计理念,能对普通用户屏蔽云计算编程的复杂性,同时方便不同业务***的调用。
综上所述,传统的数据挖掘服务体系架构以无法应对海量数据的处理。
发明内容
为了克服已有数据挖掘服务方式的无法应对海量数据处理、产品收益较低的不足,本发明提供一种有效适用于海量数据处理、产品收益较高的基于云计算的数据挖掘REST服务平台。
本发明解决其技术问题所采用的技术方案是:
一种基于云计算的数据挖掘REST服务平台,包括:云计算集群层,用于提供云存储及并行计算能力;算法引擎层,用于提供并行数据挖掘能力,提供各种并行算法库;数据挖掘服务引擎层,用于对外提供挖掘云服务,所有服务以Restful接口对外暴露;云挖掘服务SDK,用于提供一种本地调用挖掘云服务的方式,通过在其他业务***中引入云挖掘服务SDK,在业务***中使用数据挖掘、数据分析功能;
所述云计算集群层中,采用分布式计算平台作为运行支撑,使用Hadoop并以HDFS作为其分布式存储***;
所述算法引擎层中,调用算法库来提供算法服务功能,算法库实现基于Hadoop、Spark平台的并行关联规则分析、分类、聚类算法;
所述数据挖掘服务引擎层中,提供的服务被封装成Restful接口;
所述云挖掘服务SDK中,封装基于云的数据挖掘服务平台的Rest服务API接口以供本地调用,在业务***中引入SDK的开发包,调用SDK服务时实例化相关的Service对象。
进一步,所述数据挖掘服务引擎层中,基于REST提供的服务接口包括并行挖掘算法服务,作业运行监控服务和日志管理服务,
并行挖掘算法服务:向外暴露并行挖掘算法接口,算法服务资源的URI为/algorithms/{algorithmID},algorithmID为对应算法的资源ID,在调用算法服务前,通过查询算法资源下的info子资源获取该算法的调用参数信息;
作业运行监控服务:向外暴露作业运行状态的查询接口,客户端根据作业名查询指定作业的执行情况;
日志管理服务:提供对集群作业的运行日志的管理,服务资源的URI为/logs/{logID},logID为作业日志的ID。
再进一步,所述并行挖掘算法服务中,同步模式下的服务请求处理,客户端的请求连接在在单线程的服务端得到处理;
调用异步模式的并行挖掘算法服务资源的URI为/algorithms/{algorithmID}/run,当调用算法服务时通过Post请求向算法服务资源传递参数,参数值被封装在基于哈希表实现的MapObject对象中,基于Jersey实现的服务端每接受到一个算法调用请求会创建一个新线程负责执行相应的算法调用处理,同时会创建一个异步的Response对象交给新创建的线程对象,当执行算法处理的线程运行完后会通过异步的Response对象向客户端返回处理结果,处理结果以JSON格式返回给客户端。
所述作业运行监控服务中,该服务资源的URI为/jobs/{jobName},jobName为要查询运行状态的作业名,通过该服务资源查询到的作业的运行状态为总体的运行情况,由于作业一般要有多个运行阶段(比如Hadoop作业分为Map、Shuffle、Reduce三个阶段),若想详细查询每个阶段的执行状态,可通过该服务资源下的status子资源获取,查询结果也以JSON返回给客户端。
所述日志管理服务中,允许根据作业名来查询作业的运行日志,也可进行日志删除操作,Hadoop中MapReduce作业的服务日志有两大类,一类是运行节点的日志,包括JobTracker日志和各个TaskTracker日志,这些日志文件每天生成一个,旧的日志后缀是日期,当天的日志文件后缀是“.log”,另一类是作业运行日志,包括jobhistory日志和task日志两部分,其中,jobhistory日志是作业运行日志,包括作业启动时间、结束时间,每个任务的启动时间、结束时间和各种counter信息,从这个日志中可以解析出作业运行的各种信息,每个task日志存放在task运行节点上,包含三个日志文件,分别是stdout、stderr和syslog;
通过该服务进行日志管理时,会直接从集群节点上的logs目录读取日志信息然后反序列化为JobHistory对象,JobHistory提供读写日志的方法,实现作业运行日志的查看和删除操作。
本发明的技术构思为:本发明结合当前主流的几种云计算技术设计实现了一个基于云计算的数据挖掘Rest服务平台,该平台架构基于云计算的基础能力,并符合云计算软件即服务(SaaS)的设计理念。同时平台能极大减少企业在数据挖掘技术上的投入并能加快其数据产品的推出,缩短研发周期,进一步提高产品收益。
本发明的有益效果主要表现在:(1)本发明基于Hadoop、Spark等云计算平台构建的数据挖掘服务平台,充分利用底层云计算可扩展特性,可适应海量数据分析,同时提供了Rest风格的简易调用接口,极大降低***间的耦合性。
(2)本发明利用云计算平台可实现数据的分布式存储与挖掘的并行化计算,同时采用REST服务的方式暴露数据挖掘算法能较好支持其它***的使用,平台分层的架构设计,能极大提高各层逻辑的复用,同时减少模块间的依赖。
(3)本发明利用云的特殊容错机制可以采用廉价的机器来搭建云环境,而云的自动化集中式管理使得企业无需负担高昂的数据中心管理成本。云的通用性使资源的利用率较之传统***大幅提升,企业可以充分享受云的低成本优势。
(4)本发明基于云平台的的多副本容错、多计算节点同构可互换等措施,可提供高可靠高保障的云服务。
附图说明
图1是基于云计算的数据挖掘Rest服务平台架构图。
图2是算法引擎功能模块图。
图3是基于MapReduce的并行AP聚类方法的基本流程图。
图4是REST的三角架构图。
图5是查询作业状态过程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图5,一种基于云计算的数据挖掘REST服务平台,基于Hadoop、Spark等云计算平台的扩展性,本发明设计的数据挖掘服务平台能较好的适应海量数据的分析。同时提供了Rest风格的简易调用接口,极大降低***间的耦合性。基于云计算的数据挖掘REST服务平台在架构上总共分为四层(如图1):云计算集群主要提供云存储及并行计算能力;算法引擎层提供并行数据挖掘能力,提供各种并行算法库等;数据挖掘服务引擎层对外提供挖掘云服务,所有服务以Restful接口对外暴露;云挖掘服务SDK提供一种本地调用挖掘云服务的方式,通过在其他业务***中引入云挖掘服务SDK,可以在业务***中使用数据挖掘、数据分析等功能。
云计算集群层:提供分布式存储、数据库存储及并行计算能力,作为算法引擎层的支撑平台。此层采用Hadoop、Spark等分布式计算平台作为运行支撑,Hadoop以HDFS作为其分布式存储***,HDFS是根据Google提出的GFS分布式文件***研发,已在商业和学术领域得到广泛的应用,能有效解决海量数据存储问题,同时兼备高容错、高扩展及高性能等优点。在并行计算方面Hadoop、Spark都支持MapReduce计算框架,MapReduce框架对分布式计算的一些底层细节进行了封装,例如任务并行、数据分布、负载平衡、任务调度、任务容错等,使用者无需考虑这些细节,只要关注算法的并行实现即可。Spark在提供类似MapReduce框架外,还提供DAG的计算引擎,支持迭代式计算作业,能更好的适应需要通过迭代收敛的算法运行。
算法引擎层:为数据挖掘服务引擎层提供算法实现,主要通过调用算法库来提供算法服务功能,算法库主要实现了基于Hadoop、Spark平台的并行关联规则分析、分类、聚类算法,调用这些算法时算法引擎层会创建一个JobClient向云计算集群提交计算作业。
该层整体功能模块如图2,除提供基础的并行数据挖掘能力外,还包含算法的服务管理,并行算法的框架模型。算法的服务管理完成算法的添加删除及运行环境隔离等功能,并行算法框架提供生成一个并行算法作业的通用模型。该层在设计上采用分布式、可插拔的组件化设计思路,除了可使用平台自带的算法,同时支持第三方的挖掘算法工具如Mahout、MLLib接入。
挖掘算法的并行化技术严重影响着整个服务平台的性能,本平台主要以MapReduce框架作为算法的基础并行模型,而MapReduce的核心思想是分而治之,下面结合AP聚类算法(公知的Affinity Propagation聚类算法)的MapReduce并行化为例来说明本平台主要使用的并行化技术。
AP聚类的基本思想是通过数据点之间传递消息,自动发现聚类中心,并实现数据点的自动聚类,相比于传统K-Means聚类方法有一个明显的优点是,它并不在初始化阶段指定类的数目及初始的聚类中心。本平台实现的基于MapReduce框架并行AP聚类算法的计算流程如图3。
并行AP聚类算法主要包含以下步骤:相似度矩阵计算的MapReduce并行化、吸引度矩阵计算的MapReduce并行化、归属度矩阵计算的MapReduce并行化,聚类中心计算的MapReduce并行化。各计算步骤之间仍串行执行,每步在计算时先由MapReduce框架对数据集进行切分,在切分的后的数据分片上分别计算从而实现并行。
数据挖掘服务引擎层将基于云的数据挖掘算法以服务的形式进行暴露,服务引擎层提供的服务被封装成Restful接口。其他业务***可以根据数据分析的需求调用及组装不同的挖掘云服务。
REST
REST(Representational State Transfer),State Transfer为"状态传输"或"状态转移",Representational为"表征"、"具象",合起来就是"表征状态传输"或"具象状态传输"或"表述性状态转移"。
REST一词出于《Architectural Styles and the Design of Network-basedSoftware Architectures》论文,从标题来看,它是一种架构样式(Architectural Styles)与软件架构(Software Architectures),而且是以网络(Network-based)为基础,重点就是:架构样式(Architectural Styles)、软件架构(Software Architectures)和网络(Network-based)为基础。
REST本身是设计风格而不是标准。REST的三个要素一般是指唯一的资源标识,对资源的操作方法(此处方法是抽象的概念)以及资源的表示形式,如图4。
REST描述如何正确地使用Web标准,例如,HTTP和URI。了解REST最好的方式就是思索Web及其工作方式。应用程序当符合REST原则(REST principles)时可称为"Restful webservice",也称为"Restful Web API"。"-ful"字尾强调其设计完全符合REST论文中建议的内容。
资源的标识及表示形式
REST以资源为中心,在REST中资源(Resource)代表整个网络上的资源实体。网络提供了各式各样的资源,而这些资源由URI(统一资源标识符,Uniform ResourceIdentifier)来标识。
资源的请求方通过URI来获取资源的具体象征(Representational)。Client取得这些具体象征使应用程序转变其状态(以浏览器而言,取得HTML、CSS、JavaScript…来生成界面),随着不断取得资源的具体象征,Client端不断地改变其状态,这样不断的反复(iterations)过程就是所说的Representational State Transfer。
资源的操作方法
REST中对资源的操作通过标准的Http方法。对资源的查询行为在HTTP规范中称之为GET,也就是通过URL来GET想要的资源。另一常用的资源操作是填写表单,例如,填写表单进行***登录动作,就必须先发送账号与密码给某一资源,此资源会验证所传送的数据是否正确,再进行后续动作。发送信息给资源的行为在HTTP规范中称为POST。在HTTP/1.1RFC2616第5.1.1Method一节定义了八大类HTTP方法,除了常用的GET与POST之外,在REST中常用的还有PUT与DELETE。POST,GET,PUT,DELETE正好对应对资源的CRUD(Create,Read,Update,Delete)四种数据操作。
基于REST,本平台提供的服务接口如下表1,服务接口总共分为3大类:并行挖掘算法服务,作业运行监控服务,日志管理服务,每种服务,提供GET、POST等几种操作方法,其中GET操作对应查询操作,直接向服务层发送HTTP请求。POST操作需要传递参数及返回服务的结果,平台使用JSON做为客户端与服务层交换的数据格式。同时使用Jersey作为RestfulWeb服务的实现框架。表1为平台Web服务接口。
表1
Jersey是Oracle推出的Rest框架,相比于Restlet和RestEasy等其他Rest框架,更加直观,同时符合JAX-RS(JSR 311)标准。Jersey主要包含下面三个部分:
1.核心服务器(Core Server):此部分提供JAX-RS中标准化的注释和API标准化,可以直观的开发标准的RESTful Web服务。
2.核心客户端(Core Client):Jersey客户端提供了与REST服务通信的核心API。
3.集成(Integration):Jersey同时提供了与Spring、Guice、Apache Abdera等框架集成的库。
并行挖掘算法服务:向外暴露并行挖掘算法接口,算法服务资源的URI为/algorithms/{algorithmID},algorithmID为对应算法的资源ID,***现支持的并行算法如下表2。在调用算法服务前,可通过查询(即发送HTTP的GET请求)算法资源下的info子资源获取该算法的调用参数信息。表2为平台支持的算法列表。
algorithmID | 描述 |
PFrequentPattern | 并行频繁模式挖掘算法 |
PNaiveBayes | 并行朴素贝叶斯算法 |
PRandomForest | 并行随机森林分类算法 |
PCanopy | 并行Canopy聚类算法 |
PKMeans | 并行KMeans聚类算法 |
PAPCluster | 并行AP聚类算法 |
表2
由于某些并行挖掘算法的运行时间相对较长,***同时提供异步模式的挖掘算法服务。同步模式下的服务请求处理,客户端的请求连接在在单线程的服务端得到处理。一旦服务端的服务线程处理完请求,服务端能够确保客户端的请求已被处理完毕并且客户端的连接资源得到安全释放。这种处理模型对于那些执行时间相对较短的服务是合适的。
然而,如果服务的的执行时间较长,异步模式更加合适。在这种模式下,服务线程和客户端连接的联系被切断。处理请求的服务线程将不在保证服务线程返回时客户端的连接能被正常关闭。一般情况下,服务线程返回时客户端的连接会被挂起。异步模式并不会减少客户端请求的处理时间,但它会增加服务端的吞吐量,提升网络资源的利用率。原有的服务线程在接收到客户端的请求后会将该请求放在一个请求队列中然后交给一些专门的线程来处理,这时原有的服务线程就能不断接受新的客户端请求。
调用异步模式的并行挖掘算法服务资源的URI为/algorithms/{algorithmID}/run,当调用算法服务时通过Post请求向算法服务资源传递参数,参数值被封装在基于哈希表实现的MapObject对象中。基于Jersey实现的服务端每接受到一个算法调用请求会创建一个新线程负责执行相应的算法调用处理,同时会创建一个异步的Response对象交给新创建的线程对象,当执行算法处理的线程运行完后会通过异步的Response对象向客户端返回处理结果,处理结果以JSON格式返回给客户端。
作业运行监控服务:主要向外暴露作业运行状态的查询接口,客户端可以根据作业名查询指定作业的执行情况。该服务资源的URI为/jobs/{jobName},jobName为要查询运行状态的作业名。通过该服务资源查询到的作业的运行状态为总体的运行情况,由于作业一般要有多个运行阶段(比如Hadoop作业分为Map、Shuffle、Reduce三个阶段),若想详细查询每个阶段的执行状态,可通过该服务资源下的status子资源获取。查询结果也以JSON返回给客户端。
查询作业运行状态的时序图如图5,查询作业的运行状态时会先创建一个与集群通信的JobClient,JobClient通过RPC协议与集群的Master节点进行通信获取所有作业的JobStatus对象,在结合作业名可以找到要查询作业的JobId,最后通过JobId可获取要查询作业的RunningJob对象(对于提交作业的客户端来讲,提交的作业都被抽象成了一个RunningJob对象)。基于RunningJob对象,可获取作业的详细运行情况。
日志管理服务:主要提供对集群作业的运行日志的管理,服务资源的URI为/logs/{logID},logID为作业日志的ID。该服务允许根据作业名来查询作业的运行日志,同时可以进行日志删除等操作。Hadoop中MapReduce作业的服务日志有两大类,一类是运行节点的日志,包括JobTracker日志和各个TaskTracker日志,这些日志文件每天生成一个,旧的日志后缀是日期,当天的日志文件后缀是“.log”。另一类是作业运行日志,包括jobhistory日志和task日志两部分,其中,jobhistory日志是作业运行日志,包括作业启动时间、结束时间,每个任务的启动时间、结束时间,各种counter信息等,从这个日志中可以解析出作业运行的各种信息,每个task日志存放在task运行节点上,包含三个日志文件,分别是stdout、stderr和syslog。
通过该服务进行日志管理时,会直接从集群节点上的logs目录读取日志信息然后反序列化为JobHistory对象(JobHistory为管理作业的接口对象)。JobHistory提供了读写日志的方法,可实现作业运行日志的查看和删除等操作。
云挖掘服务SDK封装了基于云的数据挖掘服务平台的Rest服务API接口以供本地调用。在业务***中引入SDK的开发包,可方便实现数据分析、个性化推荐等相关应用。调用SDK服务时实例化相关的Service对象,调用相应方法即可。
云挖掘服务SDK包含的Service类及主要功能方法如下:
表3为xxxService类(xxx为算法名)
表4为JobMonitorService类
表4
表5为LogService类
表5
使用云服务SDK时会创建Client与服务平台进行信息的交互,Client默认交由ClientFactory负责管理,为了提高性能,同一个URL请求的Client在创建后会被缓存。在调用云挖掘服务平台的并行算法服务时,需要先将算法所需的参数封装在Map中然后传递给服务类的相关方法。
实例:平台Rest服务接口测试
服务平台测试主要包含两部分,一是对平台的Rest服务接口进行测试,二是对云挖掘服务SDK进行测试。Rest服务接口测试通过SoapUI完成,通过在SoapUI上模拟Http请求,可以查看平台各服务接口返回值及执行时间。云服务SDK测试使用JUnit框架,通过Assert断言判断SDK的API是否返回预期值。测试采用的集群环境与软件版本如下表6:
名称 | 配置及版本 |
Hadoop、Spark集群 | 1台master,8台worker |
服务器 | Tomcat 7.0.57 |
Rest框架 | Jersey 2.15 |
Rest服务测试框架 | SoapUI 4.5.2 |
SDK测试框架 | Junit 4.1 |
表6
SoapUI是进行Web服务测试的主流开源工具,它使开发人员能直观的测试基于SOAP或Rest的Web服务,SoapUI出现之前,由于Web服务是程序调用的,一般不会提供界面让最终用户或测试人员直接使用,不得不自己编写程序来测试它。SoapUI的出现极大改变了这一局面,SoapUI支持多样的测试,例如功能测试,性能测试,回归测试等。SoapUI在测试时使用Http Request对服务资源发出请求,然后对资源返回的Response进行相应的处理。
SoapUI把REST服务、资源及其操作组织为一个层次结构。这种层次结构主要包含以下五部分::
1、项目定义:位于最上层,项目可以包含多个服务的定义。
2、REST服务定义:服务其实是对多个REST资源的一个分组。
3、REST资源定义:具体描述该资源的名称,URI,参数等属性。
4、REST方法定义:针对每个资源的方法(GET,POST,PUT,DELETE等)。
5、REST操作请求定义:基于每个方法,可以多个请求操作,这些请求操作才是被SoapUI所调用执行的。每个请求可以设置很多的参数,例如Accept类型,请求的Header信息,运行该请求以后,就能以各种方式查看运行结果。
在测试平台的各Rest服务接口时,首先右击要测试接口的URI路径,比如选择/HDAPCluster/info资源下的getAlgorithmInfo方法,弹出创建Request的窗口,输入测试Request的名称。在Accept选项中选择返回值类型application/json,在Request栏中设置相应的参数。点击执行按钮,得到Rest服务返回值。返回结果显示在窗口的右侧,在此可查看服务接口的返回值。
以在SoapUI中分别测试基于Hadoop和Spark的并行AP聚类的Rest接口为例,选择公开的KDD99数据样本集,两种平台下的Rest接口的服务时间如下表7:
数据量 | HDAPCluster.run接口(min) | SPAPCluster.run接口(min) |
5000 | 46.7 | 18.5 |
10000 | 108.8 | 40.2 |
20000 | 170.4 | 72.1 |
40000 | 242.7 | 100.5 |
表7
通过以上测试结果可知,基于Spark的Rest服务接口性能更好,但在测试时Hadoop的Rest接口更加稳定。Spark中的多线程模型在运行时要使用更多的内存,所以容易出现内存溢出问题。最后总体来看,迭代次数越多,数据量越大,Spark平台的加速效果远远好于Hadoop平台。
云挖掘服务SDK测试:云挖掘服务SDK使用JUnit进行测试,基于JUnit提供的TestSuite测试套件可以对多个SDK服务测试。在JUnit框架中,一个TestSuite对应一个复合测试脚本,它运行测试用例集合。TestSuite测试套件把一个测试集合内的全部Case放在一起测试,而不用单个用例分别来运行。
在进行测试时,定义一个TestAll的测试套件,使用注解Suite.SuiteClasses({**ServiceTest,JobMonitorServiceTest,LogServiceTest})定义测试程序的集合。
以测试云聚类服务的SDK接口为例,以10000条KDD99样本做为输入,首先指定云聚类SDK接口的输入参数,这里对并行AP聚类的一些运行参数进行设置如迭代的最大次数、阻尼系数等。执行TestAll测试套件,在Console控制台可以看到聚类分析的结果。
由于本发明实现的并行云聚类服务是一种异步服务,服务端定义了服务的超时时间(默认为2小时),若超过此时间服务端仍没有运行完算法,会向客户端返回一个超时的异常,此时在Console控制台会看到超时的结果。
通过对云挖掘服务SDK的测试,该SDK提供了完善的并行挖掘算法服务接口,用户指定输入数据集后,云挖掘服务SDK通过RPC调用云挖掘服务平台实现的并行算法进行分析,最后可在控制台看到并行算法执行后的结果。
Claims (1)
1.一种基于云计算的数据挖掘REST服务平台,其特征在于:所述数据挖掘REST服务平台包括:云计算集群层,用于提供云存储及并行计算能力;算法引擎层,用于提供并行数据挖掘能力,提供各种并行算法库;数据挖掘服务引擎层,用于对外提供挖掘云服务,所有服务以Restful接口对外暴露;云挖掘服务SDK,用于提供一种本地调用挖掘云服务的方式,通过在其他业务***中引入云挖掘服务SDK,在业务***中使用数据挖掘、数据分析功能;
所述云计算集群层中,采用分布式计算平台作为运行支撑,Hadoop以HDFS作为其分布式存储***;
所述算法引擎层中,调用算法库来提供算法服务功能,算法库实现基于Hadoop、Spark平台的并行关联规则分析、分类、聚类算法;
所述数据挖掘服务引擎层中,提供的服务被封装成Restful接口;
所述云挖掘服务SDK中,封装基于云的数据挖掘服务平台的REST服务API接口以供本地调用,在业务***中引入SDK的开发包,调用SDK服务时实例化相关的Service对象;
所述数据挖掘服务引擎层中,基于REST提供的服务接口包括并行挖掘算法服务,作业运行监控服务和日志管理服务,
并行挖掘算法服务:向外暴露并行挖掘算法接口,算法服务资源的URI为/algorithms/{algorithmID},algorithmID为对应算法的资源ID,在调用算法服务前,通过查询算法资源下的info子资源获取该算法的调用参数信息;
作业运行监控服务:向外暴露作业运行状态的查询接口,客户端根据作业名查询指定作业的执行情况;
日志管理服务:提供对集群作业的运行日志的管理,服务资源的URI为/logs/{logID},logID为作业日志的ID;
所述并行挖掘算法服务中,同步模式下的服务请求处理,客户端的请求连接在单线程的服务端得到处理;
调用异步模式的并行挖掘算法服务资源的URI为/algorithms/{algorithmID}/run,当调用算法服务时通过Post请求向算法服务资源传递参数,参数值被封装在基于哈希表实现的MapObject对象中,基于Jersey实现的服务端每接受到一个算法调用请求会创建一个新线程负责执行相应的算法调用处理,同时会创建一个异步的Response对象交给新创建的线程对象,当执行算法处理的线程运行完后会通过异步的Response对象向客户端返回处理结果,处理结果以JSON格式返回给客户端;
所述作业运行监控服务中,该服务资源的URI为/jobs/{jobName},jobName为要查询运行状态的作业名,通过该服务资源查询到的作业的运行状态为总体的运行情况,由于作业有多个运行阶段,若想详细查询每个阶段的执行状态,可通过该服务资源下的status子资源获取,查询结果也以JSON返回给客户端;
所述日志管理服务中,允许根据作业名来查询作业的运行日志,同时进行日志删除操作,Hadoop中MapReduce作业的服务日志有两大类,一类是运行节点的日志,包括JobTracker日志和各个TaskTracker日志,这些日志文件每天生成一个,旧的日志后缀是日期,当天的日志文件后缀是“.log”,另一类是作业运行日志,包括jobhistory日志和task日志两部分,其中,jobhistory日志是作业运行日志,包括作业启动时间、结束时间,每个任务的启动时间、结束时间和各种counter信息,从这个日志中可以解析出作业运行的各种信息,每个task日志存放在task运行节点上,包含三个日志文件,分别是stdout、stderr和syslog;
通过该服务进行日志管理时,会直接从集群节点上的logs目录读取日志信息然后反序列化为JobHistory对象,JobHistory提供读写日志的方法,实现作业运行日志的查看和删除操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510297442.1A CN104954453B (zh) | 2015-06-02 | 2015-06-02 | 基于云计算的数据挖掘rest服务平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510297442.1A CN104954453B (zh) | 2015-06-02 | 2015-06-02 | 基于云计算的数据挖掘rest服务平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104954453A CN104954453A (zh) | 2015-09-30 |
CN104954453B true CN104954453B (zh) | 2019-01-22 |
Family
ID=54168796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510297442.1A Active CN104954453B (zh) | 2015-06-02 | 2015-06-02 | 基于云计算的数据挖掘rest服务平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104954453B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105469204A (zh) * | 2015-11-20 | 2016-04-06 | 天津贝德曼科技有限公司 | 深度融合大数据分析技术的重装制造企业综合评价*** |
CN105491039B (zh) * | 2015-11-27 | 2018-12-21 | 国网信息通信产业集团有限公司 | 一种分布式软件共享*** |
CN105608160A (zh) * | 2015-12-21 | 2016-05-25 | 浪潮软件股份有限公司 | 一种分布式大数据分析方法 |
CN106778259B (zh) * | 2016-12-28 | 2020-01-10 | 北京明朝万达科技股份有限公司 | 一种基于大数据机器学习的异常行为发现方法及*** |
CN107609141B (zh) * | 2017-09-20 | 2020-07-31 | 国网上海市电力公司 | 一种对大规模可再生能源数据进行快速概率建模方法 |
CN108334532B (zh) * | 2017-09-27 | 2021-08-03 | 华南师范大学 | 一种基于Spark的Eclat并行化方法、***及装置 |
CN107862038B (zh) * | 2017-11-04 | 2022-01-21 | 公安部第三研究所 | 一种解耦web客户端与大数据挖掘分析的数据挖掘平台及实现方法 |
CN109901983B (zh) * | 2017-12-07 | 2022-09-06 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108228154A (zh) * | 2017-12-25 | 2018-06-29 | 上海中畅数据技术有限公司 | 一种基于算法的通用监控框架设计*** |
CN110035103A (zh) * | 2018-01-12 | 2019-07-19 | 宁波中科集成电路设计中心有限公司 | 一种节点间数据可传递的分布式调度*** |
CN110120251A (zh) * | 2018-02-07 | 2019-08-13 | 北京第一视角科技有限公司 | 基于Spark的多维健康数据的统计分析方法及*** |
CN108762957B (zh) * | 2018-06-01 | 2021-07-30 | 郑州云海信息技术有限公司 | 一种云平台演示***的生成方法和装置 |
CN108984717A (zh) * | 2018-07-10 | 2018-12-11 | 四川汇源吉迅数码科技有限公司 | 一种基于云计算技术的数字内容统一引入与管理方法及*** |
CN109325756A (zh) * | 2018-08-03 | 2019-02-12 | 上海小渔数据科技有限公司 | 用于数据算法交易的数据处理方法及装置、服务器 |
CN109376088B (zh) * | 2018-10-24 | 2022-07-08 | 网宿科技股份有限公司 | 一种自动化测试***及自动化测试方法 |
CN109617990B (zh) * | 2018-12-29 | 2021-12-07 | 长威信息科技发展股份有限公司 | 一种融合通信资源云共享方法及*** |
CN109933620A (zh) * | 2019-03-18 | 2019-06-25 | 上海大学 | 基于Spark的火电大数据挖掘方法 |
CN111092947B (zh) * | 2019-12-19 | 2022-05-10 | 北京金山云网络技术有限公司 | 数据传输的方法、客户端、中间服务器、节点及电子设备 |
CN111552577B (zh) * | 2020-03-24 | 2023-11-03 | 福建天泉教育科技有限公司 | 防止出现无效请求的方法、存储介质 |
CN112131017B (zh) * | 2020-09-15 | 2024-06-14 | 北京值得买科技股份有限公司 | 一种日历服务的接口设计方法 |
CN112130976A (zh) * | 2020-09-21 | 2020-12-25 | 厦门南讯股份有限公司 | 一种基于rest的多引擎大数据任务管理方法 |
CN112328681A (zh) * | 2020-11-03 | 2021-02-05 | 北京思特奇信息技术股份有限公司 | 一种基于js的云存储平台、方法、存储介质和设备 |
CN112667702A (zh) * | 2020-12-03 | 2021-04-16 | 成都大数据产业技术研究院有限公司 | 基于大数据的数据挖掘*** |
CN113254013B (zh) * | 2021-07-16 | 2021-09-24 | 电子科技大学 | 一种面向复杂业务流程的可复用组件挖掘方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929605A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种基于云计算的数据挖掘***开放接口 |
CN102970164A (zh) * | 2012-11-20 | 2013-03-13 | 无锡成电科大科技发展有限公司 | 一种云平台管理监控***及方法 |
-
2015
- 2015-06-02 CN CN201510297442.1A patent/CN104954453B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929605A (zh) * | 2012-10-09 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种基于云计算的数据挖掘***开放接口 |
CN102970164A (zh) * | 2012-11-20 | 2013-03-13 | 无锡成电科大科技发展有限公司 | 一种云平台管理监控***及方法 |
Non-Patent Citations (2)
Title |
---|
云计算支持下的数据挖掘算法及其应用;曹聪;《中国优秀硕士学位论文全文数据库信息科技辑》;20130215;全文 |
基于云平台的数据挖掘算法的研究与实现;颜巍;《中国优秀硕士学位论文全文数据库信息科技辑》;20140115;摘要、第1-5,61-74页 |
Also Published As
Publication number | Publication date |
---|---|
CN104954453A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104954453B (zh) | 基于云计算的数据挖掘rest服务平台 | |
CN110989983B (zh) | 一种零编码的应用软件快速构建*** | |
Ren et al. | Migrating web applications from monolithic structure to microservices architecture | |
US20210311858A1 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
CN104331477B (zh) | 基于联邦式检索的云平台并发性能测试方法 | |
CN108737168B (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
CN101946261A (zh) | 基于计算机的业务过程的自动化模型产生 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
Varghese et al. | Container-based cloud virtual machine benchmarking | |
CN101630271A (zh) | 一种网格环境下的地震模拟计算支撑中间件*** | |
Aksakalli et al. | Systematic approach for generation of feasible deployment alternatives for microservices | |
Wang et al. | A model-based framework for cloud API testing | |
CN112600936B (zh) | 一种云计算***服务的量化和评估方法 | |
Brim et al. | MRNet: A scalable infrastructure for the development of parallel tools and applications | |
Anjos et al. | BIGhybrid: a simulator for MapReduce applications in hybrid distributed infrastructures validated with the Grid5000 experimental platform | |
Wen et al. | Characterizing and synthesizing the workflow structure of microservices in ByteDance Cloud | |
Pinandito et al. | Framework design for modular web-based application using model-collectionservice-controller-presenter (mccp) pattern | |
JP2015531899A (ja) | ソーシャルネットワークインターフェイスを使用した汎用シミュレーションシステム | |
CN105808354A (zh) | 利用WLAN网络组建临时Hadoop环境的方法 | |
Garbi et al. | μP: A Development Framework for Predicting Performance of Microservices by Design | |
CN115796806A (zh) | 一种基于微服务的***构建方法 | |
Tsai et al. | Pewss: A platform of extensible workflow simulation service for workflow scheduling research | |
WO2021036987A1 (zh) | 一种实现运维监控的方法及装置 | |
Svorobej et al. | Towards automated data-driven model creation for cloud computing simulation | |
CN111309297A (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 |