论文部分内容阅读
互联网给政务办公带来机遇和便利的同时也带来了风险与挑战,企业需要通过分析网络日志来获取用户访问行为和兴趣偏好,然而单机日志处理系统早已不能满足日益膨胀的日志数据,因此一个大规模数据处理框架Hadoop便于2006年面世了,随后诞生的Spark逐渐代替MapReduce成为Hadoop的缺省执行引擎。进一步的,MLlib(Machine Learning Library)作为Spark的重要组成部分,其内容涵盖了多种常用智能处理算法以及数据工具。通过运用MLlib中的挖掘算法进行序列模式挖掘来获取用户上网行为习惯,有助于管理人员优化网站服务和用户上网体验等。然而原始网络日志文件中数据通常是不完整、冗余甚至错误的,直接使用这些数据进行分析挖掘效果并不理想,因此对日志数据的采集和预处理工作要求比较高。针对以上问题,在完成企业关于用户行为分析方面的需求调研后,本文研究并设计开发了一个基于Spark及其机器学习库MLlib的用户行为分析系统,主要研究内容包括:1.构建了基于Spark/MLlib的可扩展的用户行为分析系统框架。该框架综合了日志采集、日志预处理、数据挖掘、可视化展示和系统配置管理等功能,通过对日志采集模块所收集的原始日志数据进行预分析与处理,生成符合格式要求的中间数据,然后通过数据挖掘模块,采用序列模式数据挖掘算法,根据对用户行为序列模式的对比和分析对用户进行归类整理,并将分析结果通过可视化模块进行各种图表化展示。2.设计了基于哈希映射分区的日志采集存储策略。该存储策略基于用户的IP地址或ID标识,通过哈希取模计算得到其分区信息,再根据该分区信息对日志数据进行分别存储,并创建相应的Hive分区表格。实验结果表明,该策略可有效提高大规模日志数据的检索效率。3.提出了基于混合阈值会话识别的数据预处理算法。该算法通过数据清洗、用户识别、会话识别和行为解释完成数据的预处理。其中会话识别部分采取基于动态会话时长和访问间隔阈值相结合的综合策略,提高了用户会话划分的准确性,为后续的数据挖掘模块提供了有效的数据支持。