韓冬 郭浩峰 李林洋 汪菊琴 江森林



摘要:現今有大量的找房和招聘系統,但缺少為找房和就業提供綜合性數據關聯分析參考的相關系統。該系統通過大數據技術獲取相關信息,通過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.
【通聯編輯:謝媛媛】