开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第一阶段:项目总体逻辑架构详解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/669/detail/11583
项目总体逻辑架构详解
内容介绍
一、课堂回顾与目标
二、逻辑架构详细分析
三、知识总结
一、课堂回顾与目标
为加深此流程印象,探究数据预处理、实时计算等环节具体措施,掌握反爬虫项目的总体逻辑架构
分为数据采集、数据预处理、计算(分为实时计算与离线计算)、数据展示四个阶段与数据流程一一对应。
二、逻辑架构详细分析
逻辑架构分为数据采集、数据预处理、计算(分为实时计算与离线计算)、数据展示四个阶段
(1)数据采集
首先,企业为顾客查询提供官网界面。
如下:
用户进行查询或预定功能后,在企业端进行数据采集的工作
再将采集到的信息存储
与数据流程采集数据到 kafka,一一对应
(2)数据预处理阶段
首先,数据打入 kafka,读取数据到链路统计模块。
与数据流程将 kafka 采集到的数据运行到 SparkStreaming 程序,实现数据分析的环节相对应
同时从数据库当中把规则读取过来,运用到数据清洗等阶段
结合数据与规则进行数据脱敏,完成后依次进行数据拆分、数据分类、数据解析、历史爬虫、数据结构化、数据推送等步骤。
数据推送就是数据流程中将预处理结果返回到 Kafka 当中
此外在数据预处理,处在系统监控功能,负责数据预处理阶段的性能监控。
(3)实时计算
首先是读取封装,将数据预处理阶段传送过来的数据进行读取与封装
然后进行指标计算,计算八个指标
完成后进行爬虫识别,剔除非爬虫,只保留纯爬虫数据
保留纯爬虫数据完成后进行爬虫去重,重复数据的去除工作
最后进行爬虫入库将爬虫程序进入 Redis,避免数据丢失,将进行数据备份。
(4)数据展现层
进入 Redis 的部分数据需要写入或备份进 MySQL,
在爬虫程序进入 Redis 时,可以将数据备份到 HDFS 中,如果 Redis 丢失数据,可在 HDFS 中进行恢复。
以上为反爬虫项目的识别工作,而数据流程中的读取已知的爬虫返回到前端,爬虫再次查询即可剔除掉工作,在前期通过脚本实现,属于前端工作室的工作。
工作本质为:将爬虫识别后,写入 REDIS,被前端工作室按照股则读取爬虫程序,通过判断,进行屏蔽。
(5)逻辑架构数据离线报表的实现
在实时计算层阶段,把读取的数据不经处理,写入 HDFS, 为离线报表作准备。
离线报表作为程序,将 HDFS 的数据读入程序进行计算,将计算结果写入 MySQL,该过程对应数据流程中的离线报表的制作。
(6)前端展现
分为链路监控、数据预处理监控、爬虫识别监控、离线报表展现、数据规则配置等,这些监控作为前端数据的展现
写好的代码,数据来源于 Redis 和 MySQL,收集的前端数据在 Redis 和 MySQL 中读取。
前端展现通过 Redis 和 MySQL 支持
(7)系统管理
包括系统监控、策略管理、流程管理、规则管理、采集管理、系统关系等,本质为企业内部的模块,仅作了解
逻辑架构十分重要,准备理解从数据预处理到数据的备份再到离线计算等工作。
三、知识总结
数据采集层:使用数据采集器(lua),将数据采集到分布式消息系统(kafka)
数据处理层:
1.读取 kafka 的数据(两种方式)
2、进行数据拆分、数据分类、数据解析、历史爬虫判断、数据结构化、数据推送
3、将结构化数据推送回 Kafka
实时计算层:
1.读取 web 中配置的规则
2、通过规则进行反爬虫实时计算
3、将计算结果(爬虫)推送到 Redis
4、将计算当中指标推送到 hdfs
离线/准实时计算层:
1.读取 hdfs 的计算指标
2、通过指标进行数据的报表统计
3、统计完的数据推送到 mysql 中
数据展示层:
mysql 通过 web 报表进行展示