论文部分内容阅读
互联网的飞速发展,带来了日益增多的互联网用户。互联网服务提供商为了提高企业的服务质量,需要记录用户的访问信息、网络的运行状况等。而庞大的用户量,使得记录信息的过程会产生海量的日志。针对海量网络日志的分析系统为互联网企业提供了有效的日志收集方式和日志处理分析的能力。本文提出了一种在大数据环境对日志进行收集分析的系统,系统使用Flume和Kafka进行日志的收集和分发,日志是分布在不同机器、不同操作系统上的、具有多样性的海量日志,然后通过Storm和HBase进行日志处理和日志存储,并采用k-means聚类算法对收集的日志进行聚类分析。系统分析的主体内容是从日志中提取出的用户行为,网络服务提供商通过系统分析的结果来优化自身的服务。文章首先介绍了日志收集系统的国内外研究现状和研究成果,分析了日志的特征,结合海量日志的特点对日志收集分析系统做出研究设计和实现。其次在日志分析部分对聚类算法进行了研究和改进。在日志采集部分,本文结合海量日志的特征,基于分布式架构,采用了多节点Flume进行日志收集。为了提高收集日志的可靠性以及防止日志的丢失,该系统使用Flume作为日志消息的生产者,Kafka作为Flume的消费者,这样保证了系统的吞吐量和可靠性,能够对海量日志进行有效的收集和处理。Kafka作为日志数据的缓冲,下游是Storm对日志进行实时处理,HBase对处理后的日志数据进行存储。在日志分析部分中,首先介绍了聚类算法的特征和思想,总结了现有的k-means聚类算法的优化方案和思路,并且根据本文的实际应用场景,提出了一种结合自适应选取k值和具有特征权重的k-means算法的优化方法,在本文的背景下比现有的传统k-means算法具有高的聚类准确率。最后从两方面介绍了系统的架构,第一方面是大数据日志收集组件的架构,分析了大数据日志的特点和大数据用户行为分析的特点,据此介绍了大数据日志收集组件的整体架构设计和配置详情,第二方面是为用户提供前端可视化界面的系统部分,从系统开发环境,功能模块,系统流程,系统测试等方面设计开发了基于大数据的日志采集分析系统,实现了用户可简易便捷配置日志收集服务的功能,并形象的进行了聚类效果的可视化展示和详细数据的下载。