基于大数据技术的大学生就业分析系统的研究

2020-02-22 03:09朱永忠
现代信息科技 2020年18期
关键词:大数据分析数据采集

摘  要:从网络招聘网站采集招聘数据,存储于Hadoop分布式集群上,使用MapReduce程序进行清洗、转换为满足分析要求的结构化数据,最后利用数据仓库Hive从职位的区域分布、薪资分布、福利频次、技能频次等四个维度进行分析,为大学生的职业规划、技能学习和就业提供参考建议,为高校的专业建设、课程设置和人才培养提供决策支持。

关键词:大数据分析;Hive;数据采集;就业分析

中图分类号:TP311.13      文献标识码:A 文章编号:2096-4706(2020)18-0128-04

Abstract:A hiring data gathered from the internet recruitment website,stored in the Hadoop distributed on a cluster,use MapReduce program to clean and transform into structured data that meets analysis requirements. Finally,the data warehouse Hive is used to analyze the four dimensions of position distribution,salary distribution,benefit frequency,and skill frequency,provide reference suggestions for college studentscareer planning,skill learning and employment,and provide decision-making support for college professional construction,curriculum setting and talent training.

Keywords:big data analysis;Hive;data collection;employment analysis

0  引  言

近年来,网络招聘因其覆盖面广、时效性强、成本低等特点,逐渐成为大学毕业生求职的主要方式,大学生可以登录招聘网站,只需要输入关键字就可以搜索相关的一些职位信息,这些职位记录数据体量大、类型多样、增长速度快、价值密度低,这些都符合大数据特征,但这些海量数据中潜在着高价值的信息,而这些高价值的信息无法直接获取,需要我们应用大数据技术对海量数据中清洗、规整、分析,得到有价值的信息。一个顶尖的企业网络招聘平台上一个岗位的招聘数据可达几十万条,而且每天还在不断增长,要从这些海量数据中提炼出有价值的信息,如大多数公司都要求职位应具备哪些技能,哪些城市紧缺这样的人才,职位的薪资待遇如何等,就需要大数据分析,大数据分析是全量分析,而不是抽样调查,所以这样的数据比较真实、准确。依据大数据分析的结果,大学生在大学期间就做好自己的职业规划,有针对性地学习相应的技能,向急需人才的公司投递简历,这样有的放矢,求职的成功率就会更高,就会更容易得到自己心仪的职位和薪资待遇。

本文作者从事高等职业院校大數据技术与应用专业的教学工作,已初步具备大数据专业知识和技能,对大数据分析技术有着深厚的兴趣,在学习和研究过程中,体会到大数据分析的重要性,希望将其应用到实际生活中。鉴于大学生在网络招聘中遇到的职位选择困境,故借用大数据分析给学生的就业提供一些参考和建议。

1  项目架构设计

在客户端编写Java网络爬虫程序,从企业招聘网站获取职位数据,存储到Hadoop分布式存储系统(HDFS)中,接着利用MapReduce(hadoop分布式计算框架)对这些非结构化的数据进行预处理,得到结构化的数据再存储到HDFS中,再利用Hive建立数据仓库并装载这些预处理后的结构化数据,然后利用Hive的HQL语句对这些数据进行分析,分析结果通过Sqoop工具从大数据平台导入到客户端的MySQL数据库中,最后利用Echarts工具对MySQL数据库中数据进行可视化展示,整个项目的流程如图1所示。

2  技术实现

因为采集的数据量大,而且数据量在不断增长,所以需要搭建分布式集群进行存储,本项目安装的是Hadoop分布式系统,存储在分布式系统的数据需要进行分析,所以要安装大数据分析工具Hive,分析结果需要导入关系数据库MySQL进行Web展示,所以需要安装Sqoop工具。因为Java语言和Hadoop兼容性好,加上Apache有丰富、成熟的HDFS的Java API,而且数据预处理要编写MapReduce程序,所以Java是开发的首选语言。数据可视化则采用功能强大的Echarts插件,数据可展示为柱状图、饼图等丰富多样的图表,也可采用词云展示某些数据的频次。

2.1  搭建大数据集群环境

本项目集群采用一主两从共三个节点,其中master为管理节点,slave1和slave2为数据节点,参数如表1所示。

2.2  数据采集

数据是一切分析的基础,本文将编写爬虫程序采集某招聘网站“大数据”相关职位的数据,并存储于集群上。

2.2.1  分析网页数据

使用谷歌浏览器Chrome的开发者工具,分析网页的数据结构,了解请求的地址、类型、请求头、请求参数等信息,为下一步编写网络爬虫程序做好准备。

2.2.2  编写网络爬虫程序

使用Eclipse等Java开发工具创建Maven项目,添加爬虫程序所需的HttpClient框架依赖和Hadoop框架依赖,启动集群准备接受采集的数据。

创建封装响应结果的JavaBean类HttpClientResp,该类就是用来封装响应结果的,包括两个属性,其code属性存储的是响应状态码,content属性存储的是响应数据内容,例如:[code=200,content={"success":true,"msg":null,"code":0,…}]。

{kd:大数据,

city:全国}。

创建封装存储在HDFS的工具类HttpClientHdfsUtils,该类是用来将响应数据存储到HDFS上,其中参数URL表示为HDFS的地址,如:hdfs://master:9000,参数fileName为存储在HDFS上的文件名,参数data为存储的数据。

调用上述创建的工具类封装请求头,封装请求参数,获得响应数据,完成从网页中爬取数据并存入HDFS的过程。

2.3  数据预处理

直接从网页中采集的数据类型繁杂多样,数据中夹杂着不完整、重复以及错误的数据,而且大多数数据是我们分析工作所不需要的数据,如果直接进行分析的话,会影响分析效率,甚至会导致分析结果的错误,最终会导致决策的错误。所以数据分析之前,需要进行清洗、转换等处理变成符合Hive分析要求的结构化的数据。

2.3.1  分析预处理数据并设计方案

查看采集的数据的格式,按照数据分析的维度,确定数据分析的字段。我们的这次职位分析主要考查职位的区域(城市)分布、职位的薪资分布、福利标签的频次和技能标签的频次,所以从采集到的繁杂数据中抽取这4个方面的数据,然后进行删减、合并和格式的处理,最终得到结构化的数据,因为采集的数据在HDFS上,所以需要编写MapReduce程序进行数据预处理,处理后的数据还是存储在HDFS上,整个清洗过程如图2所示。

2.3.2  编写MapReduce程序

编写map程序,继承Mapper类,重写map()方法,map()方法是数据清洗的核心代码,因为采集的数据存储在HDFS的数据文件中,且数据文件中有很多数据都是与我们研究、分析无关的数据,需要剔除,还有一些数据格式不规范、不统一,需要进一步删除、合并和转换处理,最后得到我们需要的数据,清洗过的数据仍然存储于HDFS上。

编写清洗主程序,因为清洗程序需要打包并发布到集群中各节点上去执行,所以要在主程序中设置清洗的主程序类,特别是要设置Mapper类,设置切片的大小,设置数据输入文件的目录以及数据输出文件的目录。

将上述编写的预处理程序打成jar包并上传至集群,即将程序移动到各个节点上,让程序直接读取该节点的本地数据,以“移动计算”代替“移动数据”,减少了I/O的开销。

2.4  数据分析

数据分析是大数据价值链中最重要的一环,通过数据分析,我们可以从杂乱无章的数据中萃取和提炼有价值的信息,从而找出研究对象的内在规律,最终为决策提供参考建议。

我们可以使用数据仓库Hive编写HQL语句进行数据分析,HQL语句会自动转换为MapReduce程序,这样大数据分析人员无须编写复杂的MapReduce程序就可以进行大数据的分析工作。

2.4.1  设计hive数据仓库

我们要分析的数据在HDFS上,想要使用Hive对此进行数据分析,就需要设计数据仓库以承载HDFS上的数据。因为我们需要从城市、薪资、福利和技能4个维度进行分析,所以我们需要设计1张事实表和4张维度表,其中事实表如表2所示,城市维度表如表3所示。

2.4.2  分析数据

将Hive的HQL查询语句分析各个维度的数据,并将分析结果导入前面已经建好的表中,最后查詢表得到分析结果。

例如:将职位按区域分布的数据导入到城市维度表city_label中:

hive>insert overwrite table city_label select city,count(1)from jobdata_origin group by city;

2.5  数据可视化

利用数据仓库Hive进行数据分析,结果会以文字的形式呈现在控制台上,不直观,所以需要对数据进行可视化,让数据变得更容易理解,化繁为简,从而实现更有效的决策过程。

(1)利用Sqoop工具将Hive分析结果数据导入客户端MySQL数据库。

(2)编写Web应用程序,并利用ECharts插件Web展示MySQL中的数据,根据展示的结果得出结论和预测。

通过观察图3的职位数在城市分布图,可以看出大数据职位的需求主要集中在大城市,一线城市(北、上、广、深)占据前几名的位置,排名依次是北京、深圳、上海、广州,杭州紧随其后,可能因为阿里巴巴这个互联网巨头起到了不小的带领作用。这几个城市大数据相关职位占据全国的四分之三以上。所以想参加大数据相关职位的从业者可先从这几个城市考虑,机遇相比会高出很多。

通过观察图4的薪资分布,可以了解到全国大数据相关职位的月薪资分布主要集中在11k~30k之间,其中出现频次最高的月薪资区间在11k~15k,最高月薪达80k,平均月薪23k,所以大数据相关的岗位收入可观。

通过观察图5的福利标签的词云图,可以看到大数据相关职位的招聘单位都比较重视“绩效奖金”“五险一金”“股票期权”“技能培训”“节日礼物”等福利。对这些福利比较关心的求职者可以参考。

通过观察图6的技能标签的词云图,可以看到要从事大数据相关工作需要掌握Hadoop、Spark、Hive、Java等技能,想要从事大数据行业的人员或大数据专业的大学生可制定学习规划,有针对地学习并掌握这些技能,为给将来的就业助一臂之力。

3  结  论

通过专业的相关职位的多维度分析,大学生可以提前了解自己所学专业的岗位技能要求、薪资待遇,提前做好职业规划,根据技能要求制定相应的学习计划,掌握相应的技能,为将来就业做好准备,另外及时了解各城市的职位分布会给将来的就业增加成功率。

参考文献:

[1] WHITE T.Hadoop权威指南:大数据的存储与分析:第4版 [M].王海,华东,刘喻,等译.北京:清华大学出版社,2017.

[2] 黑马程序员.大数据项目实战 [M].北京:清华大学出版社,2020.

[3] KIMBALL R,ROSS M.数据仓库工具箱:第3版 [M].王念滨,周连科,韦正现,译.北京:清华大学出版社,2015.

[4] 卢爱芬.基于Hadoop的大数据处理系统分析与研究 [J].现代信息科技,2020,4(2):109-111.

[5] 田银花,韩咚.MapReduce的随机Petri网模型研究 [J].现代电子技术,2012,35(24):92-93+96.

作者简介:朱永忠(1974—),男,汉族,安徽桐城人,教师,讲师,硕士研究生,研究方向:大数据技术与应用。

猜你喜欢
大数据分析数据采集
大数据分析对提高教学管理质量的作用
基于大数据分析的电力通信设备检修影响业务自动分析平台研究与应用
面向大数据远程开放实验平台构建研究
面向大数据分析的信息管理实践教学体系构建
传媒变局中的人口电视栏目困境与创新
CS5463在植栽用电子镇流器老化监控系统中的应用
大数据时代高校数据管理的思考
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究