论文部分内容阅读
当今社会,互联网面临数以亿计百亿次的用户访问,同时产生了大量记录用户访问信息的日志文件,这些隐藏着用户访问规律的日志信息是一笔非常珍贵的财富。如何处理这些海量日志数据,逐渐成为业界一大热门领域。本文在hadoop平台的基础上,以信息管理系统日志文件为切入点,基于信息管理系统日志文件的特点、日志分析的业务特点,设计了一种能正确满足信息管理系统日志分析业务需求的软件架构,并阐述了该软件架构的设计思想,论述了选择软件架构的理由。该设计在逻辑与功能上将整个系统设计为日志采集、日志存储、日志处理、处理结果存储、结果展示五个部分。在面对海量日志数据时,该设计能较好地满足业务与性能需求,同时具有部件耦合性低,后期维护简单等优点。结合实际的业务需求,以山东大学研究生管理信息系统为例,本文给出了该软件结构设计的具体软件实施方案与核心代码实现。在论述系统中日志采集部分的实现方式时,比较了 Flume与Scribe的异同,介绍了如何配置Tomcat日志与Flume组件,并给出来具体的配置方案。在讲解系统中日志存储部分的设计与实现时,论述了选择HDFS作为存储方式的理由,并给出了具体实现。在设计实现系统中日志处理部分时,结合日志分析的业务特点,详细介绍了 MapReduce在该系统中如何实现日志分析,阐述了 MapReduce编程模型在处理海量日志文件的优势,比较了 Hive与传统关系型数据之间的异同。同时,根据业务设计出Hive表结构。在介绍系统中处理结果存储部分的实现方式时,展示了 MySQL数据库在实现该部分时具有的优点,并给出具体表结构。在论述系统中结果展示部分的实现方式时,简单配置实现了一个小型信息展示系统,并简单介绍了如何使用可视化控件ECharts实现结果数据展示,并给出核心实现代码。