基于大数据技术的区域房价与就业数据关联分析系统的设计与实现
2020-11-02韩冬郭浩峰李林洋汪菊琴江森林
韩冬 郭浩峰 李林洋 汪菊琴 江森林
摘要:现今有大量的找房和招聘系统,但缺少为找房和就业提供综合性数据关联分析参考的相关系统。该系统通过大数据技术获取相关信息,通过MapReduce關键技术对数据进行清洗、计算,结合ECharts展示数据并分析,在移动端设备将各地区的房价、房租、工资等信息用不同类型的方式分析并展示它们之间的关系。
关键词:大数据技术;MapReduce;ECharts;移动端
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)25-0089-03
Abstract: Nowadays, there are a large number of housing search and recruitment systems, but there is a lack of relevant systems to provide comprehensive data association analysis reference for housing search and employment. The system obtains relevant information through big data technology, cleans and calculates the data through MapReduce key technology, displays and analyzes the data combined with echards, and analyzes the relationship between house prices, rents, wages and other information of various regions in different types of ways on mobile devices.
Key words: big data technology; MapReduce; ECharts; mobile devices
1 背景
现今,大部分的买房租房平台或就业系统基本只提供具体信息,这些房价房租数据都不能为用户提供真正的实际意义,用户也不能通过这些琐碎的数据来为自己的买房租房做出计划。人们就会在区域内找房并就业存在一定的茫然,尤其是对于应届毕业生而言这种情况更为严重。如今我们社会的信息产业正逐步趋向于云计算、大数据时代,为了方便他们参考房价及就业信息,因此设计了一个适配于移动端的区域房价与就业数据关联分析系统。本系统通过数据关联分析并结合图表展示的方式,将各地区的房价、房租、工资信息用不同类型的方式分析并展示它们之间的关系。
2 系统的设计
本系统的开发主要分为三期,一是对数据的获取,主要是通过各种房价网站、住房网站、招聘网站进行定时的数据爬取。二是数据的清洗以及分析,主要利用Hadoop架构的MapReduce技术,对数据的关联性分析主要采用ECharts工具。三是移动端应用程序的实现,主要通过VUE框架结合使用Echarts图表和高德地图进行图形展示和数据显示。系统总体框架如图1所示:
2.1 数据爬取方案
Python在爬虫领域的应用非常广泛,由于它自己的特点,在各大平台可移植性强,使用python开发的应用程序质量更加可靠,有大量的内置包能够帮助开发者实现复杂的功能需求。本系统借助python开发的优点,使用爬虫中常用的urllib库,webdriver库,scrapy框架等的基础上构建了部署在docker容器上的数据采集子系统方案。
2.2 数据清洗与分析子系统方案
首先需要实现Hadoop HA分布式系统的搭建,在此架构上才可通过MapReduce技术实现数据的清洗以及计算。在数据清洗过程中,需要重新审查相关数据是否有重复、缺失以及无效值等情况,因为本系统的源数据是通过数据爬取子系统获取的,在设计数据爬取子系统时就考虑到了上述数据的异常情况,所以数据库中异常数据的数量较少,因此在数据清洗中可选择剔除异常数据。因为ECharts工具可视化数据的效果较好,因此选择该工具并对其数据进行关联性分析。
2.3 移动端应用程序子系统方案
本系统通过开发适配移动端的Html5 App进行分析数据的应用展示。功能模块如图2所示。
2.3.1 基于Echarts的移动端App
首先要对地区地图进行绘制和展示。服务器通过数据库将已经分析好的数据进行区域性的检索和划分,通过JSON数据的格式返回给客户端,客户端将数据接收,通过ECharts配置项的数据设置将区域和数据绘制出来。通过搜索框的自动提示定位到不同区域或者选择的区域发生改变时,就可以通过区域编码发送给服务器,服务器接收并检索对应的数据并响应给客户端。
2.3.2 基于JWT验证技术的移动端App
通过用户端登录发送的信息进行密钥加密,产生对应Token值后返回给客户端,客户端接收存储Token,在每次与服务器的交互时携带Token,服务器印证之后返回数据。
3 系统的实现
3.1 爬取数据子系统的实现
3.1.1 环境搭建
配置阿里云镜像拉取源;安装docker运行依赖;安装docker环境。
3.1.2 数据爬取程序以及部署
指定唯一的项目名称;设置爬取的域名范围;解析并下载数据;初始化浏览器,调用相关接口进行操控;获得网页源代码后解析并存储数据;将程序拷贝到linux平台生产环境,构建并启动镜像。
3.2 数据清洗与分析子系统的实现
3.2.1 Hadoop HA分布式系统的搭建
对各节点进行网络配置;在主节点中安装并配置SSH、Hadoop、Zookeeper、Java环境、Eclipse、MySQL等;生成主节点的SSH公钥,将其传输分节点并对其授权;将主节点中安装的内容传输至分节点中;在主节点处启动Hadoop。
3.2.2 数据清洗、计算以及分析
数据库连接;剔除房价与就业数据的重复值、缺失值、无效值;统一数据格式;分区域计算房价、薪资的平均值以及价格区间的数量;将清洗以及计算后的数据临时存储至Hive仓库;通过Sqoop工具将Hive仓库的数据导入至MySQL关系数据库中;通过ECharts工具可视化清洗及计算后的房价与就业数据;对清洗及计算后的房价与就业数据进行关联性分析。
3.3 移动端应用程序子系统的实现
3.3.1 模块的设计
该子系统共有八个模块,分别为:网络请求模块 http.js;路由守卫模块 premit.js;地图加载模块 loadMap.js;状态管理模块 store.js;地图配置模块 mapConfig.js;JWT配置模块 jwt.js;数据库配置模块 dbConfig.js;数据库连接模块 db.js。
3.3.2 移动端应用程序子系统功能
1)登录注册界面,如图3所示,实现用户的登录以及注册;
2)数据展示界面,如图4、5、6所示,实现地区绘制,区域分析图表的展示,小区分析图表的展示,参与人数的展示,不同区域的数据修正以及不同小区的数据修正;
3)个人信息界面,如图7所示,实现用户信息的展示和修改,用户密码的更改。
4 结束语
对一个系统进行开发不只是仅仅体现在做出什么东西,而要在于对整体架构的分析、设计。在分析时还得考虑实际的使用状况,不能想当然地自己认为是什么样就是什么样,要站在不同人的角度对自己的项目进行检验和找出缺点。在制作的过程中,我们总会发现出一些问题,必须经过团队成员之间的多次沟通和交流,才能使系统得以完善。该系统将会对用户有着很大的用处,通过大数据给用户提供更直观的区域数据关聯分析,便于用户的参考。
参考文献:
[1] 陈乐.基于Python的网络爬虫技术[J].电子世界,2018(16):163,165.
[2] 林子雨.大数据技术原理与应用:概念、存储、处理、分析与应用[M].北京:人民邮电出版社,2017.
[3] Apache Hadoop Project[EB/OL].[2019-12-20].http://Hadoop.apache.org.
[4] 王菲露,李军,宋杨,等.基于Ajax技术的ECharts实时图形报表实现[J].黑龙江工业学院学报(综合版),2019,19(12):79-83.
[5] 柴青山.基于MVVM模式的Vue.js框架在物流软件自动化测试系统中的应用研究[D].北京:北京邮电大学,2019.
[6] 陈宇收,饶宏博,王英明,等.基于JWT的前后端分离程序设计研究[J].电脑编程技巧与维护,2019(9):11-12.
【通联编辑:谢媛媛】