IT行业岗位分析系统设计与实现(Spark+Hadoop)

目 录

摘要 I
ABSTRACT II
1 引言 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容与组织结构 1
2 相关理论与技术介绍 3
2.1 HDFS简介 3
2.2 Spark简介 4
2.3 MongoDB数据库简介 6
2.4 爬虫技术简介 7
2.5 Echarts简介 8
2.6 Pyqt5简介 8
2.7 本章小结 8
3 系统需求分析 9
3.1 系统概述 9
3.2 可行性分析 10
3.2.1 技术可行性 10
3.2.2 经济可行性 10
3.2.3 操作可行性 10
3.2.4 社会可行性 11
3.3 功能性需求 11
3.3.1 数据抓取 11
3.3.2 数据处理 11
3.3.3 数据分析 12
3.3.4 数据可视化 12
3.4 非功能性需求 13
3.4.1 性能需求 13
3.4.2 易用性 13
3.4.3 安全性 13
3.4.4 可拓展性 13
3.5 本章小结 14
4 系统概要设计 15
4.1 系统总体设计架构 15
4.2 数据库设计 16
4.3 数据大屏设计 17
4.4 本章小结 18
5 系统的设计与实现 19
5.1 数据爬取的设计与实现 19
5.1.1 数据爬取流程设计 19
5.1.2 数据爬取实现 20
5.2 数据分析的设计与实现 22
5.2.1 数据分析流程设计 22
5.2.2 数据分析实现 23
5.3 数据可视化的设计与实现 26
5.3.1 数据可视化流程设计 27
5.3.2 数据可视化实现 28
5.3.3 数据可视化结果展示 30
5.4 本章小结 31
6 系统部署与测试 32
6.1 系统架构部署 32
6.1.1 硬件环境 32
6.1.2 Hadoop环境搭建 32
6.1.3 Spark环境搭建 32
6.1.4 系统环境变量配置 33
6.2 系统测试 33
6.2.1 功能测试 34
6.2.2 测试结果与分析 38
6.3 本章小结 38
7 总结与展望 39
7.1 工作总结 39
7.2 工作展望 40
致谢 41
参考文献 42
3 系统需求分析

3.1 系统概述

作为大数据分析系统,数据采集、数据处理、数据分析和数据可视化是IT行业岗位分析系统具备的基本素质。除此之外,本系统在用户交互方面做到了傻瓜式一键交互,按下按键,功能完成。数据抓取、数据存储、数据导入、数据清洗、数据预处理、数据分析、数据挖掘和数据可视化等种种功能都不在话下,通过GUI图形操作界面摆脱了繁琐的实现过程。从意义方面,系统主要处理大量招聘信息数据,对这些数据进行分析,并按需求进行可视化,从中提取招聘者所需要的信息,给用户带来价值。系统功能结构如图3-1所示。
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第1张图片

图3-1 系统功能结构

3.2 可行性分析

可行性分析分别从技术、经济、操作、法律等方面进行研究调查,不仅可以保证信息资源合理利用,还能避免在设计方案过程中因系统错误而造成的问题,以便作出更合理、科学的决策[9]。

3.2.1 技术可行性
IT行业岗位分析系统主要采用Python语言编写,数据分析基于Spark分布式计算框架,数据存储采用MongoDB数据库,数据可视化基于Echarts数据大屏,GUI界面交互基于Pyqt5。
(1) Python是一种免费、开源的高级开发语言,它的功能强大,内置多种数据处理模块和第三方库,语法简单且可拓展性强,使用Python语言开发系统,省去了大量繁琐的工作[10]。
(2) Spark是Apache基金会专为大规模数据处理而设计的计算引擎,它不仅运行速度块,而且支持多种语言编程,还兼容Hadoop框架,可以访问多种数据源。
(3) MongoDB是一个高可靠性、高性能、面向列、可伸缩的分布式存储-系统,可以在廉价PCServer上搭建大规模结构化存储集群。
(4) Echarts是一款数据可视化图表库,能够提供直观、生动、可交互、个性化的数据可视化图标。开源、免费、使用简单,基于Html5,有着良好的动画渲染效果。
(5) PyQt是一个创建GUI应用程序的工具包,是Python语言和Qt库的成功融合。它开源免费,具有极高的稳定性和生态支持。
综上所述,IT行业岗位分析系统开发技术具有极高的可行性。

3.2.2 经济可行性
IT行业岗位分析系统采用的主要技术包括Python开发语言、Spark分布式计算框架、MongoDB数据库、Echarts可视化图表库以及PyQt5开发框架等。所有技术开源免费,且Spark兼容Hadoop架构,均可以部署在廉价PC上。系统开发成本低、开发周期短,易于维护,具有较高的经济可行性。

3.2.3 操作可行性
系统的操作可行性,也称系统可用性。本系统使用PyQt5开发的GUI操作界面简洁美观,所有操作集成于交互按钮,可实现所有功能一键完成。数据展示使用的Echarts可视化大屏,模块划分明了,图表直观、生动,具有互动性。简化了用户操作流程,降低了操作门槛,具有极高的操作可行性。

3.2.4 社会可行性
IT行业岗位分析系统是自行设计、研发的系统,系统设计到的关键技术都是开源的。需要注意的是爬虫技术应当在法律和网站允许范围内进行数据抓取,要做到安全规范,不影响目标网站的正常运作,因此本系统完全具有法律可行性[11]。

3.3 功能性需求

系统主要使用Python语言进行编写,面向对象式的函数式编程是它的众多优点之一[12]。针对这一特性,系统每个功能模块都应该是一个对象,整体运行时,相互写作完成系统主体功能,分开运行时,每个模块都能独立运行,可以单独进行开发、修改和测试。这样的优点是方面日后调试和升级。根据岗位数据分析业务需求,IT行业岗位分析系统主要包含数据抓取、数据处理、数据分析和数据可视化四个模块。

3.3.1 数据抓取
随着科技的迅速发展,互联网已经成为大量信息的载体,人们可以通过访问网页来获得所需要的信息。其中51Job作为招聘网站中的佼佼者,各方面比较均衡,但是搜索目标不够精确。为了更加有效地利用资源,获取我们所需要的招聘信息,本系统选择应用爬虫技术定向获取相关招聘信息,其中功能点描述如下:
(1) 内容爬取:编写爬虫程序,对已经解析好的目标网站URL进行解析,抓取需要的招聘信息。本系统将地区和关键技术作为关键字检索招聘信息进行抓取。
(2) 解析数据:从网页端抓取的数据通常是乱码的,需要用特定的编码格式对其进行解析,转换为易识别的信息。
(3) 数据上传:将抓取到的招聘信息写到本地CSV文件中,并上传到HDFS文件系统,方便Data节点对数据文件的访问。

3.3.2 数据处理
时代的快速发展,伴随着每天数不尽的数据量增长,其中更是包含了占据相当多比重的杂乱数据、其中有空缺着的不完整数据,有完全重复的冗余数据,也有不符合存储要求的无效数据。虽然非关系型数据库的出现解决了脏数据的存储问题,但对其如何处理却依然是数据分析挖掘的一道难关。数据分析对数据的规范性有着及其严苛的要求,数据的整洁度直接影响着数据分析结果的质量和价值,常规的处理手段难以应对海量的数据,需采用大数据处理技术,对脏数据进行清洗,并对数据进行结构化处理,方便以后对数据进行分析挖掘。本系统数据处理模块功能点描述如下:
(1) 数据清洗:检查数据一致性,对源数据进行清洗,处理无效值和缺失值等
(2) 数据预处理:由于数据来自于不同公司发布的招聘信息,没有统一标准,所以提前对数据分析所需字段进行处理,统一格式,提高后续操作的稳定性和结果的准确性。
(3) 数据存储:将清洗和预处理后的数据文件存储到MongoDB数据库中,方便系统通信。

3.3.3 数据分析
数据分析主要是对抓取的大量招聘信息数据使用适当的统计方法进行分析,并加以汇总和理解消化,从看起来杂乱无章的数据中提取出所需要的关键信息,以求最大化的开发数据功能,发挥数据的作用。数据分析可以帮助人们更快、更加准确地做出判断,以便采取适当行动。其中,数据分析模块功能点描述如下:
(1) 数据导入:从MongoDB数据库读取数据集,以供分析模块进行数据分析。
(2) 数据合并:系统采用Spark框架进行数据分析,调用RDD算子,主要是对相同类型数据使用map、Reduce算子进行合并。
(3) 数据写入:Spark框架会将处理分析后的数据写入Json文件,但由于Json文件不能直接由JavaScript打开,所以要将Json文件转换为Js文件。

3.3.4 数据可视化
寻常的数据展示形式复杂、数据量庞大,用户难以从中接收到有用信息,而数据可视化的出现打破了这一僵局。数据可视化通过对数据信息的图形化手段,根据数据信息特点,生成能相应表达其特征的数据报表,向用户传达清晰有效又生动具体的数据信息,便于用户提取信息价值。本系统数据可视化模块功能点描述如下:
(1) 生成报表:对处理分析过后的数据生成可视化报表,根据分析需要可生成包括单值显示、柱形图、饼图、折线图等。
(2) 搭建数据大屏:使用Echarts搭建大数据大屏框架,划分模块,再将生成的可视化报表整合,形成整体可视化布局。

表5-14  数据可视化关键代码
1  #指定编码格式
2
3IT行业岗位分析系统  #指定标题
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22  #引入各种所需JS文件
23

IT行业岗位分析系统设计与实现(Spark+Hadoop)_第2张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第3张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第4张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第5张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第6张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第7张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第8张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第9张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第10张图片
IT行业岗位分析系统设计与实现(Spark+Hadoop)_第11张图片

你可能感兴趣的:(spark,hadoop,大数据,岗位分析,毕业设计)