已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公司简介:智友是一个年轻的文化品牌,旗下有多个互联网产品线,覆盖生活方式、音乐、创意,时尚等多个领域。致力发展为最大的年轻人文化出版与发行渠道,挖掘文化领域的年轻力量。旗下产品音乐软件“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编号IntsongName歌曲名Stringsingername歌手名StringStyle曲风StringDate时间String1,演员,薛之谦, 流行,2016-3-202,告白气球,周杰伦,流行,2016-3-203,成都,赵雷,流行,016-3-204,espana cani,andre rieu,古典,2016-3-205,小桃红,汤旭,民谣,2016-3-206,everything,wrld,嘻哈,2016-3-207,wake,free,摇滚,2016-3-208,长安长安,郑钧,摇滚,2016-3-209,love is a killer,vixen,摇滚,2016-3-2010,I remember,dokken,摇滚,2016-3-20在HIVA下建一个歌曲表Create table music_160320(id int,songName string,style string,singerName string,date string)row format delimited fields terminated by ,;Load data inpath NewMusic/music_160320/music.txt into table music_160320;Hiveselect style,count(*) from music_160320 group by style;结果为Style count流行,3古典,1民谣,1嘻哈,1摇滚,42. 分析APP埋点信息Json数据结构(maidian.json)imei:864874020839760,phone type:huawei p6,phone system:Android6.0,user_name:周一懵然状,like_music:我是不是该安静的走开,真的爱你,灰色轨迹imei:864874020839761,phone type:huawei p6,phone system:Android6.0,user_name:bigbaby,like_music:Laser life,简单爱,演员,最冷的一天imei:864874020839762,phone type:huawei p6,phone system:Android6.0,user_name:1993058,like_music:最好的我,北国,少年游imei:864874020839764,phone type:huawei p6,phone system:Android6.0,user_name:小于一,like_music:imagine,respect,hey judeimei:864874020839765,phone type:huawei p6,phone system:Android6.0,user_name:the who,like_music:misty,your eyes,all i want用spark清洗:Var meidian=sqlContext.jsonFile(hdfs:/jun110:9000/user/spark/meidian.json)Var qingxi=meidian.select(”user_name”,”like_music”)qingxi.save(hdfs:/jun110:9000/user/spark/qingxi,json)json转化成CSV格式的文件:周一懵然状,我是不是该安静的走开,真的爱你,灰色轨迹Bigbaby,Laser life,简单爱,演员,最冷的一天1993058,最好的我,北国,少年游小于一,imagine,respect,hey judethe who,misty,your eyes,all i want9 从歌曲库中匹配出歌曲的风格类型User_nameLike_musicstyle周一懵然状我是不是该安静的走开流行周一懵然状真的爱你流行周一懵然状灰轨迹流行BigbabyLaser life摇滚Bigbaby简单爱流行Bigbaby演员流行bigbaby最冷的一天流行1993058最好的我流行1993058北国民谣1993058少年游民谣小于一imagine摇滚小于一Respect摇滚小于一Hey jude摇滚the whomisty 轻音乐the whoYour eyes轻音乐the whoAll I want轻音乐导入hive进行行转列去除多余字段Hivecreate table user_style(user_name string,music_name string,style string) row format delimited fields terminated by ,;HiveLoad data inpath user/user_music.txt into table user_style;Hiveselect user_name,concat_ws(,collect_set(style)from user_style group by user_name;用sqoop把结果导入mysql User_nameStyle周一懵然状流行Bigbaby摇滚,流行1993058流行,民谣小于一摇滚The who轻音乐3.统计mysql用户表里每天注册用户数User_namevarChar用户名PasswdVarchar密码Sexchar性别Register_datevarchar注册时间Create table user(user_name varchar(16),passwd varchar(16),sex char(2),register_date varchar(20);MysqlSelect “今日注册数”,count(user_name) from user where unix_timestamp(register_date) unix_timestamp()-1*24*60*60;结果:今日注册数 1230HBase性能优化1. 修改Linux最大文件数Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行查看: ulimit -a 结果:open files (-n) 1024临时修改: ulimit -n 4096持久修改:vi /etc/security/limits.conf在文件最后加上:* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 655352. 修改 JVM 配置修改hbase-env.sh文件中的配置参数HBASE_HEAPSIZE 4000 #HBase使用的 JVM 堆的大小HBASE_OPTS server XX:+UseConcMarkSweepGCJVM#GC 选项参数解释:-client,-server这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能。XX:+UseConcMarkSweepGC:设置为并发收集3. 修改HBase配置:hbase-site.xml3.1. zookeeper.session.timeout默认值:3分钟(180000ms),可以改成1分钟说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.调优:这个timeout决定了RegionServer是否能够及时的failover。设置成1分钟或更低,可以减少因等待超时而被延长的failover时间。不过需要注意的是,对于一些Online应用,RegionServer从宕机到恢复时间本身就很短的(网络闪断,crash等故障,运维可快速介入),如果调低timeout时间,反而会得不偿失。因为当ReigonServer被正式从RS集群中移除时,HMaster就开始做balance了(让其他RS根据故障机器记录的WAL日志进行恢复)。当故障的RS在人工介入恢复后,这个balance动作是毫无意义的,反而会使负载不均匀,给RS带来更多负担。特别是那些固定分配regions的场景。3.2. hbase.regionserver.handler.count默认值:10说明:RegionServer的请求处理IO线程数。调优:这个参数的调优与内存息息相关。较少的IO线程,适用于处理单次请求内存消耗较高的Big PUT场景(大容量单次PUT或设置了较大cache的scan,均属于Big PUT)或ReigonServer的内存比较紧张的场景。较多的IO线程,适用于单次请求内存消耗低,TPS(吞吐量)要求非常高的场景。3.3. hbase.hregion.max.filesize默认值:256M说明:在当前ReigonServer上单个Reigon的最大存储空间,单个Region超过该值时,这个Region会被自动split成更小的region。调优:小region对split和compaction友好,因为拆分region或compact小region里的storefile速度很快,内存占用低。缺点是split和compaction会很频繁。特别是数量较多的小region不停地split, compaction,会导致集群响应时间波动很大,region数量太多不仅给管理上带来麻烦,甚至会引发一些Hbase的bug。一般512以下的都算小region。大region,则不会经常split和compaction,因为做一次compact和split会产生较长时间的停顿,对应用的读写性能冲击非常大。 3.4. hfile.block.cache.size默认值:0.2说明:storefile的读缓存占用内存的大小百分比,0.2表示20%。该值直接影响数据读的性能。调优:当然是越大越好,如果写比读少很多,开到0.4-0.5也没问题。如果读写较均衡,0.3左右。如果写比读多,果断默认吧。HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读。写请求会先写入Memstore,Regionserver会给每个region提供一个Memstore,当Memstore满64MB以后,会启动flush刷新到磁盘。读请求先到Memstore中查数据,查不到就到BlockCache中查,再查不到就会到磁盘上读,并把读的结果放入BlockCache。由于BlockCache采用的是LRU策略(Least Recently Used 近期最少使用算法),因此BlockCache达到上限(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年新疆铁道职业技术学院引进笔试真题
- 2023年泉州惠安县招聘国有企业工作人员笔试真题
- 白酒厂节能改造方案
- 2024年企业文化展示系统项目立项申请报告
- 病案复印服务外包方案
- 2024年吡唑啉酮项目申请报告
- 病例研究对照研究报告
- 玻纤风管施工方案
- 玻璃雨棚的施工方案
- 玻璃钢雕塑施工方案
- JGJ/T235-2011建筑外墙防水工程技术规程
- (正式版)HG∕T 21633-2024 玻璃钢管和管件选用规定
- 2024年网上大学智能云服务交付工程师认证考试题库800题(含答案)
- 农产品电子商务智慧树知到期末考试答案章节答案2024年浙江农林大学
- MOOC 电工学(电气工程学概论)-天津大学 中国大学慕课答案
- 特种设备使用单位日管控、周排查、月调度示范表
- 初中语文测试质量分析表(模板)
- 学习王红旭舍己救人光荣事迹心得体会(精选多篇)
- 产科常见的疾病护理诊断及要求措施
- 小学数学教学中的预习
- 基层领导干部的素质要求之浅见
评论
0/150
提交评论