# sogolog **Repository Path**: zhienchen/sogolog ## Basic Information - **Project Name**: sogolog - **Description**: 大数据基础课程设计——用户查询日志的存储与处理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2021-06-24 - **Last Updated**: 2025-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 课设题目一、用户查询日志的存储与处理 **数据来源:** sohu用户搜索日志数据(一天),[https://www.sogou.com/labs/resource/q.php](https://www.sogou.com/labs/resource/q.php) **系统要求:** 基于Hadoop,HBASE和SPARK实现,语言使用Java、Scale或Python皆可 **数据格式:** ``` 访问时间\t用户ID\t[查询词]\t该URL在返回结果中的排名\t用户点击的顺序号\t用户点击的URL (其中\t为制表符) ``` **系统要求:** (1)数据清洗部分: 实现一个程序,载入文本中的日志数据,每行作为一条记录,分为访问时间,用户ID,查询词,返回结果排名,顺序号,URL这六个字段(列),存入HBASE。 (2)数据搜索部分: 1. 使用HBASE的API实现条件查询功能,例如: “访问时间在1点到2点之间且URL属于百度的网页”等,即能够支持根据六个字段的一个或多个字段内容,使用不同条件(关键字或数值范围)进行联合搜索。具体内容如下: (1)根据`开始时间`和`结束时间`搜索这段时间内的访问记录。输入信息为开始时间和结束时间,用‘`|`’字符隔开) (2)根据`用户ID`搜索该用户的访问记录。输入信息为一个或多个用户ID,用‘`|`’字符隔开 (输入多个用户ID时,要求记录匹配其中任意一个用户的均满足条件)。 (3)根据关键字搜索含有该关键字的`用户查询词记录`。输入信息为一个或多个关键字,用‘`|`’字符隔开 (输入多个关键字时,要求记录匹配其中任意一个关键字的均满足条件)。 (4)根据关键字(如baidu)等搜索相关网站的`URL`访问记录,输入信息为一个或多个关键字,用‘`|`’字符隔开 (输入多个关键字时,要求记录匹配其中任意一个关键字的均满足条件)。 (5)实现以上四个条件任意组合的联合搜索。四个条件之间用’+’字符隔开 (联合搜索要求所有条件同时满足) 要求有条件输入界面,用命令行或UI界面均可。 2. 使用HADOOP的MAPReduce或SPARK的RDD,实现以下功能: + 基于大数据计算技术的条件查询: 使用mapreduce框架或RDD算子,实现类似于HBASE的六个字段条件搜索。 + 时段流量统计: 以`hh:mm:ss`格式输入`起始时间`和`结束时间`,统计这段时间之内的`总搜索次数`、`各个查询词搜索次数`,`各个网站的访问量`。其中网站访问量为根据URL统计网站访问,属于同一个网站的URL算在同一个网站上,如women.sohu.com/20070508/n249762812.shtml,s.sohu.com/20080220/n255256097.shtml,peng.blog.sohu.com等不同的sohu网页都统计为sohu网站的访问次数。 + 用户使用频率统计: 统计每个用户一天内的搜索次数 + 访问行为统计: 根据该页面在搜索结果中的排名(第4字段),统计不同排名的结果被访问的情况。如排名第一的结果被访问次数,排名第二的结果被访问次数…… > 提示: SPARK加载中文要注意使用UTF-8编码,否则可能出现乱码