基于Hive的海量搜索日志分析系统研究
2023-01-16
来源:易榕旅网
第30卷第11期 计算机应用研究 Vo1.30 No.11 2013年11月 Application Research of Computers Nov.2013 基于Hive的海量搜索日志分析系统研究 赵龙,江荣安 (大连理工大学计算机学院,辽宁大连116024) 摘要:针对传统分布式模型在海量日志并行处理时的可扩展性和并行程序编写困难的问题,提出了基于Hive 的Web海量搜索日志分析机制。利用HQL语言以及Hadoop分布式文件系统(HDFS)和MapReduce编程模式对 海量搜索日志进行分析处理,对用户搜索行为进行了分析研究。对用户搜索行为中的查询热点主题、用户点击 数和URL排名、查询会话的分析结果对于搜索引擎的排序算法和系统优化都有一定的指导意义。 关键词:Hadoop;MapReduce;HQL语言;Web日志;搜索引擎;用户行为分析 中图分类号:TP391 文献标志码:A 文章编号:1001—3695(2013)11・3343—03 doi:10.3969/j.issn.1001—3695.2013.11.035 Research of massive searching logs analysis system based on Hive ZHAO I ng,JIANG Rong—an (School ofComputer,Dalian University ofTechnology,Dalian Liaoning 116024,China) Abstract:Aiming at the bottlenecks of traditional distirbuted programming model for scalability and parallel programming, this paper proposed a massive Web searching log analysis mechanism based on Hive.By using HQL language,Hadoop distrib ̄ uted ifle system(HDFS)and MapReduce programming model,it conducted an analysis on user searching behaivors,relevant information taking into consideration including hot keywords in the query,the relationship between user clicks and URL rank・ ing and query sessions.The resuh of the analysis has a certain guiding significance to the search engine ranking algorithms and system optimization. Key words:Hadoop;MapReduce;HQL language;Web logs;search engines;user behavior analysis 户可以在不了解分布式底层细节的情况下开发分布式程序,能 0引言 充分利用集群的优势对海量数据进行高效处理,是大规模数据 在互联网高速发展和迅速普及的背景下,网络信息膨胀速 处理的一个理想的解决方案。 度呈现指数级增长。作为当前网络信息检索的主要工具,搜索 Hadoop的核心由HDFS和MapReduce两部分组成。HDFS 引擎已成为人们访问互联网资源的重要途径。通过记录和分 提供了一个稳定的文件系统,采用Master/Slave主从架构 , 析用户的行为特征,认识用户意图和兴趣来改善搜索引擎的性 由一个管理节点(NameNode)提供元数据服务,负责管理整个 能,为用户提供更加个性化的信息服务。 文件系统,Ⅳ个数据节点(DataNode)负责存储,定位数据块。 通常搜索引擎的Et志记录用户与搜索引擎交互的主要行 MapReduce是Hadoop下一个可用于海量数据处理的并行编程 为信息,是研究分析真实的网络用户行为的主要途径和载体, 模式 J。它把分布式计算抽象为Map和Reduce两个集合操 这种分析方式也逐渐被产业界和学术界所采纳。比如在2O世 作,通过键值对(key/value)的方式用于海量数据的并行计算。 纪90年代中期,Cockburn等人 分别对用户浏览行为进行了 1.2 Hiw数据仓库 调研分析。1998年,Silvemtein等人 对商业搜索引擎的用户 Hive 5 是一个基于Hadoop的数据仓库的基础架构,一种 日志进行了大规模的分析。 可以存储、查询和分析在HDFS中大规模数据的机制。它可以 然而,一般大型的搜索引擎日志都是海量文件。传统对于 用来进行海量数据提取、转换、加载(ETL)[6 J。Hive定义了简 超大规模的数据文件的处理都是通过分而治之的思想,在分布 单的类SQL查询语言(HQL),经过对语句进行解析和转换,最 式的环境下采用多线程多任务进行分解。这样编程难度比较 终生成一系列的MapReduce任务进行数据处理,提供使用者 高而且可扩展性不强。本文采用基于Hadoop分布式的架构, 部分与传统RDBMS一样的表格查询特性和分布式存储计算 能很好地处理海量数据文件。 特性。Hive架构如图1所示。 1相关技术介绍 a)用户接口Hive主要有CLI、client和WUI三个用户接 口。其中命令行接口(CLI)是最常用的;Client是Hive的客户 1.1 Hadoop分布式系统 端,用户连接至Hive server;需要指出Hive server所在节点,并 Hadoop是Apache基金会下的一个分布式的系统架构,用 且在该节点启动Hive server;WUI通过浏览器访问Hive。 收稿日期:2013-03-11;修回日期:2013—04-23 作者简介:赵龙(1983.),男,新疆博乐人,硕士研究生,主要研究方向为计算机网络应用、信息安全(maxzhao—dut@sina.eoln);江荣安,男,副教 授,主要研究方向为计算机网络、信息安全. ・3344・ 计算机应用研究 OVERWRITE into TABLE sogou第30卷 log PARTITION(ds=‘2008— b)元数据存储Hive中的元数据包括表的名字、表的列和 分区及其属性、表的属性、表的数据所在目录等。Hive将元数 06-01’)。 据存储在数据库中。 e)解释器、编译器、优化器完成HQL查询语句从词法分 析、语法分析、编译、优化以及查询计划的生成。生成的查询计 划存储在HDFS中,并在随后由MapReduce调用执行。 d)Hive的数据存储在HDFS中,大部分的查询由MapRe— duce完成。 图1 Hive架构 1.3用户行为分析 用户行为分析 是指在获得网站访问量基本数据的情况 下,对有关数据进行统计、分析,从中发现用户访问网站的规 律。对于搜索引擎而言,当前主流以查询关键字为载体进行检 索,因此,用户提交的查询长度、提交的查询次数,以及提交查 询的类型决定了用户传递给搜索引擎的信息内容和信息量。 2基于Hi 的海量日志处理模型设计 2.1 数据集及数据格式 搜索引擎日志文件一般记录用户UsedD(用户使用浏览 器访问搜索引擎时的cookie值)、查询的关键词、被点击的 URL的排名、用户点击的顺序号、点击的URL。例如,某记录 为“8561366108033201[汶川I地震原因]32www.big38.net”,对 应的UserlD是“8561366108033201”,查询词为“汶川I地震原 因”,被点击的URL在结果中排名第三位,用户是第二个点击 的,点击的URL为“www.big38.net”。 2.2系统架构设计 本系统设计的架构如图2所示。具体执行情况如下: 、a)数据采集。 本实验采用的数据是由搜狗实验室(www. sogou.com/labs)提供的2008年6月份用户点击情况的网页查 询日志数据集合。提供的数据有三种,分别为样本数据(877 KB)、一天的数据(148 MB)、一个月完整数据(4.23 GB)。 b)数据预处理。通过对源数据的研究分析,需要对源数 据进行以下三方面的预处理工作:日志切割、数据去重和关键 字中文分词。首先对于4.23 GB的单个日志来说已经算是规 模比较大,同时兼顾Hadoop的性能问题,需要把日志分为合适 的小日志文件;其次是数据去重,数据集中包含有大量重复的 记录,对于同一个用户其搜索的关键字一样的数据需要去除; 最后是中文分词,由于用户输入的关键词有可能是句子或长短 语,这样的话需要对句子进行分词,用更短的关键词表示,本文 采用的是开源的基于H1rrP协议的中文分词软件HTFPCWS进 行处理。把清理后得到的结构化数据分别映射为数据库表,导 人到Hive数据仓库里面,并且将之前切割的数据表分区,在 HDFS进行存储和管理。例如:把日志文件导入Hive数据仓库 的HQL:LOAD DATA LOCAL PATH‘/path/20080601一log.txt’ e)经过a)b)两步后就可以通过HQL对数据仓库进行数 据查询分析,Hive驱动器将接收到的HQL语句发送到编译器, 编译器将HQL语句进行解析为Hadoop的MapReduce程序,从 而提交任务到Hadoop集群上去执行任务。 d)最后Hadoop集群把执行的结果返回给用户用于行为 特征的分析模块。例如:将查询结果输入本地目录的HQL:IN— SERT OVERWRITE DIRECTORY‘/trap/result’SELECT key— words FROM sogoulog a WHERE a.ds=‘(DATE)’。 e)对系统运行的实际情况进行调优,重点在Hadoop集群 性能和Hive的多表连接查询。 图2系统架构 3实验结果分析和系统优化 本文使用了四台Pc搭建Hadoop分布式集群,一台Pc做 主节点(master),同时安装配置Hive,其他三台做从节点 (slavel~slave3),每台Pc机的配置如下:硬件环境为Intel锄 Pentium 4 CPU 3.0 GHz,2 GB内存,300 GB硬盘,100 Mbps网 卡;软件环境为OpenSuse Linux 11.0,JDK1.6.O一27,Hadoop 0.20.203,Hive0.7.0。在实验所用的这一个月的数据集里总共 有51 537 393条记录。通过本系统的分析处理之后,获取了用 户查询主题、用户点击数与URL排名、查询会话分析三个用户 行为特征。 3.1查询主题排行榜 在搜索过程中,用户与搜索引擎的交互都是通过输入的主 题或者关键词来进行的,因此通过分析用户的查询主题对了解 用户的兴趣非常有效,对数据处理后的分析统计结果(按照访 问量排序),共有关键词约为4 685 253个,前100的关键词占 所有关键词总数的62.48%,与余慧佳等人 所测得的70%有 一定的误差,分析得知可能对关键词分词的效果有一定的关 系。但还是充分表明有很多重复的查询请求,如果能提高这些 词的查询质量就能使整体检索的质量提高很多,可以考虑引人 缓存机制和建立动态的索引机制。 3.2用户点击数与URL排名 用户点击顺序与URL的排名关系直接反映出搜索引擎的 好坏,当用户提交一个查询后,搜索引擎可能会返回很多结果。 当然,用户不会全部浏览返回的结果,只会点击跟自己查询目 标关系密切的URL,这就需要搜索引擎排序算法尽可能将反 映用户查询需求的结果放在首页。对本实验数据集的统计分 析结果如图3所示。可以看到,用户点击的排名前10的URL 能占到所有点击率的83.46%。 第11期 3.3查询会话分析 赵龙,等:基于Hive的海量搜索日志分析系统研究 ・3345・ 数据处理模型并将其应用到搜索引擎El志文件处理,对用户的 查询会话是指用户在一段时间里,带着一个固定的搜索意 图提交了一系列的查询。前面两个用户行为特征都是针对单 个查询词进行分析,而这种查询会话的分析更能理解和反映用 搜索行为进行了相关的研究,分析结果对于搜索引擎的检索排 序算法以及个性化搜索具有较好的指导意义,同时也在一定程 度上解决了传统对海量El志数据并行计算的瓶颈。 表1不同规模数据优化前后耗时 户的查询意图。本实验数据集的统计分析结果,通过UserID 找出有37.45%的用户有查询会话。当用户没有找到合适的 结果之后可能会通过添加、删除或者修改查询词来继续,如果 还没有满意的结果甚至会通过更换浏览器或者放弃查询。 8 6 熬÷_l _参考文献: .¨ __:鞲2 ..[1]COCKBURN A,JONES S.Which way now?Analyzing and easing in— _. . adequacies in Www navigation[J].International Journal of Hu- man—Computer Studies,1996,45(1):105-129. ≮0¨ . ..■ 、. [2]SILVERSTEIN C,MARAIS H,HENZINGEDR M,et a1.Analysis of a very large Web search engine query log[J].ACM SIGIR Forum, 1998,33(1):6—12. [3]DEAN J,GHEMAWAT S.MapReduce:symplified data processing on large clusters[J].Communications of the ACM,2008,51(1): 107—113. [4]陆嘉恒.Hadoop实战[M].北京:机械工业出版社,2011:6—7. [5]毛国君,段立娟.数据挖掘原理与算法[M].北京:清华大学出版 社.2005:25—35. [6]朱珠.基于Hadoop的海量数据处理模型研究和应用[D].北京: 北京邮电大学,2008. [7]王川,王大玲,于戈,等.基于用户行为模型的搜索引擎[J].计算 4结束语 用户行为分析是研究信息检索及性能评价的重要工具,搜 索日志反映了用户的使用轨迹,本文通过提出基于Hive海量 机工程,2008,34(4):181-183. [8]余慧佳,刘奕群,张敏,等.基于大规模日志分析的网络搜索引擎 用户行为研究[J].中文信息学报,2007,21(1):109—114. (上接第3338页)间中心作为起始位置可以减少计算时间,提高 定位效率。 the simultaneous localization and mapping problem[C]//Proc of the AAAI National Conference on Artiifcial Intelligence.Edmonton,Cana: da:AAAI,2002:593—598. [5]LIONELMN,LIUYH,LAUY C,et a1.LANDMARC:indoorlocation sensing using active RFID[J].Wireless Networks,2004,10(6): /\ ^ OO 0 701-7l 。一 [6]MAR ̄NEZ-SALA A S,EGEA-LOPEZ E,GARCIA—SANCHEZ F,et a1.Tracking of returnable packaging and transport units with active 循环次数 图14初始中心时误差变化 图l5初始中心时修正轨迹 RFID in the grocery supplychain[J].Computers j0 Industry,2009, 6O(3):161—171. 参考文献: 高锐,程良伦,胡莘.一种基于空间分割的无源RFID室内定位方 法[J].计算机应用研究,2012,29(1):184—186. NI L.LIU Y,PATIL A.LANDMARC:indoor locationing sensing [7]TESORIERO R,TEBAR R,GALLUD J A,et a1.Improving location awareness in indoor spaces using RFID technology[J].Expert Sys- tems with Applications,2010,37(1):894-898. [8]BECHTELER T F,YENIGUN H.2-D localization and identiifcation using of non—active objects using ultra—wideband radios[C]//Proc of R8dio and Wireless Symposium.2007:105—108. based on SAW ID—tags at 2.5 GHz[J].IEEE Trans on Microwave Theory and Techniques,2003,51(5):1584-1590. HIGHTOWER J,VAKILI C,BORRIELLO C.Design and calibration [9]THOMAS F,ROS L.Revisiting trilateration for robot localization[J]. IEEE Trans on Robotics,2005,21(1):93—102. 0f the SponON AD hoe location sensing system[D].[s.1.]:Univer- sity of Washington,Department of Computer Science and Engineer。 ing,2001. [1O]GUEAIEB W,MIAH M S.An intelligent mobile robot navigation technique using RFID technology[J].IEEE Trans on Instrumenta- tion and Measurement,2008,57(9):1908-1917. MONTEMERLO M,THRUN S,KOLLER D,A factored solution to