从事点击流日志埋点系统经常会遇到什么问题

WEB日志的作用和缺陷_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
WEB日志的作用和缺陷
一起调研网(又称为一起调查网、17调研网)...|
总评分0.0|
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩3页未读,
定制HR最喜欢的简历
你可能喜欢当前位置: >>
一个基于Hadoop的Web日志分析系统的设计与实现
豪南『大?嘤硕士学位论文一个基于Hadoop的Web日志分析系统 的设计与实现万方数据 THE DESIGH ANDIMPLEMENTATION OF A HADOOP―BASED WEB LOG SYSTEMK义龇SISA Thesis Submitted to Southeast UniversityFor the Academic Degree of Master ofEngineeringBYWANGHengSupervised by Prof.JIN Yuanping一 一and S.E.TA0 YuhuiSchool of Computer Science and EngineeringSoutheast UniversityMay 201 4万方数据 东南大学学位论文独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明 并表示了谢意。研究生签名:至恒.I嗍劢I垆.‘.;东南大学学位论文使用授权声明东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可 以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文 的公布(包括以电子信息形式刊登)授权东南大学研究生院办理。研究生签名:芈导师签名:期:叁f空:』:生万方数据 摘要摘要随着Intemet的迅速发展和普及,Web相关组织收集了海量Web日志数据,其中蕴 藏着大量有用的信息和知识,而这些信息和知识可以被用来设计产品、判断客户生命周 期、优化Web应用程序功能、为用户提供更个性化的内容以及在Web空间找到最有效 的逻辑结构等。因此,海量Web日志数据一直具有重要的实际意义。 传统的串行计算方法己难以处理如此庞大的数据,而云计算技术可以有效处理海量 数据。Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以HDFS和 MapReduce为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构,为利 用云计算处理海量数据提供了有效的支撑。 本文以作者所在公司的实习项目为基础,目标是对海量Web日志进行分析,重点 是研究Hadoop框架与传统数据挖掘的结合,最终完成一个基于Hadoop的Web日志分 析系统,从而可以从用户上网数据中挖掘出有意义的信息。本文主要工作包括: (1)研究了Web日志数据挖掘的相关背景和意义,以及如何将Hadoop应用到传统 数据挖掘中的方法。 (2)研究了Web日志挖掘的预处理过程。 (3)利用MapReduce实现统计模型。基于MapReduce技术,研究并实现三种并行 式Apriori挖掘算法。经过对比分析,结合Hadoop框架,提出并实现了一种改进的Apriori 算法,并在实际数据集上运行以验证设计的有效性,实验分析表明所设计算法有较高的 效率,在实际应用中有较好的可行性。 (4)基于上述算法,实现了一个基于Hadoop的Web日志分析系统。 关键词:数据挖掘,Web日志数据,云计算,Hadoop,MapReduce万方数据 AbstractAbstract With the rapid growth of the Internet and the popularity of the network,Web-based organizations collected massive web log data in which there are a great deal of useful information and knowledge hidden.and these information and knowledge can help theseorganizations design products,determine customers’lire cycle,optimize the function of web applications,provide users with more personalized contents and the most effective logicalstructurefor the web site.Thus.1arge volume web log data mining iS of great practicalimportance. However.traditional serial computingcanCan’t handlesuch large volume of data,and cloudthe iob efficiently.Hadoop iS an open SOurCe distributed computing computing platforln of Apache software foundation.With HDFS and MapReduce as its core,Hadoop do providesabasic distributed architecture with its underlying details hidden.which providesanefficient support for using cloud computing to process large volume of data. The major obiect of this thesis iS to combine Hadoop with traditional data mining methods and to mine out efficiently usefulinforlnation and knowledge from the massive weblog data collected in the company where the author worked The main work is as follows:as anintem.background and significance of web log data mining and how to apply to data Hadoop original mining methods iS discussed. Described the method of data pre.processing for web log mining. (21(1)Discussed the(3)Implemented statistical modeling with MapReduce.Designed and implemented threeparallel Apriori mining algorithms based on MapReduce technology.By comparing these three a suitable one for Hadoop based implementation.The experimentsalgorithms,proposedathe practical data showed that the algorithms implemented in this thesis have performance and are suitable for practical use.onbetter(4)Implementedmentioned above.Hadoop―Based web log analysis system basedonthealgorithmKey words:DataMining,Web Log Data,Cloud Computing,Hadoop,MapReduceII万方数据 目录目录摘要……………………………………………………………………………………………IAbstract.….….……..….….….….….….…..…….….…..…….….….………….……....….…...…………….….…II第一章绪论…………………………………………………………………………………..1 1.1课题背景及意义…………………………………………………………………….1 1.2研究现状…………………………………………………………………………….11.2.1Wreb日志挖掘国内外研究现状………………………………………………11.2.2云计算国内外研究现状……………………………………………………一4 1.3论文主要工作……………………………………………………………………….4 1.4论文结构简介……………………………………………………………………….4 第二章相关技术研究………………………………………………………………………..5 2.1 Wreb挖掘基本理论…………………………………………………………………..52.1.1 2.1.2 2.1.3W.eb挖掘基础…………………………………………………………………5 W.eb数据的特点………………………………………………………………52.2Web数据挖掘的分类…………………………………………………………5 Wreb日志挖掘理论…………………………………………………………………..5 2.2.1预处理………………………………………………………………………一6 2.2.2模式发现……………………………………………………………………一7 2.2.3模式分析……………………………………………………………………..82.3Hadoop体系结构……………………………………………………………………8 2.3.1 HDFS体系结构………………………………………………………………82.3.2MapReduce体系结构……………………………………………………….10Hadoop的应用……………………………………………………………………..12 第三章系统需求分析与总体结构…………………………………………………………14 3.1系统需求分析………………………………………………………………………14 3.2系统总体架构设计…………………………………………………………………14 3.3系统工作流程与模块设计…………………………………………………………l 5 3.4本章小结……………………………………………………………………………16 第四章Web日志挖掘预处理………………………………………………………………174.12.4Web日志挖掘预处理概述…………………………………………………………17 4.1.1数据预处理的重要性………………………………………………………17 4.1.2数据预处理方法……………………………………………………………174.2Web日志挖掘预处理流程…………………………………………………………19 4.2.1数据清理……………………………………………………………………20 4.2.2用户识别……………………………………………………………………20 4.2.3会话识别……………………………………………………………………21 4.2.4路径补充……………………………………………………………………22 4.2.5事务识别……………………………………………………………………22第五章基于MapReduce并行实现的关联规则Apriori算法…………………………….24 5.1关联规则挖掘………………………………………………………………………24 5.1.1相关概念……………………………………………………………………24 5.1.2挖掘步骤……………………………………………………………………24 5.2经典Apriori算法………………………………………………………………….25 5.2.1 Apriori算法思想……………………………………………………………25III万方数据 5.3Apriori算法实现……………………………………………………………26 Apriori算法的三种并行算法………………………………………………………27 5.3.1 CD算法……………………………………………………………………….275.3.2 5.3.35.2.2DD算法………………………………………………………………………一30 CaD算法………………………………………………………………………3 15.4Apriori的MapReduce实现………………………………………………………..33 5.4.1数据初始化…………………………………………………………………34 5.4.2迭代实现……………………………………………………………………365.4.3实验分析……………………………………………………………………38 5.5产生关联规则………………………………………………………………………39 5.6本章小结……………………………………………………………………………39 第六章Web日志分析系统的实现…………………………………………………………406.1 6.2Web日志分析系统设计……………………………………………………………40 Web日志分析系统实现……………………………………………………………41 6.2.1数据预处理模块的实现……………………………………………………42 6.2.2模式发现模块的实现………………………………………………………436.2.3模式分析模块的实现………………………………………………………45 6.3本章小结……………………………………………………………………………46 致谢…………………………………………………………………………………………………………………………47 参考文献……………………………………………………………………………………一48IV万方数据 第一章绪论第一章绪论1.1课题背景及意义作为Internet上最重要的应用之一,Web(万维网)已经发展成为世界上最大的信 息聚集地,其中聚集了海量的Web数据。据估计,目前Intemet上己经拥有约3万亿个 Web页面,并且这个数字还在以每天几十亿的速度持续增长。由于数据的异构性,用户 要直接从这些Web数据中挖掘出有用的信息和知识是十分困难的,因此基于Web的组 织就面临着以下这些问题:如何高效地从海量Web数据中挖掘出有意义的信息;如何 获得网络结构,优化网络布局:如何为用户提供更加个性化的服务等【l】。 面对海量Web数据,普通用户迫切需要一种机制快速定位到所需信息。Web数据 挖掘便应运而生,并且伴随Web的发展而备受关注。Web数据挖掘建立在信息检索、 数据挖掘以及知识管理等技术的基础上,通过对大量Web文档进行分析来获得隐含的 知识和模式。 Web数据挖掘包括Web内容挖掘、Web结构挖掘和Web日志挖掘。其中最重要的 就是Web日志挖掘,即通过对Web服务器中的日志数据进行挖掘,以发现用户在该站 点中的访问模式,从而进一步分析该服务器中的日志文件中蕴含的通用的规律,以改进 站点中页面的组织结构,构建智能化的站点,为访问者提供更个性化的服务,从而帮助 网站在商业竞争获取优势。 同时,由于数据量巨大且不断增长,传统的串行计算方式已经不能满足需求,人们 开始将并行计算应用到Web日志挖掘中。目前最流行的技术就是云计算。云计算是一 种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给 计算机和其他设备。 在云计算系统的后端,是无数的服务器在同时运行,如何对如此大量的服务器有效 的管理,使其计算效率最高便成了一个云计算的挑战。Hadoop成功地设计了分布式计 算和存储框架,已经在多个云计算平台上得到了应用。Hadoop是由Apache基金会开发 的一个开源的系统基础架构,具有可靠、可延展、分布式计算等特点【21。通过Hadoop, 用户能够在不了解系统框架内部结构的情况下很方便地开发出分布式程序,所以 Hadoop分布式系统架构得到了大量的应用。MapReduce编程模式和HDFS分布式文件 系统,是Hadoop框架的核心。由于Hadoop是开源的,具有强大的功能和良好的扩展 性,现在已有很多机构和企业利用其进行研究和开发。因此,结合Hadoop平台来进行 数据挖掘的研究,通过将现有的算法移植到Hadoop平台从而实现大数据的挖掘任务, 具有非常重要的意义。1.2研究现状1.2.1Web日志挖掘国内外研究现状 1996年,Etzioni第一个提出了Web挖掘的概念,即:Web挖掘就是用数据挖掘的技术自动从Web的文档和服务中发现和抽取信息【3】。与Kosala和Blockeel[4】相似Qingyu Zhang和Richard s.SegallTM建议将Web挖掘分解成如下组成部分: 资源发现:定位Web上不熟悉的文档和服务。 信息选择和预处理:从新发现的Web资源中自动抽取和预处理特定的信息。 概括:发现在个别网站和在多个站点的一般模式。 分析:挖掘模式的验证和解释。 虚拟化:以一种可视的、容易理解的方式展示互动分析的结果。万方数据 第一章绪论Kosala和Bloakeel建议根据数据的种类将Web挖掘分为三种类型,分别为信息挖 掘,链接结构挖掘和用户导航模式挖掘。信息挖掘也称为Web内容挖掘,指的是从Web 内容中,包括文本、图像、音频、视频等挖掘有用的信息。链接结构挖掘旨在对Web 页面质量整体进行判断,这就是Web结构挖掘。Web结构挖掘试图从页面的链接结构 中发现通用的模型。模型是在超链接的拓扑结构的基础上的,这些超链接可以带链接的 描述或者不带。Markov连环模型可以被用来分类Web页面,同时它也可以被用来生成 像不同网页中的相似性和关系之类的信息。最后,用户导航模式挖掘关注的是用户在访 问页面时的行为,这就是Web日志挖掘,指的是从Web服务器中发现用户访问模式。 Web日志数据包括Web服务器访问日志、代理服务器日志、用户数据、注册数据、用 户会话、脚本、用户查询、收藏夹数据、鼠标点击和滚动或者其他任何交互数据。 由于Web上的半结构化的数据比存储在商业数据库系统中的数据更加复杂和动态 化,搜索、理解和使用这些数据是一个更大的挑战。Web挖掘◆◆◆Web内容挖掘Web使用挖掘Web结构挖掘、 r、r1r’r、 r、rWeb文本挖掘Web多媒体挖掘访问模式追踪个性化使用追 踪链接挖掘内部结构挖掘URL挖掘图l-1 Web挖掘分类Web挖掘结构如图1.1所示。Hart和Chang[6J认为将数据挖掘应用到Web页面排序 中有助于Web搜索引擎高效地找到Web页面,并且可以加强Web点击率分析。语义数 据可以大大提高关键词搜索的质量并且指出研究的问题,从而有效地使用数据挖掘开发 网络。语义分析包括挖掘Web搜索引擎数据和分析Web上的链接结构,自动分类Web 上的文档,挖掘网页语义结构和页面内容,以及动态挖掘网页。网页动态是在内容、结 构和访问模式的背景下网页如何变化的研究。已经有很多发表的论文17d oJ都是关于Web 挖掘研究的,包括Web内容挖掘、Web结构挖掘和Web日志挖掘。 Web日志挖掘关注的是在用户与Web或者与网站的交互中能够理解用户的行为。 其中一个目标就是利用信息来帮助网站重新组织或者帮助网站能够更好的适应用户。 Web日志挖掘模型是一种对服务器日志的挖掘,它的目标是通过从日志中得到有用的用 户访问信息来使得网站在适应用户需求方面更加完美,更好的服务用户并且得到更多的 经济利益。已经有很多Web日志挖掘的研究14,11,12,13】存在。 已经有很多Web日志分析工具可以从网页上的日志中挖掘信息。日志记录包含大 量有用的信息包括URL、IP地址和时间等。分析和发现日志可以帮助公司发现更多潜 在的用户、页面受欢迎程度(一个页面被访问的次数)等。这些信息可以帮助公司重组 网站,使得该网站能够提供更快更便捷的用户访问、提高链接和导航的效率、吸引更多 的广告投放、得到更好的网站架构、更有效的监视网站。 大多数用来挖掘【llJ的数据都是从Web服务器、客户端、代理服务器或者服务器数 据库收集来的,所有这些都会产生噪声数据。因为Web挖掘对噪声数据是敏感的,所 以数据清洗是必须的。Jaideep Srivastava和R.Cooley将数据预处理分成了几个子任务,2万方数据 第一苹绪论并且发现预处理的最终输出数据应该是可以通过页面访问、会话和点击流等唯一识别一 个用户的数据。点击流最应当受到关注,因为它们允许用户导航模式的重建。 Markov模型已经被广泛用户模拟Web用户在网站上的导航行为。Jianhan Zhu和Jun Hong等人【14】提出了一个叫做CitationCluster的聚类算法,这个算法可以将概念上关联的页面聚集在一起。聚类的结果被用来构建网站的概念上的层次结构。基于Markov模型 的链接预测是和层次结构整合在一起,以帮助用户在网站上的导航。 在之前的几年时间里,用户导航会话的收集有很多种表示方式,例如HyperProbabilistic Text笙[1Sl 寸Grammar(HPG)、N?GramModel和Dynamicclustering based morkov modelOWeb访问模式树(WAP.tree)存储着高度压缩的访问顺序,挖掘基于WAP.tree的频 繁访问序列只需要扫描事务数据库两次。然而,在该算法中重复地产生条件WAP.tree 在一定程度上影响了效率。考虑到WAP.tree的缺点,结合挖掘最大访问序列的需求,TAN Xiaoqiu、YAOMin等人Il 6】改进了WAP.tree并且引入拘束的子树结构来解决大量条件WAP.tree是建立在传统算法上的问题。现在已经有很多关于Web日志挖掘算法的 研究,这些算法利用Web日志记录来发现有用的知识从而用于支持商业应用和决策制 定。知识发现中Web日志挖掘的质量取决于算法和数据。Yu.Hui Tao和Tzung―PeiHong等人的研究开发出了一个新的叫作潜在的浏览数据(IBD)的数据源,可用来提高Web日志挖掘应用的效率。IBD是用户浏览网页的一种行为,比如“复制”、“滚动”或者 “保存”,但是这些行为并不保存到Web日志文件中去。最近,有很多Web日志挖掘 算法【l昏18J发表,这些算法是用来挖掘用户导航行为的。分区是一个最早的被应用在Web 日志挖掘中的聚类的方法Il引。 基于Web的推荐系统对于向用户推荐网页是非常有用的。Web日志挖掘推荐系统 被提出来去预测用户的意图。我们可以考虑到基础域的语义知识对提高推荐的质量的帮 助。整合语义网和Web日志挖掘可以完成在大量动态网站中的推荐系统【l 9。。根据用户的点击流,可以预测用户未来的动向和意图。Mehrdad Jalali和Norwati Mustapha等人开 发了一个模型,该模型是用来通过Web日志挖掘系统来在线预测的,并且提出一种方法,该方法用来分类用户的导航模型,从而预测用户的未来意向。这个方法是基于最长 相同子串算法来分类当前用户行为的,以此来预测用户的动向。 当前预测用户在特定网站意向的推荐系统还不能令人满意。为了有效地提供在线预 测,M.Jalali和N.Mustapha等人开发了一个叫作WebPUM的推荐系统,这个运用Web 目志挖掘系统来做在线预测的系统,提供了一个新颖的方法来分类用户导航模式,以此来预测用户未来的意向。这个方式是基于新的图像分割算法来为用户的导航模式建模。该模式用最长公共子序列算法来分类当前用户的活动以预测用户的下一个动作。表1.1 显示的是Web日志挖掘方法的总结。表1.1 Web日志挖掘方法作者Jaideep Srivastava,R.Cooley Jianhan Zhu等 Borges and方法 统计分析、关联规则 聚类算法(Citation Cluster) 动态聚类的方法 改进的WAP树 浏览数据的分类 基于Web的推荐系统 最长公共子序列算法WebPUM应用 个人网站修改等 构建网站的一个概念上的层次结构 代表用户网络导航会话的集合 顺序模式挖掘 决策支持 预测用户的意图和他们的导航行为 预测用户最近动向 预测用户最近动向发表日期2000 2002 2004 2006 2007 2008 2009 20lOM.LeveneTAN Xiaoqiu,YAO Min等Yu―Hui Tao,Tzung-PeiHong等 Mehdi Hosseini等Mehrdad Jalali等M.Jalali等如何快速准确找到用户需要的信息并且提供私人的服务是网络的需求。竞争日益激 烈的电子商务逐渐加强了对电子标志的关注。Web日志挖掘对于电子商务和远程教育平 台非常重要。万方数据 第一章绪论1.2.2云计算国内外研究现状 传统计算方式难以适应海量Web日志分析,云计算技术则正适合做这项工作。目 前,在全世界范围内,最大的云计算使用者和领导者要数Google了,该公司发表了云 计算的三大利器,即Google File System、MapReduce和BigTable,其中MapReduce是 云计算最核心的技术之一,现在,个人用户可以运用Google公司开放的Google App Engine来进行基于Google数据中心的云计算的开发。 Hadoop已经成为公认的新一代大数据处理平台。Hadoop是一个能够对大量数据进 行分布式处理的软件框架。它以Google发布的MapReduce以及Google的文件系统研究 论文为基础。Hadoop充当着众多“大数据”分析工具的底层技术,旨在对由Web访问、 服务器日志以及其它各类数据流所产生的海量数据进行筛选,在分布式环境下提供海量 数据的处理能力。分布式系统采用Hadoop架构,使得云计算可以在个人电脑上运行, 对硬件要求不是很高,大大节省了硬件的成本,同时,Hadoop架构也比较容易操作, 非常适合应用在本系统中。1.3论文主要工作目前已有一些日志分析工具,但是其功能并不完善。本文的系统是基于作者所在实 习公司的实际项目,目的在于发现用户浏览网站时的偏好路径,已有的日志分析工具不 能达到该目的。本文主要完成一个基于Hadoop的Web日志分析系统。具体来说,首先 对这个系统的预处理进行了分析,结合应用实际说明本系统的预处理过程;然后介绍该 系统的关键算法,该系统采用数据挖掘方法对Web服务器中日志数据进行分析,目标 在于寻找用户访问网站时的访问轨迹,即页面之间的跳转关系,所以需要应用数据挖掘 中的关联规则方法,本系统中运用关联规则Apriori算法,首先分析了经典的Apriori算 法,然后对比分析了三种并行化Apriori算法的实现,接着提出并实现了一种优化的并 行Apriori算法,并进行实验说明该算法的可行性和高效率;最后是本系统的实现,分 别分析了系统的三个模块的具体实现。1.4论文结构简介本文后续章节内容如下: 第二章,主要介绍系统相关技术研究。包括Web日志挖掘的基本理论和Hadoop的 整体架构。首先说明Web挖掘基本理论;伴随着网络的发展,网络上的上网日志数据 越来越多,这些数据蕴含着大量的信息,如何从中挖掘出有意义的信息便成了人们的一 个新的关注点,所以本文接着说明Web日志挖掘基本理论。然后详细阐述Hadoop的整 体架构,分别介绍了Hadoop的两个核心技术,HDFS(分布式文件系统)和MapReduce (分布式计算框架),同时,指出Hadoop在处理海量数据方面的优势 第三章详细介绍了本文的基于Hadoop的Web日志分析系统的需求分析和总体结构 以及系统的工作流程等。 第四章介绍日志预处理工作,具体对日志文件中数据进行数据清理、数据继承、数 据变换和数据规约等。第五章介绍了本系统的核心算法――Apriori算法。介绍了Apriori基本算法和它的三个经典的并行化实现,以及其结合MapReduce的实现,接着对三种实现的算法进行 分析,最后提出并实现了一种更适合在Hadoop上运行的Apriori算法。 第六章设计并实现了一个基于Hadoop的W-eb日志分析系统,并将前面提出的 Apriori算法运用于该系统中。4万方数据 第二章相关技术研究第二章相关技术研究2.1Web挖掘基本理论Web挖掘基础 万维网被证明有海量的数据,并且这些数据的总量和用途都在以指数级的形式增长。2.1.1与传统数据挖掘方法相比,Web数据挖掘方法需要处理异构的、半节构化或者是非结构 化的数据【201。 Web数据挖掘指的是从海量Web数据中发现潜在的、有意义的、对现实生活有指 导意义的知识的过程,这些知识包括模式、概念、规则、约束、规律和可视化的形式等。2.1.2Web数据的特点 (1)异构数据库环境 (2)分布式数据源 (3)半结构化(4)动态性强 (5)多样复杂性2.1.3Web数据挖掘的分类 根据挖掘的目标数据的种类,一般将Web数据挖掘分为Web内容挖掘(WebContentMining)、Web使用挖掘(Web Usage Mining)和Web结构挖掘(Web (1)Web内容挖掘(Web Content Mining)Structrue Mining)。Web内容挖掘是指从大量Web页面的内容中提取出对用户有用的信息和知识的过 程。Web页面的内容包括Web页面上的文本信息、Web页面上的多媒体信息等。Web 内容挖掘与搜索引擎相似,但是两者之间也有不同。搜索引擎是根据用户的输入关键词 进行查询,它只查找页面的内容信息,而Web内容挖掘可以进行详细的分析和处理, 它不仅关注页面内容信息,还关注这些信息的特点以及相互之间的关系,最终可以实现 资源的自动搜索功能。Log Mining),是将数据挖掘技术应用到 Web数据中,通过分析服务器中的日志文件,从而找到用户的访问模式的过程【211。它可 以帮助网站优化结构,为用户提供更个性化的服务,带来更大的商业效益。 (3)Web结构挖掘(Web Structure Mining)(2)Web使用挖掘(Web Usage Mining) Web使用挖掘也称Web日志挖掘(WebWeb结构挖掘指的是从Web上网页的结构以及页面上的超链接中发现知识和模式。 Web页面文件和普通文本文件不同,它包含了大量的超链接信息,这些超链接信息包含 了不同Web页面间的联系,通过分析这些超链接信息,我们可以发现一个网站内部各 个页面之间的联系,也可以发现各个网站之间的联系,在这个基础之上,我们可以根据 挖掘出来的超链接信息,对网站上页面之间的组织结构进行优化,以帮助提升用户体验, 提高网站的效率。2.2w曲日志挖掘理论如图2.1所示,Web日志挖掘主要分为三个主要任务,这一节详细讨论这三个主要 的任务。万方数据 第二章相关技术研究|至竺三卜―-竺苎苎銎卜―-竺兰坌竺l图2-1 Web日志挖掘过程2.2.1预处理 按理来说,预处理过程是Web日志挖掘过程中最复杂的一个过程,因为日志数据 是不完整的。除非,在客户端运用追踪机制,只有IP地址、代理和服务器端的点击流 可以用来辨别用户和服务器会话。下面是几个常见的问题: 服务器池,用户可以通过该服务器池来访问因特网。一个独立的代理服务器可能会有多 个用户访问一个网站,有可能还会在同一个时间段。f1)单个IP地址、多个服务器会话一因特网服务提供商(ISPs)通常有一个代理(2)多个IP地址、单一服务器会话――一些ISPs或者私人工具会将用户的几个IP(3)多个IP地址、单个用户――一个用户用不同的机器访问网络,对于每个会话会地址分配给每个请求。在这种情况下,一个服务器会话就会有多个IP地址。 有不同的IP地址。这便使得追踪同一个用户的多次访问变的困难。(4)多个代理、单个用户――同样,一个用户用多个不同的浏览器,即使是在同一台电脑上,也会显示为多个用户。 假设每个用户已经被识别出来了(通过脚本、登陆或者IP/代理/路径分析),每个 用户的点击流必须划分成会话。由于从其他的服务器来的页面请求通常不可用,这就很 难判断一个用户是否已经离开了网站。对应用户离开网站,文献【24J建议可采用30分钟 的超时机制,以此来将点击流划分为各个会话。当一个会话ID被嵌入到每个URI时, 一个会话的定义就被内容服务器设置了。 当存储的是服务器日志中用户请求的行为时,有时候就有必要访问内容服务器里的 信息。由于内容服务器可以保存每个活动会话的状态变量,内容服务器中包含了怎样的 用户请求信息不是每次都可以在URI中找到。预处理使用数据的最后一个问题是推断缓 存的页面引用。 表2.1显示的是一个Web服务器中存储的日志的例子(第一列在实际服务器日志中 是没有的,这里加入为了方便叙述)。IP地址123.456.78.9上有三个会话,而IP地址 209.456.78.2和IP地址209.456.78.3代表了第四个会话。将引用(Referrer)和代理(Agent) 结合在一起,第1.1l行可以分为3个会话,分别是A.B.F.O.G,L.R和A.B.C.J。将路径补充完整,第一个会话为A…B O…FF撑 l IP Address l 23.456.78.9 Time 25/Apr/1998:03: 04:41.0500 2 123.456.78.9 25/Apr/1998:03: 05:34.0500 25/Apr/1998:03: 05:39-0500 4 l23.456.78.9 25/Apr/1 998:03: 06:02.0500 5 l 23.456.78.9 251Apr/1998:03: 06:58-0500 25/Apr/1998:03: 07:42.0500 7 l 23.456.78.9 25/Apt/1998:03: 07:55.0500 25/Apr/1998:03: 09:50.0500BG,第三个会话变成A.B.A.C-J。如果不用cookie,嵌入的session ID或者是客户端数据收集方法,就无法判断出第12行和13是一个服务 器session。表2.1 Web服务器日志例子Method/I瓜I巾rotocol”GET A.html H1TP/1.0” “GET B.html H11P/1.O” “GET L.html H1vrP/1.0” “GET F.html H11'P/1.O” “GET A.html H11'P/1.0” “GET B.html H11.P/1.0” “GET R.html H11’P/1.0” ”GET 200 140 L.html 200 200 200 050 Status 200Size290ReferrerA。gentMozilla/3.04(Win95,I) A.htmlMozilla/3.04(win95,I)3l 23.456.78.9200130Mozilla/3.04(wha95,I)B.html096 290050Mozilla/3.04(Win95,I)Mozilla/3.Ol(XlI,IRIX6.2,IP22)A.html1,6l 23.456.78.9200Mozilla/3.Ol(XlI,IRIX6.2,IP22)1,Mozilla/3.04(Win95,I) Mozilla/3.01(X1 1, I,IRIX6.2,IP22)8123.456.78.9C.htmlH1TP/1.0”200820A.html6万方数据 第二章相关技术研究(续表2.1)9 l 23.456.78.9 25/Apt/1998:03: 10:02.0500 10 123.456.78.9 25/Apr/1998:03: 10:45.0500 ll 123.456.78.9 251Apr/1998:03: 12:23.0500 12 209.456.78.2 25/Apr/1998:05: 05:22.0500 25/Apffl998:05: 06:03―0500 “GET O.html H11P/1.0” “GET J.html HTTP/I.0” “GET G.html HTTP/1.O” “GET A.htmI H1’Ip/1.0” “GET D.html HTrP/I.0” 200 290 200 220 B.html 200 430 C.html 200 270 F.htmlMozilla/3.04(Win95,I) Mozilla/3.01(Xl 1, I,IRIX6.2,IP22)Mozilla/3.04(Win95,I)Mozilla/3.04(Win95,I)A.html13209.456.78.3200680MozillaJ3.04(Win95,I)2.2.2模式发现 模式发现是将很多领域的方法结合在一起,比如统计学、数据挖掘、机器学习和模 式识别。从别的领域拿来的方法必须要考虑在Web挖掘中数据抽取方面和先验知识的 不同。举个例子,在关联规则发现中,市场一篮子分析的概念不需要考虑事务被选择的 顺序。但是,在Web日志挖掘中,一个服务器会话是一个用户请求页面的一个顺序。 再者,由于唯一识别用户会话的难度比较大,会应用到其他的先验知识,详细内容将在 第四章中介绍。 (1)统计分析 在用户上网过程中抽取知识的方法中,统计技术是最常用的一种方法。通过分析会 话文件,一个用户在变量上,例如页面访问、访问时间和导航的长度,可以执行不同的 描述性统计分析(频率、平均数、中位数等)。很多网络流量分析工具可以产生一个包含统计信息的阶段性的报告,这些统计信息包括最频繁访问页面、一个页面的平均访问时间或者用户在一个网站的平均访问长度。这个报告可能会包含有限的低级错误的分析, 包括检测未授权的访问点或者找到最常见的无效的URI。尽管缺乏分析的深度,这种知 识可以潜在地提高系统性能、加强系统安全性、便利网站改造任务并且提供市场决策支 持。 (2)关联规则 关联规则的产生会被用于发现相互关联的页面,这些页面是在一个会话中最频繁相 互引用的。在Web日志挖掘环境中,关联规则指的是一系列根据设定特定数值来确定 的连续访问的页面。这些页面可能不是直接通过超链接相互连接的。比如,用Apriori 算法【23J(或者是它的变化)的关联规则发现揭示了用户访问电子产品的页面和运动装备 的页面之间的关联性。除了在商业中和市场中的应用,这些规则的出现可以帮助Web 设计者重建他们的网站。关联规则也可以用于启发,当用户访问远程站点时,可以用来 预提取文档以此减少用户可察觉的延迟。 (3)聚类 聚类是一种用来将一系列具有相同特征的物体聚集在一起的技术。在Web使用领域,有两种有意义的聚类:用户聚类和页面聚类。用户聚类倾向于建立相同浏览模式的 用户群组。这些知识在为电子商务应用划分市场而推断用户数量或者为用户提供个性化的Web内容特别有用。另一方面,页面的聚类会发现有相关内容的分组页面。这些信 息对Intemet搜索引擎和网站协助提供者很有帮助。在这两个应用中,永久和动态HTML 页面可以被创建用来推荐相关链接给用户,这些推荐是通过用户的查询和以往信息需求 的历史。 (4)分类 分类是将一个数据项对应到预先定义好的一个分类中12剞。在Web领域,人们的目 的是找出特定分类的用户的轮廓。这需要抽取和选择最恰当描述一个给定分类的性质的 特征。进行分类,可以利用监督归纳的算法,例如决策树分类树、朴素贝叶斯、k.nearest 相邻分类器、支持向量机等。例如,服务器日志的分类可能导致发现有趣的规则,例如:万方数据 笙三童塑鲞垫查堕壅将上网顺序设置为/produce/music的用户,其中百分之三十是在18.25岁年龄段,并且住 在东部。 (5)顺序模式 顺序模式发现技术尝试找到session之间的模式,这样一组物体的出现是在另一组 之前,是以时间顺序出现的。通过运用这个方法,Web营销者们可以预测未来访问模式, 这将会对瞄准特定用户群投放广告非常有用。另外还有一些可以被用在顺序模式上的分 析包括趋势分析、改变点检测或者相似性分析。 (6)依赖关系建模 依赖关系建模是另一种在Web挖掘中有用的模式发现。这里的目标是开发一个模 型可以表示突出的Web领域不同变量之间的依赖关系。作为一个例子,一个人可能对 建议一个模型感兴趣,这个模型表达的是用户在网店购物时的不同的阶段(例如从一个 简单用户到一系列潜在购买者)。这里有几个概率学习技术可以被用来建立用户的浏览 行为的模型。这些技术包括隐藏的Markov模型和贝叶斯信仰网络。对Web使用模式建 模将不仅提供理论上分析用户行为的框架,而且对预测未来Web资源消耗有潜在的作 用。这样的信息可能帮助开发策略来等价网站的产品的销量或者提高用户导航的便利性。 2.2.3模式分析 如图2.1所示,模式分析是整个Web日志挖掘的最后一步。潜藏在模式分析的背后 的动机是为了从模式发现阶段发现的集合中过滤掉不感兴趣的规则或者模式。具体的分 析方法是由Web挖掘的应用来决定的。最常用的模式分析的形式是由一个像SQL一样 的知识查询机。另外一个方法是载入使用数据进一个数据立方体,从而进行OLAP操作。 可视化技术,例如图像模型或者将不同颜色赋为不同值,可以经常突出数据的全局模型 或者趋势。内容和结构信息可以被用来过滤掉包含特定使用类型、内容类型的页面或者 匹配特定超链接结构的页面。2.3Hadoop体系结构整个Hadoop的体系结构主要是通过HDFS实现分布式存储的底层支持,再通过MapReduce实现分布式并行处理任务的程序支持。2.3.1HDFS体系结构HDFS采用了Master/Slave结构模型,一个HDFS集群是由一个NameNode节点和 若干个DataNode节点组成的。其中NameNode节点为主服务器,管理HDFS的命名空 间以及客户端对文件的访问操作;集群中,DataNode节点负责管理数据。HDFS系统是 以文件的形式来存储数据。从其内部来看,存储的文件被分成了若干个数据块,并且这 若干个数据块存储在一组DataNode节点上。NameNode节点可以执行文件系统中的命 名空间的一系列操作,包括打开文件、关闭文件、重命名文件或目录等,它同时也负责 数据块到具体DataNode节点的统一调度下进行数据快的创建、删除和复制工作。图2.2 所示为HDFS的体系结构。万方数据 第二章相关技术研究图2―2HDFS体系结构图NameNode节点和DataNode节点都可以在普通的计算机上运行。这些计算机的操 作系统通常是GNU/Linux。HDFS是用Java语言来开发的,所以只要是可以运行Java 的计算机就可以运行HDFS,用来部署NameNode节点和DataNode节点。一个经典的 运行HDFS实例是集群中的一台计算机作为一个NameNode,其他计算机分别用来运行 一个DataNode。当然,这里并不排除一台计算机上运行多个DataNode的情况。NameNode 负责管理所有HDFS中存储的元数据,用户需要存储的数据不需要通过NameNode,而 是直接存储在DataNode节点上。 HDFS是分布式存储的基础,Hadoop中的分布式文件系统和其他分布式文件系统有 很多相似的特点: (1)整个集群具有唯一的命名空间。 (2)数据是一致的,都可以一次写入多次读出,客户端在文件创建以前是无法看到 该文件的。 (3)一个文件可能会被分成多个文件块,每个文件块被存储到各个数据节点上,系 统会根据配置用复制文件块的办法来确保数据的安全性。 通过上述介绍和图2.2可以知道,HDFS是依靠三个重要的模块来管理分布式文件 系统的,分别是:NameNode、DataNode和Client。这里可以将NameNode当作是分布 式文件系统的管理者,它的主要责任是管理文件系统的集群配置信息、命名空间以及存 储块的复制等。NameNode会将文件系统中的Metadata存储在内存中,这些信息主要包 括文件信息、每一个文件所对应的文件块的信息(Block)存储在本地文件系统中,保 存了所有Block的Metadata,同时周期性地将所有存在的Block信息发送给NameNode。 Client就是需要获取分布式文件系统文件的应用程序。接下来通过三个具体的操作来说 明HDFS对数据的管理。 (1)文件写入 1)Client向NameNode发起请求,需要文件写入。 2)NameNode根据所请求的文件大小和文件块的配置情况,返回给Client所管理的 DataNode的信息。 3)Cliem将文件划分为多个数据块,按顺序将数据块依次存储到每一个DataNode 中。9万方数据 蔓三望塑茎垫查堕塞 (2)文件读取1)Client向NameNode发起请求,需要进行文件读取操作。 2)NameNode返回文件所存储的DataNode的信息。 3)Client读取文件的信息 (3)文件块(Block)复制 1)NameNode发现部分文件的数据块不满足最小复制数或部分DataNode节点失效。 2)通知各个DataNode互相复制数据块。 3)DataNode进行互相复制。 作为分布式文件系统,HDFS在数据管理方面还有值得借鉴的几个功能:文件块(Block)的放置:一个Block会有三份备份,一份放在NameNode制定的DataNode上,另一份放在与指定DataNode不再同一台机器上的DataNode上,最后一 份放在与指定DataNode统一Rack的DataNode上。备份的目的是为了保证数据的安全 性,采用如上配置方式主要是考虑同一个Rack失败的情况,和不同的Rack之间进行数 据复制时可能会带来的性能问题。心跳检测:用心跳检测的方法来检查DataNode的健康状况,一旦发现有问题就立即采取数据备份,来保证存储数据的安全性。 数据复制(当DataNode失败时,需要对DataNode的存储利用率和数据交互压力等进行平衡):使用Hadoop,可以利用HDFS的balance命令来配置Threshold,这样可以平衡每一个DataNode的磁盘利用率。如果这里设置了Threshold的值为10%,那么执 行balance命令时,首先统计所有DataNode节点上磁盘利用率的平均值,如果某一个 DataNode的磁盘利用率超过这个该值,则把这个DataNode上的Block转移到其他磁盘 利用率低的DataNode上,这一点对于新节点的加入十分有效。 数据校验:采用CR32来进行数据校验。写入文件块时,除了会写入数据以外,同时还写入校验信息,当需要读取的时候,则需要先进行校验后读入。单个NameNode:假设单个NameNode失败,此时任务处理信息将会同时记录在本 地文件系统和远程文件系统中。 数据写入:当客户端需要将文件写入到DataNode上时,首先读取一个Block,之后 写入到第一个DataNode上,然后第一个DataNode负责将其传递到备份的DataNode上, 直到所有需要写入这个Block的DataNode都成功写入后,客户端才开始写下一个Block。 安全模式:在分布式文件系统刚启动的时候,会进入安全模式(在系统运行期间也可以通过命令的方式进入安全模式),当分布式文件系统进入安全模式以后,不允许对文件系统中的内容进行修改和删除。安全模式的目的是为了在系统启动的时候,检查各 个DataNode上存储的数据块的有效性,同时根据规则进行复制或删除部分数据块。在 实际操作过程中,如果在系统启动时修改和删除文件会出现安全模式不允许修改的错误 提示,只需要等待一会即可。2.3.2MapReduce体系结构 MapReduce是并行编程模式,这种模式软件开发者可以很轻松地开发分布式并行程序。MapReduce是一个简单并且易用的软件框架,通过它可以将任务分发到由大量商用 计算机组成的集群上,以一种可靠容错的方式并行地处理大量的数据集,实现Hadoop 的并行处理功能。MapReduce框架是由一个单独运行在主节点的JobTracker和运行在每 个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务, 这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前失败 的任务;从节点仅负责由主结点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和其配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。10万方数据 第二章相关技术研究在Hadoop中,每个MapReduce任务都被初始化为一个Job。每个Job又可以分为 两个阶段:Map阶段和Reduce阶段。这两个阶段分别用两个函数来表示,即Map函数 和Reduce函数。Map函数接收一个<key,value>形式的输入,然后产生同样为<key,value> 形式的中间输出,Hadoop负责将所有相同中间key值的value集合到一起发送到Reduce函数,Reduce函数接收一个形似<key,(1istofvalues)>形式的输入,然后对这个集合的value进行处理并输出结果,Reduce的输出也是<key,value>形式的。 为了方便理解,分别将三个<key,value>对标记为<kl,vl>、<k2,v2>、<k3,v3>,那么 上面所述的过程就可以用图2―3来表示了。厂――]r―]Map广―]Reduce厂――_]厂――] {Input_kl,vl卜―一k2,v2卜―_k3,v3}_Output; i,....,...,,.,.........j}。―,,,..,.,,,,.,..,,..j l一.,...............j}...。...,,,,―,,,.....,一}..............――――,,――j 图2-3 MapReduce程序数据变化下面结合一个WordCount实例具体解释MapReduce工作机制。图2.4是WordCount 程序的执行流程。该WordCount程序的目的是统计每个单词的数量。直线为数据流曲线为控制流图2―4 MapReduce工作的简易图负责控制以及调度MapReduce的Job的是JobTracker,负责运行MapReduce的Job 的是TaskTracker。当然,MapReduce在运行时是分成Map Task和Reduce Task来处理 的,而不是完整的Job。简单的控制流大概是这样的:JobTracker调度任务给TaskTracker, TaskTracker执行任务时,会返回进度报告。JobTracker则会记录进度的进行状况,如果 某个TaskTracker上的任务执行失败,那么JobTracker会把这个任务分配给另一台 TaskTracker,直到任务执行完成。 上图中有两个Map任务及一个Reduce任务。数据首先按照TextlnputFormat形式被 处理成两个InputSplit,然后输入到两个Map中,Map程序会读取InputSplit指定位置地 数据,然后按照设定地方式处理该数据,最后写入到本地磁盘中。 Reduce会读取Map的输出数据,合并value,然后将它们输出到HDFS上。Reduce 的输出会占用很多的网络带宽,不过这与上传数据一样是不可避免的。图2.5更具体地 说明了WordCount执行时地数据流。万方数据 第二章相关技术研究|fileO 1:hello world bye worldfile02:hello hadoop bye hadoop卜酬…棚蚋刚TedxtInpu肌≯捌嚣卜盆jl卟d10h曲叩咖h‰p、:蔓涉2.4hell01 hadoopl bye 1 hadoopl hell02 world 2 bye 2 hadoop 2/夕\~,/j弋图2.5 WordCount数据流程图Hadoop的应用数据的非结构化已经成为企业的重大挑战。由于这些数据的结构问题以及大数据类型的复杂关联,导致无法应用现有的传统技巧进行大数据分析。这为企业带来了新的任 务,需要开发一套全新的方法,不仅能够处理传统数据,而且可以便捷地分析和应用这 些新兴数据。Hadoop恰恰可以满足大数据分析这种需求。 Hadoop已经成为公认的新一代大数据处理平台。Hadoop是一个能够对大量数据进行分布式处理的软件框架。它以谷歌发布的MapReduce以及谷歌文件系统技术研究论文为基础。Hadoop充当着众多“大数据”分析工具的底层技术,旨在对由Web访问、 服务器日志以及其它各类数据流所产生的海量数据进行筛选,在分布式环境下提供海量 数据的处理能力。 Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。它以计算元素和存储会 失败为前提,维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 以并行的方式工作,通过并行处理加快处理速度,能够处理PB级数据。此外,Hadoop 依赖于社区服务器,所以它又具有低成本的优点。 目前,几乎所有的主流厂商都提供了基于Hadoop的大数据分析工具。如IBM、EMC、 英特尔、甲骨文等都纷纷投入到Hadoop怀抱。 IBM很早就开始在实验室尝试使用Hadoop,但是,直到2012年才推出了首款大数 据分析产品:IBM InfoSphere Biglnsights。该产品既可以分析数据库中的传统结构化数 据,也可以分析例如文本、视频、音频、图像、社交媒体、点击流、日志文件、天气数 据等非结构化数据,帮助决策者根据数据迅速采取行动。 EMC基于Hadoop的发行版本Pivotal HDs可以让数据团队和分析团队在该平台上无缝共享信息、协作分析。其最大的优势是能够与Greenplum数据库进行整合,而不仅仅是在Hadoop中运行SQL这么简单。 英特尔推出的Hadoop发行版不但改写了Hadoop框架的核心功能,强化对处理器 指令集的支持来提高效能,可直接支持Xeon进阶运算加密指令集AES―NI,并在数据 存储到HBase的过程,用芯片原声的加密功能保护,这是英特尔进军大数据的杀手锏软 件。 甲骨文推出了Oracle大数据平台解决方案,该方案为Exadata+大数据机+Exalytics 的组合,利用这“三驾马车”分别应对数据捕获、组织、分析和决策。利用大数据机来 捕获所有可用数据,通过Hadoop来将不同类型的数据组织为易分析的数据;然后再利 用Exadata进行分析,其中Exalytics将起到加速B1分析过程的作用。12万方数据 第二章相关技术研究在企业的实际应用中,Hadoop技术提高了企业处理大数据的能力。海量Web日志 的数据量每日激增,尤其是非结构化数据的无序增加,给企业的数据处理带来了极大的 挑战,本系统就是在公司应用的基础上,为了解决大数据分析这一问题而设计开发的。万方数据 第三章系统需求分析与总体结构第三章系统需求分析与总体结构随着互联网的飞速发展,网络上的数据量正在激增,在用户访问网站时如何为用户 提供高质量的用户体验是一项重要的课题。这包括了解用户对网站的浏览兴趣,掌握用 户的访问规律,并有针对性地调整策略,推荐服务等等。因此为网站设计一个Web日 志分析系统是十分必要的,本节将详细介绍Wreb日志分析系统的总体结构设计。3.1系统需求分析互联网上的网站用户来源广泛,具有不同的知识背景、不同的年龄层次、不同的兴 趣、不同的访问目的、不同的浏览方式,他们在网站上的浏览行为背后隐含了其需求和 兴趣,当用户访问W曲站点时,所有的浏览信息都会记录在Web服务器的日志中。分 析Web日志,挖掘用户行为,就可以发现一些潜在的规律,从而可以了解用户在网站 上的访问模式和兴趣爱好,有助于优化网站的组织结构和空间设计,改善网站设计策略, 在用户频繁访问路径上设置用户感兴趣的信息,提高Web服务器的信息服务质量。为 用户提供更好的个性化服务,动态调整网站结构、页面内容和外观,使其更加符合用户 的偏好和信息需求,减轻用户搜索和过滤海量信息的负担。 本文设计开发一个基于Hadoop的W-eb日志分析系统。通过该系统网络管理者可以 随时对网站的日志进行分析,随时了解网站的访问情况,了解用户的需要和爱好,了解 页面间的依赖关系,从而改善网站的结构和性能。另一方面该系统对访问网站用户而言 也有重大的意义,他们可以在改进的网站上快速、便捷地找到自己所需要的资源,甚至 享受页面推荐服务。 该Web日志分析系统能够对导入的日志数据进行过滤清洗以及用户识别、会话识 别、事务识别,同时对用户频繁访问的页面进行直观的统计分析,报告用户对页面浏览 的详细情况。系统的重要功能在于给出页面间的关联规则,运用本文提出的改进Apriori 算法给出较精确的、简洁的关联规则,同时将结论展示给用户。3.2系统总体架构设计结合以上需求分析和Web日志分析系统的特点,本文构建基于Hadoop的Web日 志分析系统,本系统各个层之间相互依存、相互协作,从而实现数据传递、信息共享和 服务支持等。 (1)应用层 应用层是一个人机交互的界面,相当于用户与后台系统的数据路由。用户根据自己 的需求,通过界面上的各个输入按钮将请求提交给后台,经过一系列数据调用和算法执 行,服务器将处理结果反馈给界面,最后以列表、图形等形式展示出来。 (2)逻辑控制层 逻辑控制层主要负责对系统的各个功能模块进行逻辑控制,主要功能是对挖掘出来 的模式以及统计结果进行逻辑判断和筛选,以确保挖掘结果的正确性,并且运用可视化 技术将用户需求的结果准确地显示出来。 (3)模式分析层 模式分析层是本系统最核心、最关键的一部分,该层对Web日志挖掘算法提出了 很高的要求,因为本系统的主要任务是利用合理的关联规则挖掘算法对Web日志数据 进行挖掘,挖掘算法用Hadoop架构中的MapReduce计算模型来实现,并将算法主函数 封装在这一层,以供随时调用,高效地执行算法。该层的数据来源是日志预处理后的事 务型数据。14万方数据 笙三兰墨丝重垄坌堑皇璺堡笙塑至于关联规则挖掘算法的选取、具体的算法执行步骤,本文将在第五章中详细阐述。 本文将提出一种改进的Apriori算法进行关联规则挖掘,结合Hadoop架构,提高系统效 率。 H)日志预处理层 日志预处理层主要是对Web日志数据进行预处理。原始日志数据中往往含有噪声 或与模式挖掘无关的冗余数据,为了净化数据和减少数据库存储压力,预处理层对原始 数据经过数据清洗、用户识别、会话识别、路径补充和事务识别等预处理过程后,得到 事务型数据,这些数据被转存HDFS中,为后续模式发现做好充足准备。关于数据预处 理的详细过程和结果将在第四章中探讨。 (5)持久数据层 该层主要负责系统内所有数据的存储,包括采集到的原始日志、日志预处理后的数 据以及与处理过程产生的中间数据,它是通过Hadoop架构中的分布式存储系统HDFS 来维持和管理。3.3系统工作流程与模块设计按照数据挖掘的一般流程,本文设计的基于Hadoop的Wreb日志分析系统具体由日 志预处理、模式发现和模式分析三个工作流程组成,如图3.1所示。图3-1系统工作流程(1)日志预处理 要对采集后的web日志文件进行分析,面临的第一个问题就是web日志数据预处 理问题。服务器中的最原始的日志数据无法直接交付给各种挖掘算法,因此,必须按照 所使用的挖掘算法对原始数据进行处理,目的在于把服务器日志抽象、转换成相应算法 能够识别的数据结构。日志文件中数据的好坏、类型直接影响着后续的挖掘结果和精度。 (2)模式发现 模式发现就是运用各种数据挖掘技术发现隐藏在数据背后的规律和模式。这些技术 通常是我们熟知的统计分析、数据挖掘、机器学习、模式识别和人工智能领域中已开发 的算法或方法。本系统通过分析关联规则算法,提出一种改进的Apriori算法,具体算 法流程将在第五章中详述。 (3)模式分析 模式分析是整个Web日志挖掘过程的最后一个步骤。模式分析的目的是根据具体 的实际应用,过滤掉模式发现阶段得到的若干没有用的规则或模式,而将有用的模式转 化成知识。数据挖掘阶段获取的无关或冗余模式通过评估来确定。Web日志挖掘同其他 的数据挖掘任务相同,最终是要面向用户的,因此最终将挖掘出来的感兴趣规则呈现给 用户。万方数据 笙三童墨竺重查坌堑皇璺竺笙塑3.4本章小结本章主要介绍了Web日志分析系统的总体结构设计、数据结构和大致工作流程。 本系统各工作流程中,最为关键的是日志预处理阶段和模式挖掘阶段。因此本文将在第 四章和第五章中重点介绍这两个阶段的实现。16万方数据 第四章Web日志挖掘预处理第四章Web日志挖掘预处理对于任意一个数据挖掘的项目来说,首要任务就是建立一个可以用于统计规律和数 据挖掘的数据集,尤其是在Web日志挖掘应用中,因为Web日志挖掘的数据源是从多 种渠道汇聚而来,它包括点击数据流数据等相关联的数据。建立起可挖掘的数据集的过 程在Web日志挖掘中通常也是花费时间最多的一项,并且通常还会用到其他领域不常用的算法。预处理的关键在于从原始数据中提取出对数据挖掘有用的数据模式,将来自不同数据源的数据整合在一起并将其转化成可供数据挖掘应用直接使用的数据。这就是 Web日志挖掘的预处理的过程。该过程的工作具体包括在进行数据挖掘之前,对原始的 日志文件中的数据进行数据清理、数据继承、数据变换和数据规约等。不同的预处理结 果会对Web日志数据挖掘算法产生一定的影响,所以合理的预处理是进行数据挖掘的 有效前提。4.1web日志挖掘预处理概述来自不同结构的数据源很容易受到噪声干扰,为使数据挖掘结构更准确,提高数据挖掘质量,在进行数据挖掘之前,首先应该对数据源进行预处理。4.1.1数据预处理的重要性在现实中的大型数据库的特点是:大量的数据中总会有缺失的记录和不一致的数据 的存在。导致这些问题原因有很多,比如,有些属性是感兴趣的但不一定是可用的,像 电子商务中的客户的信息;另外有一些数据是有用的,但是却并没有存储在数据库内, 这些数据可能在数据录入的时候就被当作不关心的数据而丢弃掉。 噪声数据的形成原因是多方面的,比如:输入数据的设备出现错误导致的问题,用 户的错误输入,或者是数据的传输失真,以上这些原因都可能会导致噪声数据的出现。 如果数据挖掘使用含有噪声的数据进行挖掘,可能会导致挖掘结果出现失误或者产生错 误,甚至会使无法得到结果。所以,在数据挖掘之前需要根据不同的数据挖掘目的,采 取相应的方法对原始数据进行数据预处理,提高原始数据的质量,从而提高数据挖掘的 效率,得到准确的挖掘结果。高质量的数据使高质量数据挖掘的前提,所以在数据挖掘 进行之前先进行数据预处理使非常重要的一个步骤。4.1.2数据预处理方法数据预处理的目的是消除冗余数据、噪声数据、不完全数据、稀疏数据。为了满足 这一需求,一般包括如下方法12州61。 (1)数据清理 数据清理指的是对原始数据进行处理,使噪声数据光滑、删除离群点和错误数据、 补充缺省值,进而识别事务对象的过程。在数据挖掘中,如果发现一些属性明显和数据 挖掘的目的无关的,应该从原始数据中删除这些属性并选择合适的属性用于数据挖掘, 从而有效地进行数据挖掘,否则整个数据挖掘过程将会因为无意义属性影响挖掘效率。 通常情况下对于属性地选择要根据具体数据挖掘的目的进行,主要应遵从以下五个 原则【27】: 1)明确数据源中的属性名称的含义。在现实的数据仓库中,操作人员可以理解和 记住一些属性的名称和含义,但往往实施数据预处理和数据挖掘的人员并不知道这些属 性的名称和含义。所以在数据清理阶段,要求对意义不是很清楚的属性进行处理,使其 具有明确的意义。万方数据 第四苹Web日志挖掘预处理2)统一多个数据源中的相同属性。数据挖掘过程中可能会涉及多个数据表,为了 保证整个数据挖掘过程的准确性,就必须要统一各个数据源中对同一属性的描述。 3)删除重复或者唯一的属性。在原始数据集中,如果使用唯一属性作为记录标识 的,其不会形成模型,应该将其删除。而重复的属性往往也会影响数据挖掘的效率,因 此只需保留一个,其余的属性删除。 4)删除可忽略字段。当原始数据集中某一个属性严重缺失数值的时候,这个属性 已经不能用户建立有用的模型了,但是数据挖掘算法并不会认为该属性没有意义,所以 这样的属性应该删除掉。 5)合理选择关联字段。在数据集中如果一个属性可以由另一个或多个属性推导计 算出来,可以推断这些属性间关联度很高。在数据挖掘中相关联的属性的作用是一样的, 所以可以选择其中一个属性进行挖掘,从而提高数据挖掘的效率。 (2)数据集成 数据集成指的是将来自多个源数据中的数据进行整合,并且能够理解模糊的语义, 将整合后的数据存储起来。数据集成包括模型集成、数据冲突的检测与处理以及数据冗 余。 1)模型集成:指的是从多个不同的数据库中提取源数据,对数据格式进行统一, 消除语义上的歧义,消除数据重复和冗余。所以,模型集成一般使用数据库中的原始数 据来进行模型识别,从而避免模型集成过程中发生太多错误。 2)数据冲突的检测与处理:数据集成过程中最困难的就是解决语义的歧义,比如, 在现实生活中的一个实体,因为在数据中的编码和表示的不同,将会得到不同的属性值。 3)冗余:数据的冗余是在数据集成的过程中产生的。比如,在同一个数据库中, 同一个属性的名称却不相同、或者同一个属性多次出现等。解决这个问题的方法是使用 数据相关联分析的方法进行数据库中属性间冗余的检测,并删除冗余。 (3)数据变换 数据变换指的是将数据统一变换成适合数据挖掘的形式,该过程主要包括数据光滑、 数据聚集、数据泛化和数据规范化12引。 1)数据光滑:指的是去处数据中的噪声。该技术包括分箱、聚类和回归等方法。 2)数据聚集:指的是聚集汇总数据。比如,可以先汇聚一天的销售数据,然后再 汇聚周、月季度和年的促销量。 3)数据泛化:指的是通过概念上的分层,用高层的概念替换原始数据或底层数据。 比如:属性的分类中,灌木类树,即可泛化为树这一高层次的概念。 4)规范化:将属性值按照一定的比例来缩放,将数据规范在一个特定数值区间内, 如O―1.0。 (4)数据归约 数据归约又叫数据缩减或者数据浓缩,指的是已经被辨别出来需要进行数据挖掘的 数据集,使数据挖掘在数据选择的基础上,对数据的进一步简约,保证不丢失原有语义, 将初始数据转化成一种更加紧凑的数据形式。 数据集的归约表示可以通过数据归约来进行,虽然数据规约使数据量有所减少,但 其仍然具有数据完整性,不会对数据挖掘的结果造成影响。与没有进行数据规约的数据 进行对比发现,对归约后数据进行数据挖掘时,不仅提高效率,而且减少数据挖掘所占 空间和时间,最后产生同样的挖掘结果。通常数据归约采用如下方法: 1)维归约。维归约指的是对数据中的属性进行选择,其中最主要的方法时筛选法。 筛选法指的是根据挖掘标准选择属性的集合,用来区分能力较强的属性子集。例如,在 原属性A的基数中选择属性B的基数,其中B<=A,并且B维属性空间和A维属性空 间的概率分布是相同的。万方数据 第四章Web日志挖掘预处理通过维归约,使得挖掘对象的数据量有所减少,提高数据挖掘处理过程的效率:另 外由于挖掘对象的属性减少了,生成的规则也简化了,同时也增强了规则的可理解性。 2)数据聚集。数据聚集指的是按照数据仓库中的计算元和微粒度的不同,按照实 际的需求,对数据进行字段合并和记录压缩等预处理,是对原始数据进行统一的一个过 程。例如,对销量数据统计时就将月销量,季度销量以及年销售量的数据按照地区进行 统计。 为了提高数据挖掘效率,可以根据数据挖掘的目的对挖掘对象进行聚集,这样可以 在很大程度上减少挖掘对象的数量,并且也不需要进行其他额外处理。 3)属性值归约。分为两个方面:第一是符号属性的合并,第二是连续值属性离散 化。符号属性的合并可以被用作判断两个属性是不是与决策属性相独立,从而决定是否 合并属性。连续值属性离散化是指在属性的值域内,设定若干个划分点,从而将该属性 的值划分到各个离散区间中去。 4)数据压缩。指的是根据特定算法处理数据,以提高数据的传输和运算效率。 5)数据抽样。数据抽样指的是使用相对较小的数据样本来代表大的数据集。该过 程利用统计学的抽样方法。4.2web日志挖掘预处理流程在数据挖掘中,解决数据质量的问题是数据挖掘的基础,所以为了提高数据挖掘的 效率,提出了数据预处理技术。特别是在Web日志挖掘应用中,数据预处理的过程显 得尤为重要,该过程可以为数据挖掘提供简洁、干净、准确的数据源,从而更有利于快 速有效的挖掘出有价值的信息。数据预处理一般包含以下几个步骤:1、数据清理;2、 用户识别;3、会话识别;4、路径补充;5、事物识别【29-311。 如图4.1为Web日志挖掘数据预处理的流程。图4.1数据预处理流程19万方数据 蔓婴垩些!旦查笙塑堡竺里 本系统中的数据源为Web日志服务器中的日志数据,下面是该日志数据中的一条 目志,该日志数据作为本系统中日志预处理的输入。05:50:29.227 112326195756659―702881184 MozillaJ5.0(compatible; MSIE 9.0;Windows NT 6.1;Tfidenff5.0)1 90532 MSN NZ MSN―Portal Homepage 2012―12―17http://msn.CO.nz/?ocid=hmlogout在上述例子中,2012―12.17 05:50:29.227是Datetime,112326195756659是cookie,一702881184是IP地址,Mozilla/5.0(compatible;MSIE 9.0;WindowsNT6.1;Tfidenff5.0)是UserAgent,这其中包括用户浏览网站的操作系统信息和浏览器信息,190532是LocationID,MSN NZ为Publisher,MSN-Portal为Site,Homepage为AgencyLocationName,http://msn.CO.nz/?ocid=hmlogout为ReferringURL,即为用户访问的前一个页面。 4.2.1数据清理 数据清理指的是按照数据挖掘目的,对服务器日志数据进行一系列的处理。通常该 过程会因为不同的网站的数据而不同,包括合并相关记录,删除无用记录(包括图形和 声音文件)132J。数据清理过程常用方法如下: (1)删除无用属性。本文的数据挖掘应用用到的日志文件中包括如下属性,日期、 cookie、IP、UserAgem、Location、Publisher、Site、AgencyLocationName和ReferringURL, 其中Location、Publisher、Site和AgencyLocationName对本数据挖掘应用意义不大,所 以删除这几个属性。 (2)删除用户的请求方法为post的日志。 (3)删除与请求信息无关的记录。当用户请求一个网页的时候,会自动下载与该网 页相关内容,包括声音、图片、视频等,所以删除后缀名为iPg、CSS、gif等的文件。 (4)删除用户请求失败的记录。下面分别介绍不同状态码的返回结果:以2为开头 的状态码代表用户请求已经被服务器成功接受和理解。以3开头的状态码代表可续断还 要进行下一步操作才能完成整个请求,一般来说代表重定向。以4开头的状态码代表客 户端发生了错误,服务器无法处理。以5开头的状态码代表服务器请求过程中有异常。 所以,在数据清理过程中,应该删除状态码为4和5的数据。 (5)删除用户访问频率很小的页面。 经过数据清理之后,上述例子中删除无用属性,变为2012.12.17112326195756659-702881184 05:50:29.227 NT 6.1;Mozilla/5.0(compatible;MSIE 9.O;WindowsTrident/5.0、http://msn.CO.nz/?ocid=hmlogout。本文所采用的数据清理的算法会将无意义的属性删除,同时也会删除无关记录、错 误记录、post请求。在进行数据清理的时候,会根据数据挖掘的目的不同而选择不同的 数据清理的算法,本文试图通过用户访问模式试图发现页面之间的联系。 4.2.2用户识别 一个用户会多次访问同一个网站,服务器会用日志记录用户的多个访问会话,以用 户记录的形式来表示同一个用户的活动序列。Web日志挖掘可以识别访问站点的用户, 是对用户的个性化分析和用户聚类的基础。但是现实网络世界中存在着防火墙、代理服 务器和本地缓存,使得识别每个用户的过程变得很复杂。例如: (1)不同的用户可以在同一时间,通过同一个代理服务器访问Web服务器。 (2)同一个用户可能通过不同的机器访问Web服务器。 (3)在同一台机器上安装了多个浏览器,同一个用户可能使用多个浏览器访问Web 服务器;不同的用户也可能通过同一个浏览器访问页面。 如下表4.1显示了不同的用户识别的方法13引。20万方数据 第四章Web日志挖掘预处理表4.1用户识别方法方法 IP和代理 用户注册Cookie描述 用IP和代理表不一个 用户 用户注册并显示登陆 网站 在客户端保存用户访 问标识 调入浏览器后返回使 用数据 使用浏览器跟踪用户隐私程度低 中优点 易用 用户可以用不同机器 上网,精确识别用户 可以跟踪用户的重复 访问 可以准确跟踪用户重 复访问 可以获得用户整个访 问数据缺点 不能保证用户识别 的唯一性 用户需要注册,存 在局限性 有些用户不使用 cookie,便无法跟踪 可能会被禁用 必须经过用户同意 使用的浏览器中/高 中/高 很高软件代理 修改浏览器通常情况下会采用如下方法来区分用户: (1)如果在服务器日志中,发现不同的IP地址,则认为是不同用户访问数据库。 (2)如果在服务器日志中,如果IP地址相同,但是如果采用不同的浏览器或者不同 的操作系统,则认为是不同的用户访问数据库。 (3)如果在服务器日志中,IP地址相同,浏览器和操作系统也相同,则使用网络拓 扑结构来识别用户【3引。 4.2.3会话识别 一个用户会话就是用户一次有效的访问数据库的过程。通过分析用户连续访问的页 面,就可以得知用户对哪些页面感兴趣。在Wreb日志中,如果是不同用户访问的会话, 则认为不是同一个会话。对于一个用户,其访问时间跨度过长,则将该用户的访问看作 多个会话。在会话识别过程中,如果访问的是没有认证机制的网站,则只能依靠启发式 的方法用来会话识别。正确的会话序列可以从点击流的数据中找到网页的信息,进而得 到用户访问网站的行为。 定义l(用户会话):用户会话S是一个用户标识(userid)和一段时间内用户请求 W|eb网页集合(RS)的二元组合,目P<userid,RS>。 上面定义中的RS是右页面标识符Pid和请求时间组成,所以S表示成如下公式:S=<userid,{(Pidl,timel),...,(Pid女,timet))>(1)通过对数据进行用户分析识别,就可以得到用户访问页面的序列,在实际应用中, 为了使发现的用户会话更有价值,我们加入超时的概念来对会话时间作限定。现有两种 设置超时的方法:1、用户会话的时间;2、相邻访问页面的时间范围。 如果运用第一种方法,则公式1中应满足:timek―timeI≤T (2)在公式2中,通常将T设置为30分钟。 第二种方法是检测相邻两个访问页面之间的时间差,如果超过给定的时间范围,则 视为一个新的会话产生,在公式1中,应该满足:time,一time,l≤T(1<i<l()(3)在公式3中,通常将T设置为10分钟。 下面以一个具体的例子来说明会话识别的过程。首先,从Web日志数据中提取的 IP地址是205.194.21-3的用户数据信息,这里用大写的英文字母来表示此用户访问的 URL。表4.2是该用户访问的日志情况。万方数据 第四章Web日志挖掘预处理表4.2 Web日志片段编号l 2 3 4 5 6 7 IP 205.194.21.3 205.194.21.3 205.194.21.3 205.194.21.3 205.194.2l-3 205.194.21.3 205.194.21.3时间00:0l:06 00:03:12 00:03:50 00:10:10 00:15:22 00:16:58 00:40:14URL A B F C 1 L B单个网页用时02:06 00:30 08:30 23:56 05:12 01:36 06:0630分钟,则访问序列变为A…B4.2.4路径补充表4.2中得到的用户访问序列为A.B―F.C.I.L.B。如果用方法l,且设置时间T为F C和I.L.B。如果用方法2,且给定时间T为10分钟, 则访问序列变为A.B、F、C、I.L和B。在整个数据预处理过程中,路径补充是不可或缺的一个过程。通常情况下,客户端 或者代理的缓存功能可能会被缓存的页面和用户的访问导致新访问的页面丢失。举例来 说,一个用户在一个会话中访问了页面C,则页面C在客户端中缓存,当用户在这个会 话中再次访问C时,客户端直接调用缓存中的C页面给用户,而不是重新请求服务器。 因为缓存而丢失的纪录可以通过路径补充来补全,对遗漏的请求将其完整的补充到一个 用户会话中。 如果用户当前请求的页面与上一个页面没有超链接,则可能是该用户点击了后退按 钮,而调用缓存中的已经访问过的页面;或者是在历史中点击的一个链接。由于用户访 问缓存中的网页的方法很多,这里假设所有的访问都是用第一种方法,即点击后退按钮, 来进行访问缓存页面。得到会话为A…B在上一个小节的用户识别过程中,假设使用方法1,即设置时间T为30分钟,则FC和I―L.B,用网络拓扑结构表示该会话如图4.2所示。由用户会话A…B图4-2网站拓扑结构FC可知,用户是从F页面访问的C页面,但是根据图4.2所示的网络拓扑结构来看,说明用户是在访问了F之后使用了后退按钮回到B页面,再继续按 后退按钮回到A页面,然后从A页面链接到C页面,或者是直接从历史中链接了C页 面。同样分析I.L.B会话序列也认为是用户点击后退按钮,最后到达B的。因此会话序 F B.A.C,序列I.L―B补全路径为:A.C.I.C.A.E.L.E.A.B。列补全路径后为:A…B4.2.5事务识别 事务识别的目的是为了找出有意义的会话访问路径,可以将一个用户的全部访问序 列划分成若干个可以代表用户会话的逻辑单元。事务识别可以有很多种方法,包括时间 窗口方法、最大向前引用路径方法【35J和引用长度方法。其中最常用的w曲数据挖掘方 法是最大向前引用路径方法,本文实现事务识别的方法也是这个。 在这个过程中,首先需要找出最大向前引用路径,即事务(一个事务即被看成是一 个最大向前引用路径)。在用户访问过程中,如果发现一个向后引用,则前一个引用被 终止,这里所获得的向前引用路径即所需最大向前引用路径,即一个事务;如果一个会 话结束,也可以获得一个最大向前引用口引。这里以一个已经进行了路径补充的会话序列A…BF B.A.C和A.C.I.C.A.E.L.E.A.B}

我要回帖

更多关于 点击日志 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信