CN104503844B - 一种基于多阶段特征的MapReduce作业细粒度分类方法 - Google Patents
一种基于多阶段特征的MapReduce作业细粒度分类方法 Download PDFInfo
- Publication number
- CN104503844B CN104503844B CN201410836410.XA CN201410836410A CN104503844B CN 104503844 B CN104503844 B CN 104503844B CN 201410836410 A CN201410836410 A CN 201410836410A CN 104503844 B CN104503844 B CN 104503844B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- mapreduce
- stage
- feature
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的基于多阶段特征的MapReduce作业细粒度分类方法,通过单独对每个阶段的特征进行分类,可以得到每个作业在不同阶段的相似性作业,这些相似性的作业在该阶段可以进行相似性地优化,进而可以实施MapReduce阶段级地快速优化,使得优化的目的更明确,提高了优化的效率,同时也有利于利用分类的结果进行MapReduce工作流的细粒度瓶颈分析,找出制约程序运行性能地瓶颈可以更有针对性地改善程序的设计,提高程序本身的性能。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于多阶段特征的MapReduce作业细粒度分类方法。
背景技术
MapReduce是分布式数据处理编程模型。MapReduce处理数据过程主要分成2个阶段:Map阶段和Reduce阶段。先执行Map阶段,再执行Reduce阶段。Map阶段可以进一步划分为read,map,collect,spill和merge五个子阶段,Reduce阶段也可以进一步划分为shuffle,sort,reduce和write四个子阶段。
MapReduce的运行时的性能特征数据可以通过分布式监控***Ganglia获取。Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控***性能,如:cpu、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配***资源,提高***整体性能起到重要作用。每台计算机都运行一个收集和发送度量数据的名为gmond的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得Ganglia可以实现良好的扩展。gmond带来的***负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的“抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。针对MapReduce作业的分类问题,目前主要是针对MapReduce运行时整体的性能数据进行分析,并没有细化地考虑每个阶段的性能特征,然而在实践中,作业运行时不同阶段的性能表现却是不一样的,这样不同的作业类型会有不同阶段的性能瓶颈,需要根据不同的阶段地性能瓶颈有针对性地采取不同的方法进行分析和调优。所以,需要研究和制定一套细粒度地MapReduce作业分类方法实现作业地精确分类。
发明内容
有鉴如此,有必要提供一种能够对MapReduce作业的细粒度分类方法。
为实现上述目的,本发明采用下述技术方案:
一种基于多阶段特征的MapReduce作业细粒度分类方法,包括下述步骤:
步骤S110:收集Hadoop集群中每个节点的性能数据,所述性能数据包括CPU使用率,内存使用率和I/O使用率,
所述CPU使用率的集合为Cjm={C1jm,C2jm,...Cnjm};
所述内存使用率的集合为Mjm={M1jm,M2jm,...Mnjm};
所述I/O使用率的集合为Ijm={I1jm,I2jm,...Injm};
其中,m为所述Hadoop集群待分类的作业数量,m个作业的集合记为Job={J1,j2…jm},n为Hadoop集群的节点数量;
步骤S120:统计每个作业的性能数据的均值的集合,分别记为:
CMeanjm=(C1jm+C2jm+...+Cnjm)/n;
MMeanjm=(M1jm+M2jm+...+Mnjm)/n;
IMeanjm=(I1jm+I2jm+...+Injm)/n;
步骤S130:将每个作业的性能数据的均值分为9阶段,分别记为:
CMeanjm={CM1jm,CM2jm,...CM9jm};
MMeanjm={MM1jm,MM2jm,MM9jm};
IMeanjm={IM1jm,IM2jm,IM9jm};
步骤S140:利用层次聚类分别对每一阶段进行层次聚类。
优选地,步骤S140中,利用层次聚类分别对MapReduce运行过程中每个阶段进行层次聚类,包括下述步骤:
步骤S141:将m类作业数量中的每一类用特征向量Fijm进行描述,其中,Fijm={CMijm,MMijm,IMijm};
步骤S142:找到最接近的两个类并合并成一类;
步骤S143:重新计算新的类与所有旧类之间的欧几里得距离;
步骤S144:重复步骤S142步和步骤S143,直到最后合并成一类为止。
优选地,步骤S142中,找到最接近的两个类并合并成一类具体为:针对第i个阶段的m个特征向量,计算m个特征向量两两之间的欧几里得距离,得到m×(m-1)个组合的距离,找到距离最小的组合,将这个组合中的两个类合并成为一个新的类。
优选地,所述欧几里得距离的计算方法为:
其中,第i阶段有两个作业的特征向量为:
Fijo={CMijo,MMijo,IMijo},Fijp={CMijp,MMijp,IMijp}。
本发明提供的基于多阶段特征的MapReduce作业细粒度分类方法,通过单独对每个阶段的特征进行分类,可以得到每个作业在不同阶段的相似性作业,这些相似性的作业在该阶段可以进行相似性地优化,进而可以实施MapReduce阶段级地快速优化,使得优化的目的更明确,提高了优化的效率,同时也有利于利用分类的结果进行MapReduce工作流的细粒度瓶颈分析,找出制约程序运行性能地瓶颈可以更有针对性地改善程序的设计,提高程序本身的性能。
附图说明
图1是本发明提供的抽样的基于多阶段特征的MapReduce作业细粒度分类方法的步骤流程图。
图2是利用层次聚类分别对每一阶段进行层次聚类的步骤流程图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,为本发明提供的基于多阶段特征的MapReduce作业细粒度分类方法的步骤流程图,包括下述步骤:
步骤S110:收集Hadoop集群中每个节点的性能数据,所述性能数据包括CPU使用率,内存使用率和I/O使用率,
所述CPU使用率的集合为Cjm={C1jm,C2jm,...Cnjm};
所述内存使用率的集合为Mjm={M1jm,M2jm,...Mnjm};
所述I/O使用率的集合为Ijm={I1jm,I2jm,...Injm};
其中,m为所述Hadoop集群待分类的作业数量,m个作业的集合记为Job={J1,j2…jm},n为Hadoop集群的节点数量;
在本实施例中,在安装有Ganglia的n个节点的Hadoop集群中运行需要进行分类的m个作业的集合Job={J1,j2...jm},从Ganglia的数据库模块中收集每个作业在n个节点运行时的性能数据。
步骤S120:统计每个作业的性能数据的均值的集合,分别记为:
CMeanjm=(C1jm+C2jm+...+Cnjm)/n;
MMeanjm=(M1jm+M2jm+...+Mnjm)/n;
IMeanjm=(I1jm+I2jm+...+Injm)/n;
步骤S130:将每个作业的性能数据的均值分为9个阶段,分别记为:
CMeanjm={CM1jm,CM2jm,...CM9jm};
MMeanjm={MM1jm,MM2jm,MM9jm};
IMeanjm={IM1jm,IM2jm,IM9jm};
可以理解,根据hadoop的日志可以确定MapReduce运行过程中每个阶段的起止时间,根据这些起止时间,可以将每个作业的性能数据的三个集合的平均值都分为9段。
步骤S140:利用层次聚类分别对MapReduce运行过程中每个阶段进行层次聚类。
可以理解,利用层次聚类分别针对每个阶段进行层次聚类,由此需要进行9次的聚类,这样可以得到每个作业在不同阶段的相似性作业,这些相似性的作业在该阶段可以进行相似性地优化,进而可以实施MapReduce阶段级地快速优化。
请参阅图2,利用层次聚类分别对每一阶段进行层次聚类,包括下述步骤:
步骤S141:将m类作业数量中的每一类用特征向量Fijm进行描述,其中,Fijm={CMijm,MMijm,IMijm};
步骤S142:找到最接近的两个类并合并成一类;
具体地,针对第i个阶段的m个特征向量,计算m个特征向量两两之间的欧几里得距离,得到m×(m-1)个组合的距离,找到距离最小的组合,将这个组合中的两个类合并成为一个新的类。
步骤S143:重新计算新的类与所有旧类之间的欧几里得距离;
步骤S144:重复步骤S142步和步骤S143,直到最后合并成一类为止。
其中,所述欧几里得距离的计算方法为:
其中,第i阶段有两个作业的特征向量为:
Fijo={CMijo,MMijo,IMijo},Fijp={CMijp,MMijp,IMijp}。
本发明提供的基于多阶段特征的MapReduce作业细粒度分类方法,通过单独对每个阶段的特征进行分类,可以得到每个作业在不同阶段的相似性作业,这些相似性的作业在该阶段可以进行相似性地优化,进而可以实施MapReduce阶段级地快速优化,使得优化的目的更明确,提高了优化的效率,同时也有利于利用分类的结果进行MapReduce工作流的细粒度瓶颈分析,找出制约程序运行性能地瓶颈可以更有针对性地改善程序的设计,提高程序本身的性能。
需要说明的是:在上述各实施例中,各实施例的描述都有所侧重,每个实施例中没有详述的部分,可以参照说明书全文的详细描述,此处不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于多阶段特征的MapReduce作业细粒度分类方法,其特征在于,包括下述步骤:
步骤S110:收集Hadoop集群中每个节点的性能数据,所述性能数据包括CPU使用率,内存使用率和I/O使用率,
所述CPU使用率的集合为Cjm={C1jm,C2jm,…Cnjm};
所述内存使用率的集合为Mjm={M1jm,M2jm,…Mnjm};
所述I/O使用率的集合为Ijm={I1jm,I2jm,…Injm};
其中,m为所述Hadoop集群待分类的作业数量,m个作业的集合记为Job={j1,j2…jm},n为Hadoop集群的节点数量;
步骤S120:统计每个作业的性能数据的均值的集合,分别记为:
CMeanjm=(C1jm+C2jm+…+Cnjm)/n;
MMeanjm=(M1jm+M2jm+…+Mnjm)/n;
IMeanjm=(I1jm+I2jm+…+Injm)/n;
步骤S130:将每个作业的性能数据的均值分为9阶段,CMeanjm记为:{CM1jm,CM2jm,…CM9jm};MMeanjm记为:{MM1jm,MM2jm,MM9jm};IMeanjm记为:{IM1jm,IM2jm,IM9jm};
步骤S140:利用层次聚类分别对MapReduce运行过程中每个阶段进行层次聚类。
2.如权利要求1所述的基于多阶段特征的MapReduce作业细粒度分类方法,其特征在于,步骤S140中,利用层次聚类分别对每一阶段进行层次聚类,包括下述步骤:
步骤S141:将m类作业数量中的每一类用特征向量Fijm进行描述,其中,Fijm={CMijm,MMijm,IMijm};其中i表示针对第i个阶段;
步骤S142:找到最接近的两个类并合并成一类;
步骤S143:重新计算新的类与所有旧类之间的欧几里得距离;
步骤S144:重复步骤S142步和步骤S143,直到最后合并成一类为止。
3.如权利要求2所述的基于多阶段特征的MapReduce作业细粒度分类方法,其特征在于,步骤S142中,找到最接近的两个类并合并成一类具体为:针对第i个阶段的m个特征向量,计算m个特征向量两两之间的欧几里得距离,得到m×(m-1)个组合的距离,找到距离最小的组合,将这个组合中的两个类合并成为一个新的类。
4.如权利要求2或3所述的基于多阶段特征的MapReduce作业细粒度分类方法,其特征在于,所述欧几里得距离的计算方法为:
<mrow>
<mi>D</mi>
<mi>i</mi>
<mi>s</mi>
<mi>F</mi>
<mi>i</mi>
<mo>=</mo>
<msqrt>
<mrow>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>CMi</mi>
<mrow>
<mi>j</mi>
<mi>o</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>CMi</mi>
<mrow>
<mi>j</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>MMi</mi>
<mrow>
<mi>j</mi>
<mi>o</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>MMi</mi>
<mrow>
<mi>j</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>IMi</mi>
<mrow>
<mi>j</mi>
<mi>o</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>IMi</mi>
<mrow>
<mi>j</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
其中,第i阶段有两个作业的特征向量为:
Fijo={CMijo,MMijo,IMijo},Fijp={CMijp,MMijp,IMijp}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836410.XA CN104503844B (zh) | 2014-12-29 | 2014-12-29 | 一种基于多阶段特征的MapReduce作业细粒度分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836410.XA CN104503844B (zh) | 2014-12-29 | 2014-12-29 | 一种基于多阶段特征的MapReduce作业细粒度分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503844A CN104503844A (zh) | 2015-04-08 |
CN104503844B true CN104503844B (zh) | 2018-03-09 |
Family
ID=52945244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836410.XA Active CN104503844B (zh) | 2014-12-29 | 2014-12-29 | 一种基于多阶段特征的MapReduce作业细粒度分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503844B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915260B (zh) * | 2015-06-19 | 2018-05-25 | 北京搜狐新媒体信息技术有限公司 | 一种Hadoop集群管理任务的分发方法和*** |
CN106126407B (zh) * | 2016-06-22 | 2018-07-17 | 西安交通大学 | 一种针对分布式存储***的性能监控调优***及方法 |
CN106341478A (zh) * | 2016-09-13 | 2017-01-18 | 广州中大数字家庭工程技术研究中心有限公司 | 一种基于Hadoop的教育资源共享***及实现方法 |
CN110543588A (zh) * | 2019-08-27 | 2019-12-06 | 中国科学院软件研究所 | 一种面向大规模流数据的分布式聚类方法及*** |
CN110704515B (zh) * | 2019-12-11 | 2020-06-02 | 四川新网银行股份有限公司 | 基于MapReduce模型的两阶段在线化采样方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004670A (zh) * | 2009-12-17 | 2011-04-06 | 华中科技大学 | 一种基于MapReduce的自适应作业调度方法 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行*** |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082599A1 (en) * | 2008-09-30 | 2010-04-01 | Goetz Graefe | Characterizing Queries To Predict Execution In A Database |
US9367601B2 (en) * | 2012-03-26 | 2016-06-14 | Duke University | Cost-based optimization of configuration parameters and cluster sizing for hadoop |
-
2014
- 2014-12-29 CN CN201410836410.XA patent/CN104503844B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004670A (zh) * | 2009-12-17 | 2011-04-06 | 华中科技大学 | 一种基于MapReduce的自适应作业调度方法 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行*** |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于mapreduce的k-means聚类集成;冀素琴,石洪波;《计算机工程》;20130930;全文 * |
基于mapreduce的分布式近邻传播聚类算法;鲁伟明,杜晨阳等;《计算机研究与发展》;20121231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104503844A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503844B (zh) | 一种基于多阶段特征的MapReduce作业细粒度分类方法 | |
US10318391B2 (en) | Non-blocking listener registration in the presence of data grid nodes joining the cluster | |
WO2021109464A1 (zh) | 一种面向大规模用户的个性化教学资源推荐方法 | |
US9361343B2 (en) | Method for parallel mining of temporal relations in large event file | |
CN102831193A (zh) | 基于分布式多级聚类的话题检测装置及方法 | |
WO2015024474A1 (zh) | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 | |
CN106600067A (zh) | 多维立方体模型的优化方法和装置 | |
US11853217B2 (en) | Multi-cache based digital output generation | |
CN103942308A (zh) | 大规模社交网络社区的检测方法及装置 | |
WO2012149776A1 (zh) | 存储数据的方法和装置 | |
CN106557558A (zh) | 一种数据分析方法及装置 | |
Cagliero et al. | Misleading generalized itemset discovery | |
Gao et al. | Real-time social media retrieval with spatial, temporal and social constraints | |
CN110119399A (zh) | 基于机器学习的业务流程优化方法 | |
Lin et al. | A hybrid recommendation algorithm based on hadoop | |
Chen et al. | Long-tail hashing | |
CN107943947A (zh) | 一种基于Hadoop平台的改进并行KNN网络舆情分类算法 | |
CN103870489B (zh) | 基于搜索日志的中文人名自扩展识别方法 | |
CN106897313B (zh) | 一种海量用户业务偏好评估方法和装置 | |
Abdullah et al. | An integrated-model qos-based graph for web service recommendation | |
Zhang et al. | Evolutionary clustering with DBSCAN | |
Sanila et al. | Real-time mining techniques: a big data perspective for a smart future | |
Hoang et al. | Universal graph continual learning | |
Yang et al. | A group mining method for big data on distributed vehicle trajectories in wan | |
CN105282011A (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 |