大数据分析项目.docx
- 文档编号:1871291
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:9
- 大小:45.26KB
大数据分析项目.docx
《大数据分析项目.docx》由会员分享,可在线阅读,更多相关《大数据分析项目.docx(9页珍藏版)》请在冰豆网上搜索。
大数据分析项目
公司简介:
智友是一个年轻的文化品牌,旗下有多个互联网产品线,覆盖生活方式、音乐、创意,时尚等多个领域。
致力发展为最大的年轻人文化出版与发行渠道,挖掘文化领域的年轻力量。
旗下产品音乐软件“xxx”是时下最流行的音乐App,首创弹幕评论交友,独特3D音乐颠覆你的听觉体验。
上线短短数月就受到了百万音乐发烧友的喜爱和追捧,苹果商店音乐免费榜长期稳居前五。
公司业务:
1.发现你不知道的好听音乐、3D立体声音(雨声、场景立体特效声)、趣味声音。
2.首创声音/音乐弹幕评论,让你感觉不再是一个人听歌!
从未有过的听觉社交体验。
3.随时随地录下生活中的精彩,录音变声、拍照变形统统有。
4.制作酷炫的有声表情,和朋友聊天显得更萌萌哒。
5.遇见音乐/声音大咖,轻松结识跟你喜欢同一首歌/音频的朋友。
6.根据你的听歌风格定制属于你的首页歌曲和推荐歌曲。
7.根据歌曲收听量排出每种歌曲类型的热门歌曲。
8.用户录制自己的MV和歌曲上传到echo让更多的音乐爱好者认识你。
9.用户社区,好友圈,看看你的朋友都在聊什么听什么。
项目需求:
1.用户画像,根据听歌风格,每天在线时间,用户收藏了哪些歌曲,总是跳过播放哪些歌曲,来给用户打标签。
2.每天对新上线的音乐进行分类统计,每类歌曲新增数。
3.每天根据用户标签推荐他喜欢的top10歌曲。
4.实时统计用户上传的音乐,MV的数量。
5.每十分钟对用户上传的音乐,MV的收听和点击率情况进行分析统计。
6.每天对用户上传的音乐进行分类化和收听点击率排名。
7.每天更新统计注册用户数和会员用户数。
8.统计手机端APP,android,ios占比度。
9.统计用户听歌的方向性和潮流性,来决定公司需要引进哪些类型的歌曲。
10.用户圈,统计用户圈中讨论最多的热词。
11.发现和你口味相同的朋友并推荐给你。
项目架构:
1.从手机客户端APP,PC,网页中收集用户信息,听歌信息,上传的歌曲。
2.通过kafka推送给mr或spark清洗。
3.重用kafka作为缓存,缓存把数据存储到HDFS上。
4.通过hive进行分析计算。
5.计算结果保存到hbase和mysql中。
6.HBase中的数据可以做用户推荐,热度排行,mysql可以共用户查看个人资料和好友信息,等级等。
需求设计:
1.从埋点日志导出用户听歌信息,用spark清洗出用户听了哪些歌曲,收藏了哪些歌曲,整理出用户喜好的歌曲是哪些风格,把这些风格写到mysql用户信息表相关联的用户歌曲风格表里。
2.用HIVE对HDFS上的每天上线的歌曲做分类统计每类新增数量。
3.从mysql查看用户的喜好歌曲标签,然后在歌曲库中找到对应的分类歌曲推荐给用户。
4.利用spark把用户上传的歌曲从HDFS上导入进来进行一个求和操作,把结果直接导入hbase中。
5.从mysql中的用户注册表中通过注册时间过滤出今天注册的用户,然后进行求和操作,在今天注册的用户中按照字段“会员”条件查找会员用户求和。
设计实现:
1.统计每类新增歌曲数量
从HDFS里导入hive每天分类好的歌曲
每日新增歌曲数量表
字段中文名
字段英文名
字段类型
Id
编号
Int
songName
歌曲名
String
singername
歌手名
String
Style
曲风
String
Date
时间
String
1,演员,薛之谦,流行,2016-3-20
2,告白气球,周杰伦,流行,2016-3-20
3,成都,赵雷,流行,016-3-20
4,espanacani,andrerieu,古典,2016-3-20
5,小桃红,汤旭,民谣,2016-3-20
6,everything,wrld,嘻哈,2016-3-20
7,wake,free,摇滚,2016-3-20
8,长安长安,郑钧,摇滚,2016-3-20
9,loveisakiller,vixen,摇滚,2016-3-20
10,Iremember,dokken,摇滚,2016-3-20
在HIVA下建一个歌曲表
Createtablemusic_160320(idint,songNamestring,stylestring,singerNamestring,datestring)rowformatdelimitedfieldsterminatedby‘,’;
Loaddatainpath‘NewMusic/music_160320/music.txt’intotablemusic_160320;
Hive>selectstyle,count(*)frommusic_160320groupbystyle;
结果为
Stylecount
流行,3
古典,1
民谣,1
嘻哈,1
摇滚,4
2.分析APP埋点信息
Json数据结构(maidian.json)
{"imei":
"864874020839760","phonetype":
"huaweip6","phonesystem":
"Android6.0","user_name":
"周一懵然状","like_music":
"我是不是该安静的走开,真的爱你,灰色轨迹"}
{"imei":
"864874020839761","phonetype":
"huaweip6","phonesystem":
"Android6.0","user_name":
"bigbaby","like_music":
"Laserlife,简单爱,演员,最冷的一天"}
{"imei":
"864874020839762","phonetype":
"huaweip6","phonesystem":
"Android6.0","user_name":
"1993058","like_music":
"最好的我,北国,少年游"}
{"imei":
"864874020839764","phonetype":
"huaweip6","phonesystem":
"Android6.0","user_name":
"小于一","like_music":
"imagine,respect,heyjude"}
{"imei":
"864874020839765","phonetype":
"huaweip6","phonesystem":
"Android6.0","user_name":
"thewho","like_music":
"misty,youreyes,alliwant"}
用spark清洗:
Varmeidian=sqlContext."hdfs:
//jun110:
9000/user/spark/meidian.json")
Varqingxi=meidian.select(”user_name”,”like_music”)
qingxi.save("hdfs:
//jun110:
9000/user/spark/qingxi","json")
json转化成CSV格式的文件:
周一懵然状,我是不是该安静的走开,真的爱你,灰色轨迹
Bigbaby,Laserlife,简单爱,演员,最冷的一天
最好的我,北国,少年游
小于一,imagine,respect,heyjude
thewho,misty,youreyes,alliwant9
从歌曲库中匹配出歌曲的风格类型
User_name
Like_music
style
周一懵然状
我是不是该安静的走开
流行
周一懵然状
真的爱你
流行
周一懵然状
灰轨迹
流行
Bigbaby
Laserlife
摇滚
Bigbaby
简单爱
流行
Bigbaby
演员
流行
bigbaby
最冷的一天
流行
最好的我
流行
北国
民谣
少年游
民谣
小于一
imagine
摇滚
小于一
Respect
摇滚
小于一
Heyjude
摇滚
thewho
misty
轻音乐
thewho
Youreyes
轻音乐
thewho
AllIwant
轻音乐
导入hive进行行转列去除多余字段
Hive>createtableuser_style(user_namestring,music_namestring,stylestring)rowformatdelimitedfieldsterminatedby‘,’;
Hive>Loaddatainpath‘user/user_music.txt’intotableuser_style;
Hive>selectuser_name,concat_ws(‘,’,collect_set(style))fromuser_stylegroupbyuser_name;
用sqoop把结果导入mysql
User_name
Style
周一懵然状
流行
Bigbaby
摇滚,流行
流行,民谣
小于一
摇滚
Thewho
轻音乐
3.统计mysql用户表里每天注册用户数
User_name
varChar
用户名
Passwd
Varchar
密码
Sex
char
性别
Register_date
varchar
注册时间
Createtableuser(user_namevarchar(16),passwdvarchar(16),sexchar
(2),register_datevarchar(20));
Mysql>Select“今日注册数”,count(user_name)fromuserwhereunix_timestamp(register_date)>unix_timestamp()-1*24*60*60;
结果:
今日注册数1230
HBase 性能优化
1.修改Linux最大文件数
Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“TooManyOpenFiles”的错误,导致整个HBase不可运行
查看:
ulimit-a结果:
openfiles(-n)1024
临时修改:
ulimit-n4096
持久修改:
vi/etc/security/limits.conf在文件最后加上:
*softno
*hardno
*softnproc65535
*hardnproc65535
2.修改JVM配置
修改hbase-env.sh文件中的配置参数
HBASE_HEAPSIZE4000#HBase使用的JVM堆的大小
HBASE_OPTS"‐server‐XX:
+UseConcMarkSweepGC"JVM #GC选项
参数解释:
-client,-server
这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。
相反,server模式启动比client慢,但可获得更高的运行性能。
‐XX:
+UseConcMarkSweepGC:
设置为并发收集
3.修改HBase配置:
hbase-site.xml
3.1.zookeeper.session.ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 分析 项目