论文部分内容阅读
随着软件复用及应用的深入研究,可复用软件构件库作为软件复用的一项重要基础设施已经越来越得到产业界与学术界的重视。构件的查询是构件库的基本功能,利用聚类技术对构件进行聚类,可以实现构件的自动分类,有效地提高构件的查询效率。目前,Internet上出现了很多专门的构件库,但是各个专用的构件库由于对构件的表示以及组织形式上各不相同,使用不够灵活。现在对分布式构件库方面的研究,提高了构件的管理和访问效率,并且采用XML技术有效地解决了异质构件库的检索问题,但构件资源的规模随着应用的推广会不断扩大,负责存储构件的中心服务器的存储能力是有限的。此外,提供服务的增长给计算资源带来相当大的压力,当负载过重时,查询构件的效率会降低,并且传统模式中聚类方法在处理海量、高维和稀疏的数据上存在不足,这已成为当前研究的热点也是一个待解决的难点。
针对分布式模式的构件库所存在的问题,由于云计算所具有的可扩展和高性能计算特性,将云计算技术运用到构件技术研究中,探讨利用云存储将网络中的构件资源组织起来,设计在云计算环境下的构件资源的检索架构,着重研究这种架构中的构件聚类技术。针对传统聚类方法在处理大规模数据上的不足,对聚类算法性能产生了很大的负面影响,结合MapReduce并行计算的研究,在云计算平台Hadoop上设计并实现了基于MapReduce的聚类模型。为了减少I/O操作和CPU的性能瓶颈,通过调整算法输入参数和集群数量对设计的算法进行了优化。这在很大程序上改善了数据处理和聚类算法的可扩展性和性能要求。
分别从数据规模、节点数量和不同任务粒度对系统性能的影响,以及对聚类中两种相似性计算方法的性能进行了比较,实验结果表明MapReduce框架提高了大型数据集的吞吐效率,可以有效减少计算时间,基于Hadoop实现聚类算法具有较高的扩放性和灵活性,能有效解决聚类处理中数据规模问题和实时性问题;通过调整Hadoop的实现来确定数据大小阈值和每个节点需要的计算任务,实验结果表明每一项任务都有其最佳节点规模,过多的任务粒度同样会对性能造成负面影响。