目 录

1项目背景及整体方案... 1

1.1项目背景... 1

1.2整体方案分析... 1

1.2.1 系统上下文分析... 1

1.2.2项目用户分析... 1

1.2.3项目业务场景... 2

2需求分析... 3

2.1 系统特性&需求分析... 3

2.1.1 人才需求分析需求分解... 4

2.1.2 人才需求历史趋势监控需求分解... 5

2.1.3人才需求预测需求分解... 6

2.1.4 人才需求详情查询需求分解... 7

2.1.5 支持多网站数据接入... 8

2.2系统非功能性需求... 9

2.2.1 支持TB/PB级数据处理... 10

2.2.2支持统一查询接口... 11

3架构设计... 12

3.1 领域模型... 12

3.2物理视图... 13

3.3大数据存储/计算设计... 14

3.4虚拟机划分... 15

3.5虚拟机分配... 16

3.6大数据集群静态部署视图... 17

4系统设计... 18

4.1 应用层设计... 18

4.1.1 人才需求现状分析设计... 18

4.1.2 人才需求监控设计... 19

4.1.3 人才需求预测设计... 20

4.1.4 招聘详情查询设计... 21

4.1.5 人才需求分析关键类图设计... 22

4.2 数据访问层设计... 23

4.2.1 组件图... 23

4.2.2关键类图... 24

4.3 任务调度模块设计... 25

4.4 Hadoop集群设计... 26

4.3.1 招聘信息入库SparkApplication模块设计... 26

4.3.2 人才需求信息汇聚SparkApplication模块设计... 26

4.3.3 人才需求预测SparkApplication模块设计... 27

4.3.4 Yarn资源队列分配... 28

4.5 数据接入层设计... 28

4.5.1 Kafka部署设计... 28

4.5.2 Topic设计... 29

4.6 数据采集层设计... 29

4.4.1 组件图... 29

4.4.2 关键类图... 30

5关键技术选型... 31

5.1软件选型... 31

5.2汇总后的招聘信息存储选型Clickhouse vs ElasticSearch. 31

5.3Kafka版本选型... 32

6关键技术验证... 33

7项目总结... 33

1项目背景及整体方案

1.1项目背景

随着国内互联网技术的发展,企业招聘由传统的招聘会转向互联网招聘+招聘会相结合的方式,无论在校园招聘,还是社会招聘,一般都会在主流招聘平台发布招聘信息,更宽渠道延揽人才。所有的企业招聘信息完整地反映了社会的人才需求状况,这些信息对于高校的人才培养计划及个人的职业规划有着极为重要的意义。本项目通过研究从互联网实时获取招聘信息,进行人才需求的分析、监控及预测的解决方案,并基于大数据框架完成人才需求动态监测系统的建模与设计。项目实施的主要目的:

1、帮助高校根据社会需求调整专业设置及招生计划

2、帮助高考学子梳理专业人才需求状况进行报考

3、帮助就业个人根据业界动态调整职业规划

4、帮助企业进行行业招聘竞争力分析

1.2整体方案分析

1.2.1 系统上下文分析

人才需求分析系统可以从互联网采集招聘信息,并完成人才需求分析。招聘信息数据源包括专业招聘网站(如智联招聘、boss直聘)和企业招聘网页;人才需求分析系统支持TB/PB级招聘数据处理,需要部署在集群服务器上;用户能够使用人才需求分析系统根据自己的需求快速查看人才需求信息;运维人员能够安装部署并运维人才需求分析系统。

                                               图1:人才需求分析系统的系统上下文

1.2.2项目用户分析

项目用户包括系统使用用户和开发运维用户。系统使用用户包括高考学子、高考教师、企业用户职场人员;开发运维用户包括系统部署工程师和系统运维工程师。

2:项目用户分析图

1.2.3项目业务场景

系统的主要业务场景如图所示,角色及主要处理过程如下:

运维人员:安装集群环境、安装操作系统、完成网络规划及配置,安装Hadoop大数据处理平台,安装人才需求分析系统,启动人才需求分析系统

分析系统:分析系统从互联网持续采集招聘信息

分析系统:执行数据清洗及数据规范化处理,并将招聘数据存储到大数据处理平台

分析系统:定时执行数据汇总及分析、预测,并将分析后生成的数据入库

用户:根据个人需求查看人才需求分析数据,包括现状分析、历史趋势、未来预测等数据

系统:系统处理用户提交的查询请求,执行数据查询或自定义分析,并返回查询结果。

3:业务场景分析图

2需求分析

2.1 系统特性&需求分析

通过调研及对原始需求的分析,人才需求分析系统需要提供如下特性:

1、人才需求分析

人才需求分析包括人才需求现状分析、历史趋势监控、未来需求预测

2、人才需求现状分析

系统用户(包括高考学子、职场员工、高校教师、企业用户)能够从行业、专业、岗位、区域、时间等多个维度查看人才需求数量、薪资、学校要求等信息;高校教师能够从行业、专业、时间等多个维度查看岗位技能要求等信息;职场员工能够从行业、岗位、区域、时间等多个维度查看专业、经验、技能要求等信息;企业用户能够查看目前行业的招聘现状并进行招聘竞争力分析。

3、人才需求历史趋势监控

系统用户能够从行业、专业、岗位、区域、时间等多个维度查看人才需求数量、薪资的历史趋势信息;职场员工能够从行业、岗位、区域、时间等多个维度查看专业、经验、技能要求等变更趋势。

4、人才未来需求预测

系统用户能够从行业、专业、岗位、区域、时间等多个维度查看未来4年内的人才需求数量、薪资等信息的预测。

5、人才需求数据详情查看

系统用户能够从行业、专业、岗位、区域、时间等多个维度批量查看详细招聘信息

6、支持多网站、网址数据源接入

分析系统支持多个招聘网站、企业招聘网页的数据采集及接入。

4:人才需求分析图

2.1.1 人才需求分析需求分解

1、支持典型场景多维度人才需求分析

典型场景多维度分析指基于固定的、常用的维度,进行查询分析。查询的维度可以为典型维度的一个子集,但不能存在典型维度范围外的维度。典型场景多维度人才需求分析包括人才需求数量分析、专业薪资分析、专业技能要求分析。

2、支持多维度人才需求数量分析

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看人才需求数量信息。

3、支持多维度专业薪资分析

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看薪资待遇信息。

4、支持多维度专业、技能要求分析

用户能够从行业、岗位、薪资、区域、时间等多个典型维度查看专业、技能要求信息。

5、支持自定义维度人才需求分析

用户能够根据个人需求,选择自己关注的任意维度进行组合查询,由于该查询需要基于招聘信息进行实时计算分析,查询性能比典型场景查询要慢一些。

5:人才需求现状分析图

2.1.2 人才需求历史趋势监控需求分解

1、支持典型场景多维度人才需求历史趋势监控

典型场景多维度历史趋势监控指基于固定的、常用的维度,进行趋势查询。查询的维度可以为典型维度的一个子集,但不能存在典型维度范围外的维度。典型场景多维度人才需求历史趋势监控包括人才需求数量趋势监控、专业薪资趋势监控、专业技能要求趋势监控。

2、支持多维度查看人才需求数量历史趋势信息

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看人才需求数量历史趋势监控信息。

3、支持查看多维度专业薪资历史趋势信息

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看薪资待遇历史趋势监控信息。

4、支持查看多维度专业、技能要求历史趋势信息

用户能够从行业、岗位、薪资、区域、时间等多个典型维度查看专业、技能要求历史趋势监控信息。

5、支持自定义维度人才需求历史趋势监控

用户能够根据个人需求,选择自己关注的任意维度进行组合查询历史趋势信息,由于该查询需要基于招聘信息进行实时计算分析,查询性能比典型场景查询要慢一些。

6:人才需求历史趋势图

2.1.3人才需求预测需求分解

1、支持典型场景多维度人才需求预测

典型场景多维度分析指基于固定的、常用的维度,查询人才需求预测信息。查询的维度可以为典型维度的一个子集,但不能存在典型维度范围外的维度。典型场景多维度人才需求预测包括人才需求数量预测、专业薪资预测、专业技能要求预测。最多支持未来4年内的人才需求预测。

2、支持多维度人才需求数量预测

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看人才需求数量信息预测。

3、支持多维度专业薪资分析

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看薪资待遇预测信息。

4、支持多维度专业、技能要求分析

用户能够从行业、岗位、薪资、区域、时间等多个典型维度查看专业、技能要求预测信息。

5、支持自定义维度人才需求分析

用户能够根据个人需求,选择自己关注的任意维度进行组合查询人才需求预测信息,由于该查询需要基于招聘信息进行实时计算分析,查询性能比典型场景查询要慢一些。

7:人才需求预测图

2.1.4 人才需求详情查询需求分解

1、支持典型场景多维度招聘详情查询

典型场景多维度人才需求分析结果是基于满足条件的详细招聘信息汇总/汇聚而来,针对生成查询结果的数据,能够查询满足条件的详细招聘记录。例如:西安市大数据开发岗2020年9月份的招聘人数为320人,详情查询则为查询满足条件的所有详细招聘信息。典型场景多维招聘详情查询包括典型场景多维度分析的详情查询和典型场景多维度监控的详情查询。

2、支持典型场景多维度分析的详情查询

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看人才需求分析对应的详细招聘信息。

3、支持典型场景多维度监控的详情查询

用户能够从行业、专业、岗位、区域、时间等多个典型维度查看人才需求监控对应的详细招聘信息。

4、支持自定义多维度招聘详情查询

自定义多维度招聘详情查询是相对于典型场景多维度招聘详情查询而言的。用户能够根据个人需求选择典型维度以外的维度执行查询。自定义多维度招聘详情查询包括自定义多维度分析的详情查询和自定义多维度监控的详情查询。

5、支持自定义多维度分析的详情查询

用户能够根据个人需求,选择自己关注的任意维度进行组合查询人才需求分析对应的详细招聘信息。

6、支持自定义多维度监控的详情查询

用户能够根据个人需求,选择自己关注的任意维度进行组合查询人才需求监控对应的详细招聘信息。

8:人才需求详情查询用例图

2.1.5 支持多网站数据接入

1、支持多采集节点部署

当接入的网站数量比较少,采集速率比较小时,单节点即可支撑数据采集;当接入的网站数据量比较多,采集速率比较大时,系统能够支持部署多个节点并行采集数据,采集速率和部署的节点数量成正比。

2、支持多网站接入采集

支持智联招聘、boss直聘等主流招聘网站招聘信息采集,支持对外开放采集接口或招聘网页的企业招聘信息采集。

3、支持网络爬虫方式采集数据

对于无反爬虫技术、无爬虫商业纠纷的网站,可以采用网络爬虫技术进行数据采集,网络爬虫需要考虑地址跳转、token认证等复杂场景。

4、支持招聘网站API接口采集数据

对于存在反爬虫技术或存在爬虫商业纠纷的网站,可以和对应公司合作,通过公司的采集API进行采集,一般都是TCP协议或HTTP协议接口。

5、支持安全认证

大部分网站都有安全认证及鉴权控制模块,在网络爬虫或API接口采集时,需要能够和安全模块对接,支持安全认证及鉴权进行数据采集。

6、支持数据规范处理

不同招聘网站及企业的职业、岗位、技能等术语存在差异,在人才需求分析前,需要进行规范处理,统一术语字典。

7、支持数据序列化

数据传输前,需要将招聘信息进行序列化,转换为01代码后转发给大数据处理系统;其次,序列化技术可以降低数据大小,提高传输速率。

9:数据采集用例图

2.2系统非功能性需求

1、支持TB/PB级数据处理

人才需求分析系统持续从网站实时采集招聘信息,随着时间的推移,数据量会达到TB甚至PB级别容量,人才需求系统需要集成大数据存储、处理平台,支持TB/PB级别数据处理。

2、支持统一查询接口

上层应用包括了现状分析、历史趋势监控、未来需求预测及招聘详情查询,他们的和大数据平台进行南向交互,业务处理流程存在较大的相似性,因此可以设计统一查询接口,屏蔽应用层和大数据平台的直接交互,实现高内聚低耦合的架构设计原则。

10:非功能性需求

2.2.1 支持TB/PB级数据处理

1、Spark任务生命周期管理

支持Spark任务的生命周期管理,包括提交、监控、停止。对于SparkStreaming流式任务能够监控运行状态,并在异常终止时自动重启。Spark任务包括招聘数据入库任务、汇总任务(包括分析和趋势监控)、预测任务。

2、招聘数据入库任务生命周期管理

基于SparkStreaming的流式处理任务,包括招聘数据的入库及招聘信息的预汇总。支持任务的提交、监控、停止、资源分配、日志打印及异常处理。

3、汇总任务生命周期管理

基于SparkCore的批处理任务,包括现状分析、历史趋势监控基于行业、专业、时间、区域等典型维度的汇总。支持任务的提交、停止、资源分配、日志打印及异常处理。

4、预测任务生命周期管理

基于SparkCore的批处理任务,包括现状分析、历史趋势监控基于行业、专业、时间、区域等典型维度的汇总。支持任务的提交、停止、资源分配、日志打印及异常处理

5、提交SparkStreaming任务

调度程序启动后,能够自动提交SparkStreaming任务,提交任务时需要考虑Spark任务运行依赖认证、第三方插件、资源分配配置信息、kafka对接配置信息等。

6、监控并重启SparkStreaming任务

SparkStreaming任务提交后,调度器能够监控程序运行状态,当程序异常退出时,能够自动重新提交程序。重启程序后能够保证数据处理的Exactly-once语义。

7、提交SparkCore批处理任务

调度程序启动后,能够自动提交SparkCore任务,提交任务时需要考虑Spark任务运行依赖认证、第三方插件、资源分配配置信息等。

8、停止Spark任务

调度器能够优雅停止Spark程序,避免磁盘数据损坏。

11:数据处理任务调度图

2.2.2支持统一查询接口

1、支持查询汇总单据(clickhouse)

汇总单据技术选型为clickhouse数据库,汇总单据包括现状分析数据、历史趋势监控数据和未来需求预测数据。

2、支持查询现状分析数据

提供现状分析数据统一查询接口,为上层应用提供南向查询接口,将上层应用的查询请求处理后返回查询结果给上层应用。

3、支持查询趋势监控数据

提供趋势监控数据统一查询接口,为上层应用提供南向查询接口,将上层应用的查询请求处理后返回查询结果给上层应用。

12:数据访问

4、支持查询人才需求预测数据

提供未来需求预测数据统一查询接口,为上层应用提供南向查询接口,将上层应用的查询请求处理后返回查询结果给上层应用。

5、支持自定义维度实时分析

提供自定义维度统一查询接口,为上层应用提供南向查询接口,将上层应用的查询请求处理后返回查询结果给上层应用。

6、支持查询招聘详细单据(HBase)

提供招聘详情数据统一查询接口,为上层应用提供南向查询接口,将上层应用的查询请求处理后返回查询结果给上层应用。  

3架构设计

······

企业招聘驱动的社会人才需求动态监测系统的设计文档(部分)相关推荐

  1. 社会对计算机专业学生的需求,关于计算机专业社会人才需求调查报告

    关于计算机专业社会人才需求调查报告 作为一名即将毕业的学生,我的经验不足或许让您犹豫不决,但请您相信我对工作的 激情与努力将弥补这暂时的不足,也许我不是最好的,但我绝对是最努力的.我相信:用 心一定能 ...

  2. java计算机毕业设计人才招聘网源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计人才招聘网源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计人才招聘网源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈: 项目架构 ...

  3. 基于Java毕业设计志愿者社会服务管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计志愿者社会服务管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计志愿者社会服务管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...

  4. java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档

    java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档 java计算机毕业设计智慧校园实习岗位需求对接网络平台源代码+系统+数据库+lw文档 本源码技术栈: 项目架构:B ...

  5. java计算机毕业设计网络招聘系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计网络招聘系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计网络招聘系统源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈: 项目 ...

  6. java计算机毕业设计小型企业员工工资管理系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计小型企业员工工资管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计小型企业员工工资管理系统源码+系统+数据库+lw文档+mybatis+运行部 ...

  7. java计算机毕业设计销售企业报价管理系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计销售企业报价管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计销售企业报价管理系统源码+系统+数据库+lw文档+mybatis+运行部署 本源 ...

  8. 基于Java毕业设计银行招聘系统设计源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计银行招聘系统设计源码+系统+mysql+lw文档+部署软件 基于Java毕业设计银行招聘系统设计源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  9. java计算机毕业设计山西农谷企业产品推广展网源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计山西农谷企业产品推广展网源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计山西农谷企业产品推广展网源码+系统+数据库+lw文档+mybatis+运行部 ...

最新文章

  1. 开启apache的server-status辅助分析工具
  2. Win2008 R2 IIS7 PHP 5.4 环境搭建图文教程
  3. sql server 怎么把视图中的数据存到另外一张表中_承上篇,自制插件优化Kep数据存储问题...
  4. configure: error: You need a C++ compiler for C++ support.
  5. 边工作边刷题:70天一遍leetcode: day 7
  6. JAVA 读取txt文件内容
  7. CSS:设置文字不可选
  8. 解决方案 | 为什么要配置mysql环境变量以及如何配置
  9. O2O营销模式(Online To Offline)
  10. win10系统小键盘数字键不能用怎么办
  11. 小蓝本 第一本《因式分解技巧》 第一章 提公因式 笔记(第一天)
  12. stm32:时钟系统
  13. Redis 总结 —— 2022/2/6
  14. 五招保护您的家用路由器安全
  15. 2022年PMP考试题型都有什么?
  16. 你以为大厂的代码就不烂了?烂成一坨屎...
  17. python库的下载安装_Python库的安装
  18. 达梦mpp相当于oracle什么,DM7 达梦数据库 大规模并行处理 MPP (1) -- 基本概念和原理...
  19. 信用评分卡模型解决方案
  20. linux命令详解之cd命令

热门文章

  1. matlab仿真实验报告思考题,simulink仿真实验报告
  2. PPT报告的一些“技巧”
  3. shell脚本编写教程(基于项目)
  4. slashdot网站架构:硬件和软件 zz 1
  5. 怎样运行sql2008服务器,怎么开启SQL数据库服务
  6. 多线程join会和和detach分离的区别
  7. P7072 [CSP-J2020] 直播获奖
  8. 工作7年,一位已婚妹子UI自动化测试学习心得
  9. 学习LaTeX数学公式的一些常用函数
  10. 常用排序算法复杂度分析