大数据 demo (采集,处理,应用)复盘

源码

https://github.com/hqweay/job-analysis-system

流程

数据采集→数据处理→数据分析→应用

首先,通过爬虫抓取 51Job ,智联招聘等网站有关大数据的职位数据。通过爬虫得到的数据是非常乱的,即便我们在保存的时候已经尽量规定好了格式,所以要对数据进行清洗,把数据格式化。(也许后面还应该去除重复,错误的数据…)

现在我们得到一堆数据了,一方面我们可以对这些数据进行数据挖掘,找到数据间的高价值信息(比如说求职地对工资的影响啦什么的)。其次,我们还可以根据这些信息,与用户的信息进行对比,预测用户的工资区间,为用户推荐工作什么的…

有了一堆高价值信息,要展现啊,而且还得与用户进行交互(以做预测,推荐)。这一块通过搭建网站来实现。

任务分配

森林爬虫,波波老师数据分析,挖掘,我搭建网站。

爬虫

用的 jsoup。

可以对 51Job, 智联招聘这两个网站进行数据采集。设置了几个参数,可以与网站后台管理交互。

通过后台来管理爬虫爬取的频率,数据存放的目录什么的…

爬虫保存的文件的方式是每多少个数据生成一个 json 文件,文件名以 1.json,2.json …这样命名。(为了方便后续步骤)

清洗,挖掘,分析

搞了 3 台虚拟机(centos)搭建了个 Hadoop 集群。

一开始选择的是 Hadoop,后面发现 Hadoop 对离线计算支持的很好,要是搞实时计算,用 Spark 比较好。(也不知道具体情况。Spark 没用。)

使用 flume 监听爬虫采集的存放目录(理论上是可行的,不过没研究虚拟机怎么和本机目录交互,所以没搞。),当爬虫开始执行,该目录就不断生成职位数据,每当有新数据产生,flume就会把文件采集到hdfs中去储存。

在此,通过 Hadoop MapReduce 对离线数据进行清洗,得到优质的,格式化的数据。


然后我们把数据从 hdfs 导入 hive,进行数据挖掘。在这一步,我们首先对数据进行聚类,大致找出这些独立数据之前的联系,再通过手动筛选,剔除那些不符合我们预期的信息,再用已有数据对数据进行训练,以此得到精确度较高的聚类手段与符合期望的数据。(聚类了,但是剔除什么的没做…)


hive 可以把数据导入到数据库,我们把清洗后的职位数据导入到 MySql ,然后就能基本展现一些东西了…


这里和前台页面联系一下。

比如我们想在前台用直方图的形式展示求职地与工资的关系,如果我们在后端进行计算,每打开一次展示的页面就要计算一次,太耗费资源了(主要是显示太慢了,到时候录视频展示项目岂不是很尴尬。)。

而且这类数据变动也不大,所以就在数据处理这一块先把这类信息计算出来,再导入数据库的某张表里。到时候显示就只需直接取表的数据,不用进行多余的计算了。

搭建

前端写的太差劲了。后台管理用的开源页面,还可以。

数据可视化展示

  • 图表展示 : ECharts
  • 表格展示 : Bootstrap Table

展示了啥?

前端

不过插件使用倒是熟练了不少,插件版本不兼容什么的问题也遇到一大堆。

jquery 插件到哪里下载呢

标签插件

表单验证插件

图表,表格插件

还有啥?

没了…

后端

采用 Spring Boot,idea 创建一个 Spring Boot 项目很简单,有 Spring Initializr。

写了一个小小的 demo,感觉用了不少东西,其实也没多少,都只局限于知道这个工具是干啥的的阶段。

  • 项目自动化构建工具:gradle

    ​ 源到 maven 仓库 找。

  • 权限管理:Spring Security

    用于判断登录用户的访问权限,比如区分普通会员和管理员之类的。想要自定义使用的话,好麻烦哦。

    之前记录了一些使用方式,还没写完…

    Java模板引擎:Thymeleaf

    想到如果数据全都通过 json 来传,模板的作用是不是就不大了?

  • 持久层框架:MyBatis

    怎么配置。

    mybatis-genetator 插件,用于自动把数据库里的表生成 bean(提供了 getter,setter的 java 类),Mapper(通过 mabatis 与数据库交互相关的接口,比如增删查这个表里的东西…没什么大用,只是节省了创建接口的时间,具体的 SQL 还得自己写。)。

    数据库查询还用了分页插件 pagehelper …配合前端的表格插件,实现显示数据的分页功能。

  • debug 工具

    log4j2

  • fastjson

    SpringMVC 自带的 json 工具不够用…

值得一提的就是学会了写一个稍微有点复杂的 SQL 语句。(波波老师写的,模仿了一下,收获不少。)

其他的收获都是对工具的熟练…

预测与推荐

预测

这一步在后端来实现,不过波波老师写了一个 R 的脚本放在服务器,我直接远程调用。

原理是进行多元回归。

Kmeans聚类:程序调用mahout算法库API实现

回归建模:工资(Y)~ 学历(X1)+求职地(X2)+ 岗位类别(X3)+经验(X4)+企业性质(X5)

推荐

波波老师写了一个基于内容的推荐算法,思想是 TF-IDF。没整好,运行慢,也不准确。后面也没优化了。

我又直接模糊查询来匹配,慢死了。

波波老师说数据库搞个索引,查起来快点,也没搞。

其他

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值