论文部分内容阅读
随着网络的快速普及,使用搜索引擎的用户规模正在逐渐增加,产生的日志信息呈现爆炸性的增长,海量搜索日志所带来的价值,引起了各个搜索类互联网企业的广泛关注。为了在未来的市场中占据主动,抓住数据所带来的财富,企业纷纷开始研究和分析用户的日志信息,从中发现用户的搜索意图和兴趣偏好,挖掘用户的行为特征,方便为用户提供精准和个性化的服务。然而,企业在处理海量用户日志信息的同时,面临着来自两个方面的挑战。一方面是随着对用户行为的深入分析,需要使用大量的数据挖掘算法,同时在对用户行为进行实时场景的分析上,需要具有计算速度快、低时延、高容错的要求。传统的单机操作远远不能满足海量数据处理的要求,在MapReduce集群上进行大量的迭代计算和结构化数据流的处理,会产生大量的时延,不能满足系统的要求。另一方面是海量搜索日志的存储问题,传统关系型数据库的可扩展能力有限,不能满足数据持续增长的存储需求。基于以上问题的分析与研究,在阅读了大量的相关文献资料之后,本文通过对用户的需求进行详细的分析后,设计一个基于Spark的查询日志用户行为系统,该系统主要划分为四个模块,分别是日志采集模块、日志存储模块、日志分析模块、日志可视化模块。日志采集模块主要是使用Flume分布式日志采集系统对各个服务器的查询日志进行采集。日志存储模块主要是把Flume采集的日志存储到HBase和Kafka中。其中最重要是日志分析模块,该模块主要分为实时统计分析、离线数据统计分析、离线数据挖掘分析。实时统计分析主要是使用Structured Streaming处理存储在Kafka集群中的日志信息,实现实时热门话题和话题总数的统计。离线数据统计分析主要是使用Spark SQL对数据仓库Hive的离线数据进行处理并把结果存储到MySQL数据库中。离线数据统计分析的内容主要包括用户关键词统计分析、用户查询日志指标分析、Rank排名与用点击次数统计分析、URL点击排行榜统计分析。离线数据挖掘分析主要是使用MLlib库中的朴素贝叶斯和K-Means算法,对用户的查询主题进行分类和聚类。日志可视化模块主要是使用ECharts图表和Spring Boot框架,把日志分析模块的结果进行可视化展示,方便业务人员能够清晰的掌握用户行为分析的结果。设计与实现用户行为分析系统,有利于更加高效的统计用户的行为信息和挖掘用户的行为意图,提高企业的市场竞争力。