论文摘要
随着科技的进步以及互联网的高速发展,越来越多的Web应用被用户所使用。互联网公司也面临着更多的挑战,每天页面都会被数以万汁的用户·所使用,使得Web日志的数量也快速增长。如何更好的提高互联网公司的服务质量,了解用户的需求及爱好,增加用户的粘度,成为当今互联网行业急需解决的问题。如何利用收集的大规模Web日志数据,从这些海量数据中心找出对企业有价值的信息,是目前大多数企业面临的问题。以用户访问的Web日志数据为基础,来改进网站的设计,吸引更多的流量,从而提高用户的体验,给企业带来效益,促使了Web日志分析的产生。Web日志分析就是通过收集用户访问Web网页所产生的日志,对这些日志进行格式转换、过滤、清洗、挖掘等一系列的过程。随着Web应用访问量的增大,相应的Web日志的数量也在不断地膨胀,传统的数据存储方式不能满足当前的需求。对于Web日志的分析,单个节点的处理能力有限,不能达到互联网企业分析日志的需求,为此,大规模Web日志分析系统应运而生。采用分布式对日志进行存储以及进行分布式计算成为了大规模Web日志分析发展的必然趋势。本文主要研究NoSQL数据库MongoDB以及Hadoop分布式计算架构,并且基于MongoDB和Hadoop设计和实现了一个高性能的大规模Web日志分析系统。Hadoop包括两个核心的技术:分布式文件系统HDFS以及分布式编程模型MapReduce。本系统使用MongoDB对日志文件进行存储,日志通过分片技术被分割成若干大小相同的日志数据集,存储在分布式系统的不同节点上;利用Hadoop提供的MapReduce编程模型,对节点中的大规模的Web日志进行分析。分析的过程主要包括日志收集、日志处理、日志存储以及日志分析,系统最终以Web界面的方式展示给用户使用。基于NoSQL的大规模Web日志分析系统在收集、处理、存储和分析方面较以往的系统有很大的改进,可以高效的对各种格式的日志进行处理,不仅减少了开发人员的工作量同时提高使用人员的工作效率。