(二)KAFKA统一数据推送接口
1)非空校验
处理逻辑:除标题为空数据直接存入异常MySQL库中外,其他类型的数据直接流到数据质量校验步骤进行分析;
2)数据质量校验
主要是根据每个字段设置的校验规则,对其进行相应的校验处理。
3)二次排重处理:
由于Bloom Filte中的元素只可以添加,不可以被删除。又由于数据量较大(每天5000W左右),长时间会耗费很多内存资源,投入较大。
同时,排重库中并不需要保留所有的历史记录,比如只保留最近半年或一年的记录,如何自动清除历史记录,又成了新的问题。
所以,最后决定使用Redis的XX类型数据,利用Redis自身特性,对主键key设置自动过期时间,减少运维的难度和成本。
4)数据清洗处理
目前主要是对异常网站和特殊关键词进行清除。
处理对象:【正常】数据
5)数据矫正处理:
由于舆情系统对数据的时效性有较强的要求,为了保证数据覆盖度,减少人工补录带来的工作量,需要对发现的异常数据进行二次加工,然后推送到kafka。
处理对象:【异常】数据
标题矫正
根据数据质量校验中的五条规则,对数据进行二次清洗,然后推送到流程下一步。如果标题为空,则直接丢弃。 内容矫正
内容矫正主要分两种情况:空和非空。其各自的处理逻辑如下所示:
1)内容为空
此时进行一下处理:
① 使用URL调用正文获取接口,进行二次获取;
② 如果仍然为空,则使用标题作为内容进行推送,但是进行标识,以便kafka进行分发时,不发送信息到APP
客户端,增强用户体验;
2)内容非空
此时主要更具数据质量校验中的检测结果,对其进行二次清洗。主要包括:删除html内容,清楚特殊关键词、乱码等情况。
发布时间矫正
主要是根据非空规则和质量规则中,针对发布时间的校验结果,对其做相应的矫正。如:
① 为空,则用[采集](http://www.blog2019.net/tag/%E9%87%87%E9%9B%86?tagId=61)时间填充
② 大于采集时间,则用采集时间填充;
③ 格式不符合要求,则规范为”yyyy-MM-dd hh:mm:ss”格式等。
URL矫正
1)临时参数矫正
该种情况在搜索采集时比较常见。一般情况下是每个链接后面加一个时间戳参数,每搜索一次变一次,导致数据大量重复。所以,需要清除临时参数,还原链接本貌。比如:搜狗微信搜索采集时。
1)HTTP和HTTPS协议矫正;
有些信息可能因为来源的不同,导致网络协议不同,链接其实是指向同一条信息。此时,需要对http和https进行矫正、统一。
网站名称矫正
1)根据域名矫正
由于元搜索采集的信息,可能会没有网站名称信息,需要和信源系统进行关联出,进行填充。
数据类型矫正
1)根据域名矫正
把某一域名的数据全部更改为新的数据类型。
该种情况主要出现在综合搜索、或者栏目类型配置错误的情况,导致kafka数据分发异常,影响产品用户体验。
比如骂街的评论信息错误标识为新闻,导致只显示新闻信息的APP等产品的用户体验降低;
6)数据推送日志
需记录字段
包括但不限于:
① 接口服务ID
② 接口名称(方法名)
③ 接口接受请求时间
④ 推送结束时间
⑤ 接口接受数据量
⑥ 校验异常数据量
⑦ 推送kafka成功量
⑧ 推送kafka失败量
⑨ Kafka的Topic名称
⑩ 推送人(信源系统用户ID):以便快速定位采集人
⑪ 采集器ID:以便快速定位采集器,查询相关问题
相关推荐
分布式爬虫是网络数据抓取领域中的高级技术,它能够高效地处理大量数据抓取任务,尤其适合于大型网站和高并发场景。本项目标题提到的"这是一个爬虫代码",意味着我们将探讨的是一个用于自动收集网络信息的程序。描述...
- **AI技术融合**:利用机器学习、自然语言处理等AI技术对爬取的数据进行智能分析。 - **自动化部署**:通过DevOps工具实现爬虫项目的自动化部署和运维。 - **隐私保护**:随着法律法规对个人信息保护的加强,爬虫...
- **业务中台**:位于数据中台之上,侧重于业务逻辑的抽象和封装,为前端应用提供标准化的服务接口。 - **内容中心**:面向具体业务场景,专注于内容的生产、管理与分发,为用户提供个性化、高质量的内容体验。 ###...
1. 数据采集:设置数据爬虫抓取各大租房网站信息,或接入API获取实时数据,数据通过Kafka或Flume等工具传输到Spark集群。 2. 数据存储:数据可以存储在HDFS、Cassandra或HBase等分布式存储系统中,以满足大数据的...
爬虫系统架构设计方案是构建大规模数据抓取和处理的关键步骤,其内部逻辑涉及多个核心组件和流程。在设计这样的系统时,我们首先需要理解爬虫的基本工作原理:它通过模拟浏览器行为,自动请求网页,解析HTML或其他...
8. **数据整合**:所有爬虫节点抓取的数据最终需要合并,可以使用数据库或者文件系统来统一存储和处理。 分布式爬虫虽然增加了系统复杂性,但能显著提升爬虫效率,适应大规模、高并发的网络抓取需求。在Scrapy框架...
在现代大数据处理领域,Apache Flink是一个强大的流处理框架,被广泛用于实时数据处理和分析。本项目聚焦于“基于Flink的招聘网站实时分析与可视化”,旨在利用Flink的强大功能,实现实时抓取、处理招聘网站上的职位...
3. **实时流处理**:如果数据需要实时处理,那么“kite-agent”可能采用了流处理框架,如Apache Kafka或Spark Streaming,以实现实时数据的捕获、处理和分析。 4. **数据过滤与清洗**:采集的数据往往含有噪声和不...
Python-cola是一个专门为Python开发者设计的分布式爬虫框架,它简化了大规模网络数据抓取的复杂性,使得开发者可以专注于爬虫逻辑的实现,而无需深入理解分布式系统的工作原理。这个框架的核心理念是将复杂的分布式...
第三阶段是数据预处理,包括数据清洗、脱敏、拆分、分类、数据推送Kafka等功能。 第四阶段是数据分析,主要是使用Flink读取Kafka数据,并对数据进行封装、统计相关指标的结果数据。 第五阶段是规则匹配和打分,...
实时监控模块通过对系统采集的各种数据和特征进行实时监控和深度分析,智能识别和判断爬虫活动与性质,并通过监控系统反馈的稳定性和负载情况,间接反映可能的爬虫活动情况。 数据可视化管理模块则将难以识别的数据...
【标题】"基于Java的分布式爬虫框架"指的是使用Java编程语言实现的一种能够在多台机器上协同工作的网络爬虫系统。...实际开发中,还需要考虑反爬策略、数据清洗、性能监控等更多细节,以构建一个稳定且高效的爬虫系统。
- **实时监控**:通过构建实时数据处理平台(如Apache Kafka),银行可以实现对贷款状态的实时监控,快速响应可能出现的问题。 #### 贷款系统的安全性和合规性 - **数据加密**:为了保护敏感信息的安全,IT系统需要...
15. 大数据的诅咒:指数据爆炸带来的挑战,如数据质量问题、存储成本和处理复杂性。 16. 数据库与数据模型设计:涉及ER模型、星型模型和雪花模型等。 17. 仪表板设计和商业智能:理解业务需求、指标选择和工具使用...
6. **状态管理**:监控节点状态,处理错误和重试逻辑,确保数据完整性和一致性。 7. **负载均衡**:根据节点负载情况动态调整任务分配,优化资源利用率。 总之,"distribute_crawler-master.zip" 提供了一个完整的...
标题中的“基于SSM的爬虫系统”指的是一个使用Spring、Spring MVC和MyBatis作为核心技术框架的网络爬虫项目。这个系统旨在自动化地抓取互联网上的数据,并对其进行处理和存储。下面将详细阐述这些技术及其在爬虫系统...
五横分别指数据采集层、数据处理层、数据分析层、数据访问层和数据应用层。而一纵,即数据管理层,贯穿各个层次,负责数据的管理和运维。 数据采集层是数据流入系统的入口,包括离线ETL、实时采集和互联网爬虫。...
Spark Streaming提供了高效、可扩展、高可靠性的实时数据处理能力,广泛应用于日志分析、实时监控、网络爬虫等场景。 在Spark Streaming中,最重要的概念之一是RDD(弹性分布式数据集),它是Spark中分布式内存抽象...
其中,Kafka 负责数据的接入和存储,Storm 负责数据的处理和分析,UBT Server 负责数据的收集和存储,BUClients 负责业务逻辑的实现,DB 负责数据的存储,Redis 和 HBASE 负责数据的缓存和存储,ES 负责日志的查询和...