论文部分内容阅读
随着Internet的快速发展,越来越多的企业搭建了属于它们自己的各种各样的业务系统,社会高度信息化,网络数据规模日渐庞大,Web成为迄今为止全球最大的信息仓库。无论是政府、企业还是个人都面临如何处理大量Web数据的难题。公司传统的日志分析就是工作人员进入服务器利用vim工具和一些命令或者Shell脚本统计得出一些信息,速度慢,也无法从日志中直观显示日志数据背后的信息,于是如何高效的从公司网站数据中挖掘出潜在价值并转化为决策依据,便具有重大意义。然而由于数据的产生速率和规模越来越大,数据处理技术将迎接更大的挑战,公司传统的日志分析模式在存储空间、效率以及用户交互上已经无法满足现实中的需求。为了提高日志分析的存储能力和计算效率,便于用户交互,本文提出了基于Hadoop的分布式解决方案并研究设计完成了基于Hadoop的Web日志数据挖掘分析系统。论文在以下几个方面进行了研究:(1)本文从Web日志挖掘的背景出发,探索了目前国内外在数据挖掘方面的常用方法和方向。(2)详细分析了Web日志数据挖掘分析系统三个子系统的功能性需求,基于需求主要研究了用于保存数据分析结果的MySQL表的结构。最后分别分析实现了三个分析子系统:数据收集系统使用Flume收集数据存入HDFS;数据分析系统基于Hadoop框架先将收集的离线数据清洗导入My SQL,之后MapReduce程序和Hive脚本分析HBase表中数据并将结果存入MySQL;数据展示系统基于Spring和MyBatis框架将数据以图表的形式展示出来。(3)将Hadoop组件、Spring框架有机的组合起来,Map Reduce程序和Hive脚本发挥各自的作用和性能分析不同的功能模块,Oozie工作流将MapReduce程序和Hive脚本集成并设置定时任务执行,Spring、My Batis和High Chart组合形成新的Spring MVC框架。(4)分析了传统CART算法的不足,改进了CART算法对于数据集中属性内、属性间Gini系数的计算方式以及CCP剪枝算法中表面误差率增益值的计算方式,实现了一种并行化的CART算法。(5)完成了各个功能模块的单元测试、系统的集成测试以及MapReduce和Hive脚本在Hadoop集群上执行任务的性能测试。结果表明分析系统可靠、高效、具有良好的交互性能。最终的研究成果是一个完整的的从数据收集到展示分析结果的基于Hadoop的分布式Web日志数据挖掘分析系统,该系统提供了支持运维大数据分析的基础框架、分析结果查询的API接口和交互界面。