论文部分内容阅读
Web日志是由Web服务器产生的数据记录,包含着网站运行的重要信息。通过日志分析,我们可以获取网站页面的访问量、分析用户行为、计算用户搜索的关键词排行等,从而实现企业的数据化运营。通常单日访问量在10万以上的中小型网站每天会产生1GB以上的日志文件,对于更大型的网站,可能每小时都会产生10GB以上的日志文件。当日志数据以每天10GB、100GB的速度增长的时候,使用单台主机已无法满足对数据的计算和存储性能需求。因此,采用分布式计算和存储技术来完成对Web日志的分析处理已成为必然的发展趋势。目前较为流行的分布式计算框架是Hadoop,已被广泛应用于日志分析、数据挖掘等领域。Hadoop的核心是通过Map Reduce并行计算模型和分布式存储系统(HDFS)实现对程序、内存、存储资源的管理。其本质是一种后计算流的过程,已足够应对海量数据计算,但在性能方面仍存在一定的缺陷:(1)日志元数据首先会存入到HDFS中,在计算时才重新读取,这其中必定引起一定的计算延迟,时效性得不到保证;(2)HDFS会保存大量的原始日志数据,考虑到冗余备份,会对机器的资源造成极大的浪费。(3)用户必须实现复杂并且难以重用和维护的Map Reduce程序,不具备良好的通用性。因此,针对Hadoop计算的不足,本文提出了一种全新的计算流方案,并设计和实现了一个可视化的Web日志分析系统,具体内容包括:第一,针对日志分析的应用场景,定义系统需求,将系统分为数据采集和存储、后台计算、前端展现三个部分。用户通过系统界面完成日志模型配置,然后系统根据用户规则生成计算任务,并将每分钟的数据统计结果以报表的形式返回给用户。第二,设计系统架构及功能模块,优化系统的计算和存储性能。本文基于Map Reduce并行计算模型,设计了一种更能满足实时性、周期性需求的计算流,降低了计算过程中的延时,提高了数据的齐全度和系统的故障恢复能力。并根据数据结果的周期性,设计了一套优化的存储方案,降低了存储系统的次级索引负担,提高数据检索效率。第三,根据系统各模块处理流程,实现系统功能,包括日志模型管理、数据计算、数据存储、前端展现。其中描述了各模块间的交互数据格式和通信流程,并详细阐述了任务的调度策略和执行过程。第四,设计三个实验场景,验证本日志分析系统的功能及性能。首先通过对某电商网站访问量的统计,分析系统运行情况,然后对比分析了单台主机处理、并行处理、Hadoop计算处理的耗时。测试结果表明分布式计算比单机运算的效率更高,本系统的计算模型比Hadoop的实时性更高。本系统通过分布式计算和存储方案解决了海量日志分析过程中的实时性和数据可靠性问题,并通过配置化的用户界面完成日志分析过程的规范化管理,有效的提高了日志分析的效率,在大数据时代具有一定的现实意义和应用价值。