基于Hadoop的搜索引擎用户行为分析
本文关键词:基于Hadoop的搜索引擎用户行为分析,由笔耕文化传播整理发布。
基于Hadoop的搜索引擎用户行为分析
建高可靠的分布式计算框架。面重点讨论数据去重和热榜分析算法实现。3.2.2 数据去重
Sogou数据集中含有大量重复记录,比如:8510431220399626 [北京+天气]?city=%B1%B1%BE%A9
8510431220399626 [北京+天气]
以上2条记录表示用户连续点击了结果集的2条链接,但在统计分析时只能看作一次查询,需去除重复数据。采用MapReduce并行计算模型的数据去重流程如图2所示。
步骤如下:
(1)首先上传初始日志文件到HDFS,默认将逐行读取日志文件块(默认大小为64MB)并将行号及该行内容映射为初始键值对输入,Map函数将对值部分进行处理并提取session值和查询词,形成中间键值对。
(2)自动合并具有相同键值的键值对,与之对应的多个值被封装在迭代器中,合并后的结果作为Reduce操作的输入键值对。
(3)在Reduce函数中,只需将重复查询词过滤便完成数据去重处理。如需对数据进一步处理,可将Reduce函数的输出键值对作为下个操作的初始输入数据。
算法1 数据去重
map(StringlineNo,StringlineContent){
//lineNo:行号;lineContent:行内容
StringsplitStr[]=lineContent.split();/*拆分字符串*/
//字符串操作,提取session值和查询词 collect(sessionId,term);//收集数据并送至reduce}
reduce(StringsessionId,Iteratorterms){
//sessionId:session值;terms:查询词迭代器 foreachterminterms
3 基于Hadoop的海量日志数据处
理模型设计
3.1 实验环境
我们使用5台PC机搭建基于Hadoop的分布式计算平台,命名为pc1~pc5,其中pc1作Name Node同时也作JobTracker,pc2~pc5作DataN ode和TaskTracker。每台PC机具体配置如下:硬件环境:Intel(R)Pentium(R)4CPU3.00GHz 2;1GB内存;80G硬盘;100Mbps网口。
软件环境:LinuxFedora10;JDK1.6.0_0;Hadoop 0.19.1。3.2 系统设计与实现3.2.1 数据集及数据格式
实验使用的搜索引擎用户行为日志由搜狗实验室[9]提供,一个月内(2006/8/1~2006/8/31)约2200万条Sogou搜索引擎查询及用户点击日志集(约1.56GB)。其中每条查询记录格式见表1。
表1 查询记录日志格式
字段名称 SessionIDQueryTermRank
SequenceNumberURL
说明 用户Cookie信息查询词
被点击URL的排名用户点击的顺序号用户点击的URL
例如,某记录为 6029750673720081[四级成绩] ,则对应SessionID为 6029750673720081 ,查询词为 四级成绩 ,用户点击的URL为 ,该URL在结果中排名为1,用户点击该URL为第1次点击。应用基于Hadoop的分布式计算框架对海量日志进行用户行为分析,统计出用户查询词的平均长度、用户点击与排名的关系、热门词汇搜索等,为搜索引擎性能评价及算法改进提供数据支持。下
图2 Map/Reduce数据去重处理流程
本文关键词:基于Hadoop的搜索引擎用户行为分析,,由笔耕文化传播整理发布。
本文编号:160603
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/160603.html