顧軍林 劉瑋瑋 陳冠宇
摘 ?要: 針對當前學生擇業(yè)難而學校人才培養(yǎng)無法滿足當前社會實際需求的問題,提出基于Hadoop平臺的大數(shù)據(jù)就業(yè)崗位推薦系統(tǒng)。該系統(tǒng)利用爬蟲技術(shù)爬取互聯(lián)網(wǎng)招聘網(wǎng)站上的海量崗位信息,并對崗位信息進行整理、清洗、分析,HBase作為數(shù)據(jù)存儲,將數(shù)據(jù)制作成圖表,給用戶直觀體驗;根據(jù)用戶提供的用戶技能為用戶篩選出合適的崗位,實現(xiàn)崗位的精確推薦。
關(guān)鍵詞: 崗位推薦; Hadoop平臺; 爬蟲技術(shù); 信息處理; HBase; 功能實現(xiàn)
中圖分類號: TN911?34; TP391.1 ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)20?0123?05
Design of post recommendation system based on Hadoop platform
GU Junlin, LIU Weiwei, CHEN Guanyu
(Engineering Technology Research and Developent Center of Electronic Products Equipment Manufacturing of Jiangsu Province, Huaian 223003, China)
Abstract: In allusion to the problems that it is difficult for students to choose jobs and the talent training in schools cannot meet the actual needs of the current society, a big data employment post recommendation system based on Hadoop platform is proposed. The crawler technology is used in this system to catch the massive post information in the Internet recruitment website, and then sort, clean and analyze it. The HBase is used as data storage to put the data into charts to give users an intuitive experience. The appropriate post is selected for the user according to the skills provided by him to achieve accurate job recommendation.
Keywords: post recommendation; Hadoop platform; crawler technology; information processing; HBase; function realization
0 ?引 ?言
時代迅速發(fā)展,人們已經(jīng)步入大數(shù)據(jù)時代,大數(shù)據(jù)通過對海量數(shù)據(jù)的分析,從而得出一個數(shù)據(jù)走向,相比隨機采樣式數(shù)據(jù)分析,結(jié)果更可靠更有說服力[1]。如今,就業(yè)問題讓許多人頭疼,其中有幾個原因[2?3]:一是中國人口數(shù)量龐大,崗位的狀態(tài)接近飽和;二是許多就業(yè)者不能認識到當前的行業(yè)的狀況,在學校中也缺少對行業(yè)、崗位狀況的了解,再就是不能認識到自己,不知道自己的所學能勝任什么工作[4?6]。本文實現(xiàn)目標是構(gòu)建一個基于Hadoop平臺的大數(shù)據(jù)就業(yè)崗位推薦系統(tǒng),利用爬蟲[7]技術(shù)爬取互聯(lián)網(wǎng)招聘網(wǎng)站上的海量崗位信息,并對崗位信息進行整理、清洗、分析、聚類、存儲,數(shù)據(jù)制作成圖表,給用戶直觀體驗。根據(jù)用戶提供的用戶技能來為用戶篩選出合適的崗位,應(yīng)用大數(shù)據(jù)推薦算法實現(xiàn)崗位的精確推薦,以幫助用戶從茫茫崗海中迅速找到合適的崗位,讓擇業(yè)目的性、準確性更加突出。
1 ?系統(tǒng)架構(gòu)架構(gòu)設(shè)計
根據(jù)系統(tǒng)需求設(shè)計系統(tǒng)的架構(gòu)如圖1所示。
項目采用前后臺分離開發(fā)模式。后端主要專注于控制層(Restful API)、服務(wù)層、數(shù)據(jù)訪問層;前端專注于前端控制層(Nodejs)、視圖層、相互協(xié)作、高度配合。系統(tǒng)主要分為以下兩個部分:
1.1 ?Xq?Server服務(wù)端設(shè)計
Xq?Server負責從招聘網(wǎng)站上的海量崗位中爬取有用的崗位數(shù)據(jù)進行整理、清洗、分析、聚類、存儲,為前端調(diào)用提供數(shù)據(jù)支撐。Xq?Server詳細運行流程如圖2所示。
Xq?Server部分中有兩大重要接口:一個是Service接口;一個是Server接口。每個功能模塊都有一個Service,各功能模塊的Service都實現(xiàn)了Service的接口。系統(tǒng)中各Service類如圖3所示。
1.2 ?Xq?Client客戶端設(shè)計
Xq?Client:負責崗位推薦、數(shù)據(jù)的顯示,從MongoDB中讀取數(shù)據(jù)繪制前端圖表。Xq?Client部分有崗位推薦功能,推薦部分入口是LearningController的getJytj()方法,該方法接收用戶傳遞過來的技能信息和技能積累時間,然后調(diào)用JobAnalysisReposity類中的getJytj()方法獲得推薦數(shù)據(jù)返回給用戶。
崗位推薦類結(jié)構(gòu)如圖4所示。
1.3 ?HBase系統(tǒng)數(shù)據(jù)庫設(shè)計
網(wǎng)絡(luò)爬蟲爬取的招聘崗位數(shù)據(jù),存儲表“job_internet”初始設(shè)計為2個列族:RAW_DATA和TAG_DATA,分別保存爬取的原始數(shù)據(jù)和標簽獲得原始數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗之后,保存為列族PERCEPT_DATA,存放感知數(shù)據(jù)。job_internet結(jié)構(gòu)如圖6所示。
“job_internet”表中列族RAW_DATA,TAG_DATA,PERCEPT_DATA數(shù)據(jù)描述如下:
2 ?系統(tǒng)功能模塊實現(xiàn)
2.1 ?崗位數(shù)據(jù)收集模塊
崗位分布統(tǒng)計的實現(xiàn)步驟如下:
1) 爬取崗位信息;
2) 將原始數(shù)據(jù)存入HBase數(shù)據(jù)庫;
3) 清洗崗位信息;
4) 清洗后數(shù)據(jù)存入HBase數(shù)據(jù)庫;
5) 統(tǒng)計崗位分布結(jié)果。
數(shù)據(jù)收集中間結(jié)果:
1) job_internet表RAW_DATA列簇(一條)如圖8所示。
2) job_internet表TAG_DATA列簇(一條)如圖9所示。
2.2 ?崗位數(shù)據(jù)清洗模塊
清洗崗位信息,規(guī)范化原始數(shù)據(jù),并根據(jù)崗位名分成多張HBase表,數(shù)據(jù)清洗中間結(jié)果效果圖如圖10所示。
2.3 ?崗位統(tǒng)計模塊
統(tǒng)計崗位分布結(jié)果,根據(jù)HBase中清洗后的數(shù)據(jù),將所有的崗位按照不同方式統(tǒng)計,包括:崗位地區(qū)分布、崗位薪資分布、崗位學歷分布、崗位經(jīng)驗分布、公司的性質(zhì)分布、公司的規(guī)模分布等,將統(tǒng)計的數(shù)據(jù)存入MongoDB,崗位薪資分布圖如圖11所示。
2.4 ?崗位聚類模塊
崗位聚類模塊將所有的崗位先分大類,如:開發(fā)、運維、架構(gòu)等,在大類下,將相似度高的崗位聚合,產(chǎn)生有高代表性的可指定個數(shù)的崗位。
1) 崗位聚類模塊效果圖如圖12所示。
2) 崗位聚類模塊核心代碼如下:
2.5 ?崗位推薦模塊
1) 崗位推薦效果圖如圖13、圖14所示。