大数据基础课程设计报告.docx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大数据基础课程设计报告 一、项目简介: 使用hadoop中的hive、mapreduce以及HBASE对网上的一个搜狗五百万的数进行了一个比较实际的数据分析。搜狗五百万数据,是经过处理后的搜狗搜索引擎生产数据,具有真实性,大数据性,能够较好的满足分布式计算应用开发课程设计的数据要求。 搜狗数据的数据格式为:访问时间\t 用户 ID\t[查询词]\t 该 URL 在返回结果中的排名\t 用户点击的顺序号\t 用户点击的 URL。其中,用户 ID 是根据用户使用浏览器访问搜索引擎时的 Cookie 信息自动赋值,即同一次使用浏览器输入的不同查询对应同一个用户 ID。 二、操作要求 1.将原始数据加载到HDFS平台。 2.将原始数据中的时间字段拆分并拼接,添加年、月、日、小时字段。 3.将处理后的数据加载到HDFS平台。 4.以下操作分别通过MR和Hive实现。 查询总条数 非空查询条数 无重复总条数 独立UID总数 查询频度排名(频度最高的前50词) 查询次数大于2次的用户总数 查询次数大于2次的用户占比 Rank在10以内的点击次数占比 直接输入URL查询的比例 查询搜索过”仙剑奇侠传“的uid,并且次数大于3 5.将4每步骤生成的结果保存到HDFS中。 6.将5生成的文件通过Java API方式导入到HBase(一张表)。 7.通过HBase shell命令查询6导出的结果。 三、实验流程 将原始数据加载到HDFS平台 将原始数据中的时间字段拆分并拼接,添加年、月、日、小时字段 编写1个脚本sogou-log-extend.sh,其中sogou-log-extend.sh的内容为: #!/bin/bash #infile=/root/sogou.500w.utf8 infile=$1 #outfile=/root/filesogou.500w.utf8.ext outfile=$2 awk -F '\t' '{print $0"\t"substr($1,0,4)"年\t"substr($1,5,2)"月\t"substr($1,7,2)"日\t"substr($1,8,2)"hour"}' $infile > $outfile 处理脚本文件: bash sogou-log-extend.sh sogou.500w.utf8 sogou.500w.utf8.ext 结果为: 将处理后的数据加载到HDFS平台 hadoop fs -put sogou.500w.utf8.ext / 以下操作分别通过MR和Hive实现 Ⅰ.hive实现 1.查看数据库:show databases; 2.创建数据库: create database sogou; 3.使用数据库: use sogou; 4.查看所有表:show tables; 5.创建sougou表:Create table sogou(time string,uuid string,name string,num1 int,num2 int,url string) Row format delimited fields terminated by '\t'; 6.将本地数据导入到Hive表里:Load data local inpath '/root/sogou.500w.utf8' into table sogou; 7.查看表信息:desc sogou; 查询总条数 select count(*) from sogou; 非空查询条数 select count(*) from sogou where name is not null and name !=''; 无重复总条数 select count(*) from (select * from sogou group by time,num1,num2,uuid,name,url having count(*)=1) a; 独立UID总数 select count(distinct uuid) from sogou; 查询频度排名(频度最高的前50词) select name,count(*) as pd from sogou group by name order by pd desc limit 50; (6)查询次数大于2次的用户总数 select count(a.uuid) from (select uuid,count(*) as cnt from sogou group by uuid having cnt > 2) a; (7)查询次数大于2次的用户占比 select count(*) from (select uuid,count(*) as cnt from sogou group by

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档