论文部分内容阅读
聚类算法是将数据分类到不同的类或者簇,在商业上聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体中,同一群体内的用户有相同的访问行为和爱好,聚类算法主要包括划分方法像K-means算法、层次方法、基于密度的方法等等。传统的聚类算法已经能够成功的解决低维数据的聚类问题,但是随着大数据时代的来临,数据不仅数据量大,而且数据类型繁多,要在这些数据的基础上进行聚类分析难度增加,其中借助分布式框架可以在算法的复杂度和效率上有很大改善和提高。2008年Hadoop分布式计算框架使得数据挖掘算法可以迁移到分布式平台上,MapReduce编程框架的高可靠性和可扩展性使得挖掘算法可以处理大量数据。web日志挖掘通过对日志的分析可以获取用户的行为信息,从而通过web系统的性能,为网站架构提供指导,同时为用户定制个性化网站服务。随着海量web日志的产生,传统的web日志分析方法已经捉襟见肘,对web日志挖掘需要借助分布式框架来对海量数据进行处理。本文借助Hadoop分布式框架,通过实现基于MapReduce算法的聚类算法对web日志进行处理以挖掘用户的访问行为信息,主要做了以下几个方面的工作:1 设计Hbase当中web日志存储格式:通过对网络日志挖掘研究发现,不同的网络日志其格式各有不同,并且网络日志存储也比较复杂,配置实现了网络日志收集系统Flume可以直接从日志文件,关系型数据库等中收集预处理日志信息到HDFS和Hbase分布式数据库当中,设计了在Hbase数据库当中web日志的存储格式。2基于MapReduce对web日志分析:MapReduce对于日志信息的处理使程序可以在分布式环境下同时处理数据量非常大的数据,通过MapReduce程序分析网站用户的行为模式,为网站的设计架构提供指导。3基于MapReduce的聚类算法:通过对K-means聚类算法的分布式实现的研究,实现了基于MapReduce的分布式聚类算法,并且在此基础上对该算法需要输入的初始聚类数k进行改进,通过最小最大算法选择算法能够达到最优聚类效果的初始聚类簇数k,避免了用户数据量大无经验值参考情况下对聚类数k的盲目猜测。本文在以上研究的基础上用NASA网站一个月的访问日志信息作为日志数据进行了实验,实验证明了MapReduce算法对于日志分析的可行性以及对聚类算法的分布式实现的有效性。