顧軍林 劉瑋瑋 陳冠宇
摘 ?要: 針對(duì)當(dāng)前學(xué)生擇業(yè)難而學(xué)校人才培養(yǎng)無(wú)法滿足當(dāng)前社會(huì)實(shí)際需求的問(wèn)題,提出基于Hadoop平臺(tái)的大數(shù)據(jù)就業(yè)崗位推薦系統(tǒng)。該系統(tǒng)利用爬蟲(chóng)技術(shù)爬取互聯(lián)網(wǎng)招聘網(wǎng)站上的海量崗位信息,并對(duì)崗位信息進(jìn)行整理、清洗、分析,HBase作為數(shù)據(jù)存儲(chǔ),將數(shù)據(jù)制作成圖表,給用戶直觀體驗(yàn);根據(jù)用戶提供的用戶技能為用戶篩選出合適的崗位,實(shí)現(xiàn)崗位的精確推薦。
關(guān)鍵詞: 崗位推薦; Hadoop平臺(tái); 爬蟲(chóng)技術(shù); 信息處理; HBase; 功能實(shí)現(xiàn)
中圖分類號(hào): TN911?34; TP391.1 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ?文章編號(hào): 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 ?引 ?言
時(shí)代迅速發(fā)展,人們已經(jīng)步入大數(shù)據(jù)時(shí)代,大數(shù)據(jù)通過(guò)對(duì)海量數(shù)據(jù)的分析,從而得出一個(gè)數(shù)據(jù)走向,相比隨機(jī)采樣式數(shù)據(jù)分析,結(jié)果更可靠更有說(shuō)服力[1]。如今,就業(yè)問(wèn)題讓許多人頭疼,其中有幾個(gè)原因[2?3]:一是中國(guó)人口數(shù)量龐大,崗位的狀態(tài)接近飽和;二是許多就業(yè)者不能認(rèn)識(shí)到當(dāng)前的行業(yè)的狀況,在學(xué)校中也缺少對(duì)行業(yè)、崗位狀況的了解,再就是不能認(rèn)識(shí)到自己,不知道自己的所學(xué)能勝任什么工作[4?6]。本文實(shí)現(xiàn)目標(biāo)是構(gòu)建一個(gè)基于Hadoop平臺(tái)的大數(shù)據(jù)就業(yè)崗位推薦系統(tǒng),利用爬蟲(chóng)[7]技術(shù)爬取互聯(lián)網(wǎng)招聘網(wǎng)站上的海量崗位信息,并對(duì)崗位信息進(jìn)行整理、清洗、分析、聚類、存儲(chǔ),數(shù)據(jù)制作成圖表,給用戶直觀體驗(yàn)。根據(jù)用戶提供的用戶技能來(lái)為用戶篩選出合適的崗位,應(yīng)用大數(shù)據(jù)推薦算法實(shí)現(xiàn)崗位的精確推薦,以幫助用戶從茫茫崗海中迅速找到合適的崗位,讓擇業(yè)目的性、準(zhǔn)確性更加突出。
1 ?系統(tǒng)架構(gòu)架構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)需求設(shè)計(jì)系統(tǒng)的架構(gòu)如圖1所示。
項(xiàng)目采用前后臺(tái)分離開(kāi)發(fā)模式。后端主要專注于控制層(Restful API)、服務(wù)層、數(shù)據(jù)訪問(wèn)層;前端專注于前端控制層(Nodejs)、視圖層、相互協(xié)作、高度配合。系統(tǒng)主要分為以下兩個(gè)部分:
1.1 ?Xq?Server服務(wù)端設(shè)計(jì)
Xq?Server負(fù)責(zé)從招聘網(wǎng)站上的海量崗位中爬取有用的崗位數(shù)據(jù)進(jìn)行整理、清洗、分析、聚類、存儲(chǔ),為前端調(diào)用提供數(shù)據(jù)支撐。Xq?Server詳細(xì)運(yùn)行流程如圖2所示。
Xq?Server部分中有兩大重要接口:一個(gè)是Service接口;一個(gè)是Server接口。每個(gè)功能模塊都有一個(gè)Service,各功能模塊的Service都實(shí)現(xiàn)了Service的接口。系統(tǒng)中各Service類如圖3所示。
1.2 ?Xq?Client客戶端設(shè)計(jì)
Xq?Client:負(fù)責(zé)崗位推薦、數(shù)據(jù)的顯示,從MongoDB中讀取數(shù)據(jù)繪制前端圖表。Xq?Client部分有崗位推薦功能,推薦部分入口是LearningController的getJytj()方法,該方法接收用戶傳遞過(guò)來(lái)的技能信息和技能積累時(shí)間,然后調(diào)用JobAnalysisReposity類中的getJytj()方法獲得推薦數(shù)據(jù)返回給用戶。
崗位推薦類結(jié)構(gòu)如圖4所示。
1.3 ?HBase系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
網(wǎng)絡(luò)爬蟲(chóng)爬取的招聘崗位數(shù)據(jù),存儲(chǔ)表“job_internet”初始設(shè)計(jì)為2個(gè)列族:RAW_DATA和TAG_DATA,分別保存爬取的原始數(shù)據(jù)和標(biāo)簽獲得原始數(shù)據(jù),經(jīng)過(guò)數(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)功能模塊實(shí)現(xiàn)
2.1 ?崗位數(shù)據(jù)收集模塊
崗位分布統(tǒng)計(jì)的實(shí)現(xiàn)步驟如下:
1) 爬取崗位信息;
2) 將原始數(shù)據(jù)存入HBase數(shù)據(jù)庫(kù);
3) 清洗崗位信息;
4) 清洗后數(shù)據(jù)存入HBase數(shù)據(jù)庫(kù);
5) 統(tǒng)計(jì)崗位分布結(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)計(jì)模塊
統(tǒng)計(jì)崗位分布結(jié)果,根據(jù)HBase中清洗后的數(shù)據(jù),將所有的崗位按照不同方式統(tǒng)計(jì),包括:崗位地區(qū)分布、崗位薪資分布、崗位學(xué)歷分布、崗位經(jīng)驗(yàn)分布、公司的性質(zhì)分布、公司的規(guī)模分布等,將統(tǒng)計(jì)的數(shù)據(jù)存入MongoDB,崗位薪資分布圖如圖11所示。
2.4 ?崗位聚類模塊
崗位聚類模塊將所有的崗位先分大類,如:開(kāi)發(fā)、運(yùn)維、架構(gòu)等,在大類下,將相似度高的崗位聚合,產(chǎn)生有高代表性的可指定個(gè)數(shù)的崗位。
1) 崗位聚類模塊效果圖如圖12所示。
2) 崗位聚類模塊核心代碼如下:
2.5 ?崗位推薦模塊
1) 崗位推薦效果圖如圖13、圖14所示。