基于hadoop的音乐推荐系统的设计与实现

摘要:从总体来说,本文实现hadoop音乐推荐系统分为四个步骤。第一,采用网络爬虫技术爬取所需要的音乐数据,进行分析与储存。第二,采用大数据分析技术,搭建hadoop伪分布式平台,利用hive工具对所得的音乐数据进行分析和处理。第三,使用EXCEL自带的工具和功能进行分析,统计,筛选和绘图。第四,使用Java编程,在hadoop平台中,安装Eclipse工具,并进行环境配置,代码编写来实现用户登录与注册,音乐推荐系统的完成以及测试是否正常,过程中是否有错误,验证音乐系统的可用性。从人性化角度来说音乐推荐分为三步,首先获取用户喜爱的音乐数据,第二,从整体的角度,获取大量的用户都喜欢的热门音乐进行推荐,满足大量用户的喜好。第三,完成推荐,生成结果,验证可行。

关键词:Hadoop;大数据分析与可视化;Java编程目录

Abstract: In general, this paper realizes the hadoop music recommendation system is divided into four steps.First, the network crawler technology is used to crawl the required music data for analysis and storage.Second, the big data analysis technology is used to build a hadoop pseudo-distributed platform, and the hive tool is used to analyze and process the obtained music data.Third, EXCEL uses its own tools and functions for analysis, statistics, screening, and drawing.Fourth, use Java programming, in the hadoop platform, install Eclipse tools, and environment configuration, code writing to achieve user login and registration, the music recommendation system and test is normal, whether there are errors in the process, verify the availability of the music system.From the perspective of humanization, music recommendation is divided into three steps, first, to obtain the user's favorite music data, second, from the overall perspective, to obtain a large number of users like the popular music recommendation, to meet the preferences of a large number of users.Third, complete the recommendation, generate the results, and verify the feasibility.

Key words: Hadoop; big data analysis and visualization; Java programming directory

目  录

1前言

1.1课题背景及目的

1.2国内外研究状况

1.3发展趋势

2 hadoop系统平台的搭建以及环境搭建

2.1Hadoop伪分布式平台搭建

2.2环境配置以及相关软件安装

3 音乐数据的处理流程

3.1分析页面

3.2采集数据

3.3开始数据采集

3.4将采集数据导入MySQL

3.5用SQOOP将MySQL数据导入hive

3.6数据预处理

4 Excel数据可视化实现

4.1数据处理

4.2Excel统计筛选

4.3Excel绘图可视化

5 Java编程实现用户登录与注册

结束语

参考文献

1前言

1.1课题背景及目的

在这个互联网飞速式发展的时代,我们的生活方式已经改变。互联网上资源的爆发式增长又产生了新的难题:用户如何去获取有效信息?由于用户接触到的信息非常有限。于是很多提出了许多解决方案,例如搜索引擎,推荐系统等,可以帮助用户快速精准找到所需要信息。

音乐系统的目的就是为了更加方便快捷有效的从音乐网络平台去获取用户所需要的音乐,好听的,人们感兴趣的适合个人的音乐。有的时候,就像一个歌手会拥有几千万粉丝一样,他的一首音乐会被很多人喜欢,大家对于好听的音乐都容易产生共鸣,所以我们可以选择热门歌曲中最受人们欢迎的音乐进行推荐,这样从整体上满足大家的要求。

1.2国内外研究状况

国外研究现状:音乐推荐:是利用音乐网站向客户提供商品信息和建议,帮助用户推荐平时喜欢听的音乐,然后对其进行个性化推荐,便利了用户的收听。国外也有许多热门的音乐网站,例如韩国的MUZ音乐排行榜,韩国Mnet音乐电视台都是韩国人气高的音乐网站,在MNet音乐电视台经常进行大型的音乐颁奖礼,设置多种音乐奖项。Soribada也是韩国音乐网站,是歌曲信息最快的网站,在这个平台上几乎可以找到所有歌曲。韩国还有mufree,oimusic,Bugs等音乐门户网站。美国有Mtv.com,allmusic,lala.com等音乐网站,音乐爱好者在这些网站可以免费试听到最新的歌曲,音乐排行榜,私人的FM,以及音乐的下载。

国内研究现状:在我国,也有许多深受人们喜爱的音乐推荐网站,比如QQ音乐,酷狗音乐,虾米音乐,咕咪音乐等网站,我常听的音乐网站是QQ音乐和酷狗音乐。QQ音乐的主页以及整个网站的页面设计很精美,歌词页面设计的很好看,给人一种精致感,同时可以借助QQ聊天进行音乐的分享,当代的学生大多数都喜欢用QQ进行聊天,所以传播比较方便,在音乐受欢迎榜单第一位。酷狗音乐的最大优势是歌曲收录很齐全,在其他网站听不到的歌曲,在酷狗可以听到,酷狗听歌中自带k歌功能,用户喜欢一首歌曲可以在里面录歌,然后发布去分享自己唱的歌曲并吸引粉丝,有些主播通过直播来吸引粉丝,获得更高的关注度。

1.3发展趋势

流行音乐作为当今社会的一种艺术形式,深受当代年轻人的喜爱,本人作为一名普通的音乐爱好者,平时也有常听音乐的习惯,也经常使用QQ音乐和酷狗音乐等听歌软件听歌,但我在听歌时会面临一些问题。例如,打开了音乐软件,面对大量的音乐,各种专辑,却不知道如何找到自己喜欢听的音乐,有时也不知道想要去听什么音乐。于是常常会去点击音乐排行榜,以QQ音乐排行榜为例,我常听的音乐是QQ音乐热歌榜,QQ音乐飙升榜这两个榜单,或者会打开专辑页面去看看一些流行歌手的专辑,例如周杰伦,邓紫棋,李荣浩,薛之谦,林俊杰等等这些在音乐圈比较有名的歌手。有时也会去浏览一些人收集的歌曲清单,去获取感兴趣的音乐,例如古风,伤感,动感的音乐歌曲清单等等。随着互联网大数据的发展,,大数据技术的发展,人们生活水平的提高,人们对于精神生活有了新的追求,我以上遇到的信息过载的问题,以及我选择浏览热门榜单等方法处理这个问题,都是可以通过大数据平台的搭建,Hadoop环境的搭建以及相关组件使用,实现音乐推荐系统与数据可视化。

2 hadoop系统平台的搭建以及环境搭建

2.1Hadoop伪分布式平台搭建

安装CentOS7操作系统,命名为hadoop0,设置管理员登录以及登录密码,安装window10用于Hadoop资源上传与储存,对虚拟机进行基本环境配置:

  1. 修改主机名为hadoop0,并设置固定IP
  2. 关闭防火墙和新建安装目录(opt/programs)

3)安装和配置JDK

4)配置主机IP映射

5)配置SSH免密码登录本地节点

6)在Hadoop上打开命令提示行,修改配置文件,搭建Hadoop伪分布式环境,格式化HDFS,启动HDFS和YARN,执行Jps命令查看启动的Hadoop相关进程

2.2环境配置以及相关软件安装

  1. 在终端中配置Hadoop开发环境
  2. 在windows中安装和配置JDK
  3. 在Windows中安装和配置Eclipse
  4. 安装Eclipse并配置环境
  5. 为Eclipse安装和配置Maven插件

6)安装MySQL

7)安装和验证Hive8)安装和配置Sqoop

3 音乐数据的处理流程

3.1分析页面

(1)浏览天气网站

打开QQ音乐官网首页(https://y.qq.com/),在导航栏中选择排行榜,如图3-1所示。点击热歌榜,可以看到热歌榜榜单规则为10.01-10.07,踏山河-七叔,自娱自乐-金志文,阿衣莫-陶吉泰组合,晴天-周杰伦等20首热门歌曲。

(2)分析页面数据

我们点击飙升榜,同时可以看到我怕来者不是你(dj版)-小蓝背心,朱雀,画离弦等20首歌曲,再点击流行指数榜,同时可以看到画离弦,危险派对,阿衣莫等20首歌曲,点击听歌识曲榜,同样可以看到20首歌曲,这四个榜单都是用户点击率最多,收听最多的歌曲,代表大众审美,深受QQ音乐听众喜欢,所以我们可以采集这些歌曲用于用户音乐推荐。我们需要分别从四个榜单中爬取音乐数据,分别是QQ音乐飙升榜,QQ音乐热歌榜,QQ音乐听歌识曲榜和QQ音乐流行指数榜,以QQ音乐热歌榜的爬取为例,要从其页面爬取踏山河,自娱自乐,阿衣莫等20首歌曲。

3.2采集数据

(1)首先通过官网下载八爪鱼采集器安装包(如“八爪鱼采集器8.0.6.zip”),解压后,双击其中“八爪鱼采集器Setup8.0.6.exe”文件进行安装。启动八爪鱼采集器,注册账号,完成登录。

(2)新建数据采集任务,单机左侧“新建”,在弹出的列表中选择自定义任务,选择新建任务组,名为QQ音乐热歌榜,采集网址一栏选择手动输入,在网址一栏中粘贴QQ音乐热歌榜的网址,点击测试生成网址,保存设置后即可开始采集。

3.3开始数据采集

分别采集热歌榜页面的序号1-20,歌曲1-20,歌手1-20,选中全部,选择采集链接,采集完成后,单击页面右上方流程开关,分别修改字段名称为序号,曲名,歌手,修改完成后,关闭流程,打开数据预览,如图3-3音乐采集数据预览页面所示,点击保存,用于采集任务的保存。点击开始采集后点击本地采集,即可开始采集任务。

3.4将采集数据导入MySQL

首先在hadoop0节点的MySQL中新建一个“mydb”数据库,并在该数据库中新建一个“music”表,然后将八爪鱼采集器采集到的数据导入到MySQL中的“music”表。

(1)根据采集到的数据,设计一个“music”表,表的列为id,music,singer,在hadoop0节点上启动MySQL,然后执行create命令创建“mydb”数据库并应用该数据库,执行create创建表格命令,在“mydb”数据库下创建一个名称为“music”的表。

(2)在把八爪鱼采集电器的采集完成对话框,单击导出数据,选择导出到MySQL,在显示设置MySQL数据库信息页面,依次指定MySQL服务器名称(hadoop0),用户名称(root),密码以及数据库名称(mydb),完成后,下一步,在数据字段映射关系页面,选择“music”表,使字段名称与“music”表的列一一对应,最后单击导出,导出完成后,即可在安装的NavicatforMySQL中查看“music”表的数据。

3.5用SQOOP将MySQL数据导入hive

首先在hadoop0节点的Hive中新建一个“music”表,然后使用Sqoop工具将MySQL表中的音乐数据导入到Hive中的“music”表。同样的,我们在hive中创建一个名为“music”表。在hadoop里面打开终端,在hadoop0节点上启动Hive,然后再创建一个“music”的外部表,使用命令,将音乐数据导入hive表中,用hive表进行分析。

3.6数据预处理

由于有时候采集的数据并不那么完整,会有缺失和重复,也会有乱码和显示异常,所以我们会使用hive工具进行数据预处理,包括处理缺失值,数据格式化,数据去重,数据分区等,然后将处理好的音乐数据导入Excel表。

4 Excel数据可视化实现

4.1数据处理

打开获取到的EXCEL表格,可以看到里面有说说话,曾经我也想过一了百了,画离弦(柯柯版)等80首歌曲,对序号进行排序后,点击公式页面,选择统计函数COUNTIF对Excel表中的重复歌曲进行计数,QQ热门音乐汇总,可以看到画离弦,危险派对等歌曲的重复次数为3,须尽欢,阿衣莫,晴天等歌曲的重复次数为2,由此可以看出观众对这些歌曲的喜爱程度要高于榜单中的其他歌曲,从整体一方面代表了大众对歌曲的审美,所以我们选择这些歌曲,作为我们的推送歌曲,给用户推荐。

4.2Excel统计筛选

我们对统计后的歌曲进行筛选,选择歌曲重复数高于1的歌曲进行保留,在再对其进行排序,选择升序,排序后可以得到的12首歌曲,从自娱自乐-画离弦(柯柯版),歌曲重复数从2递增到3,进行升序排列。

4.3Excel绘图可视化

使用EXCEL工具,选择插入,插入图表,簇状统计图对12首歌曲进行绘图,可以发现,画离弦(柯柯版),危险派对,我怕来者不是你(dj版)这3首歌曲在图像中重复数明显高于其他歌曲,所以我们在推荐时优先选择推荐这三首歌曲,再接着推荐其他重复数为2的歌曲。

5 Java编程实现用户登录与注册

在hadoop0上打开终端,对eclipse进行下载和配置,使用WCP工具进行eclipse的上传,解压,安装,安装完成之后,打开eclipse,进行用户登录注册的代码编写,构造初始值,构造用户菜单,构造推荐菜单,设置安全退出功能,即为用户登录注册系统,可实现用户登录注册功能以及菜单推荐的功能。可以进行热门音乐的推荐,登录进用户主菜单之后,我们将看到三个选项,选择1为热门音乐推荐,选择2退出系统,选择3返回上一级菜单,我们输入数字1,可以看到推荐了11首音乐,我怕来者不是你,危险派对,画离弦(柯柯版)等三首热门歌曲优先推荐,由此我们可以完成基于hadoop音乐系统的推荐。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐