大数据环境下分布式数据抓取策略的研究与应用
2019-12-07段玉风
◆段玉风
大数据环境下分布式数据抓取策略的研究与应用
◆段玉风
(运城广播电视大学 山西 044000)
随着网络技术与移动通信技术的飞速发展,互联网已经进入了大数据时代,传统的数据抓取技术已经很难适应当前海量数据的应用需求,为了能够有效改善这一现状,本文提出了基于Hadoop的分布式网络爬虫改进策略,以满足大数据环境下用户对互联网信息的应用需求。
大数据;Hadoop;分布式网络爬虫
1 Hadoop大数据平台
Hadoop是一种分布式架构的数据处理系统,其技术优势主要体现在两个方面:一是硬件兼容性方面,Hadoop系统对网络集群设备的性能要求较低,这大大较低了系统构建的设备购置成本;二是应用软件兼容性方面,Hadoop系统提供有标准统一的程序接口,可为第三方应用软件开发提供稳定的运行环境[1]。Hadoop系统底层架构主要由海量数据存储和并行数据处理两个大核心功能组件构成,分别是HDFS、MapReduce[2]。其中HDFS(分布式文件系统)采用主从节点结构建立了分布式网络集群的数据管理模式,该模式下,主节点负责元数据的存储管理,从节点直接面向客户端对象,完成数据的读写操作,大大提高了数据的响应效率和数据管理的安全性;MapReduce(并行数据处理)提供了高效的分布式数据并行处理模型,通过HDFS系统创建对应的MapReduce任务,并在多个主节点间调度分配,使得多个节点设备之间能够协同工作,完成数据的分析处理。
Hadoop系统是当前最为主流的大数据管理平台,在数据存储与并行处理方面有着明显的技术优势,但在有效数据的抓取方面还有所欠缺,由于传统的网络数据抓取方式难以适用于Hadoop的分布式系统环境,因此如何快速、准确获取到用户需要的数据是当下大数据平台发展急待解决的问题。
2 分布式网络数据抓取策略
2.1 网络爬虫
数据抓取指的是依据用户需求,通过搜索引擎在大数据平台中检索到相关数据并反馈至请求客户端。这种网络数据抓取技术主要采用了一种叫作网络爬虫的排序算法作为核心算法。基于网络爬虫技术的数据抓取过程主要有五个步骤组成:
(1)构建数据抓取的检索连接库,用于管理能够提供适合需求的网站URL,这些URL为数据抓取的提供了对应的数据检索范围,被称为URL种子;
(2)依据用户请求,选取适合的URL种子建立并更新数据检索队列;
(3)通过URL种子检索,从相应的网页中获取到所需数据,并保持到本地文件系统当中;
(4)对已抓取数据当中的URL进行检测、去重,将重复数据结果删除;
(5)结束数据抓取,将结果响应至网络客户端。
网络爬虫技术的数据抓取策略主要有深度遍历、广度遍历与最优路径遍历等[3],前两种策略,主要是通过已锁定的任一URL种子,对其进行纵向或横向遍历,最优路径策略是需要先在相关的URL间绘制路径,通过预先设定的条件对路径进行优先选择,并沿选择的路径进行遍历。无论哪种策略,在面向海量的网络数据时,其复杂的数据关系都使得数据遍历的时间开销在成倍增加,每抓取一次数据,都会涉及对上亿的URL进行遍历。为了进一步提高海量数据抓取的时效性与准确性,基于Hadoop分布式数据平台的网络爬虫技术的应用研究受到了极大的关注,并提出了分布式网络爬虫概念。
2.2 分布式网络爬虫
分布式网络爬虫,简单讲就是部署在分布式集群设备上的数据抓取策略,借助网络集群并行完成海量数据的抓取工作。其核心问题涉及两个方面,一是各个集群节点间的任务协调问题,二是各个节点间的任务分配问题。目前这两类问题主要是通过建立节点间的通信模式来解决,分布式网络爬虫提供了三种通信模式:
主从模式:在节点间建立主从关系,主节点负责维护和管理URL种子列表,以及各个从节点之间通信和任务分配;从节点负责完成具体的检索任务,并将产生的结果反馈至从节点。该模式实现较为复杂,适用于复杂的数据处理环境。
自治模式:不设置专门的控制节点,各节点之间直接进行通信,协调任务管理,常见的有单向环形通信和全连通通信两种结构。单向环形通信中所有节点单向环形连接在一起,每个节点只能单向发送和接收信息;全连通通信中所有节点均可双方发送和接收信息。该模式实现较为简单,适用于数据处理量较少的分布式网络环境。
混合模式:即以上两种模式主要特点的结合,节点间直接进行通信,在通信过程中的错误信息、失败的任务分配等,会通过特定节点进行收集和整理,并予以纠正。
由于Hadoop平台的分布式文件管理模式也采用的是主从模式,因此数据抓取策略中也将重点针对主从模式的分布式网络爬虫技术展开研究。
3 基于Hadoop平台的网络爬虫系统框架设计
基于Hadoop平台的网络爬虫系统的基本设计架构如图1所示:
图1 分布式网络爬虫系统的设计架构
如图所示,分布式网络爬虫系统的功能框架包括URL数据库、抓取网页、解析数据、数据去重四个功能模块。其中抓取网页、解析数据和数据去重模块构建在Hadoop的MapReduce并行处理系统当中,以主从通信模式完成任务分配与执行,URL数据库内置于Hadoop的HDFS文件管理系统当中,用于存储URL网页数据。其工作流程如下:
首先通过抓取网页模块对URL数据库中的URL列表进行检索,并将检索过程中采集到的数据存储在URL数据库的DATA数据表中。
再通过解析数据模块对采集到的网页数据信息进行解析,将解析后取得的数据连接信息回存至DATA数据表中。
最后由数据去重模块对DATA数据表中的重复数据进行检索与删除。整个工作流程中所涉及的数据存储由Hadoop的HDFS进行统一管理。
分布式网络爬虫系统借助了Hadoop的分布式平台架构优势,在传统的数据抓取策略中加入了分布式通信概念,大大提高了网络爬虫系统的执行效率、运行稳定性和易扩展性,有效缓解了大数据环境中数据自动采集的时延、系统开销大、准确率低等问题。但这一改进策略主要针对的是静态网页设计中的数据抓取,针对动态网页的数据采集功能尚有欠缺,本研究还将就这一问题展开深入的研究与探讨,通过爬虫算法的策略改进,实现动态页面中海量数据的快速采集。
[1]陈新. Hadoop平台中作业调度算法分析与改进研究[J].微型机与应用,2016,35(11):80-82.
[2]马梅,刘东苏,李慧.基于大数据的网络舆情分析系统模型研究[J].情报科学,2016,34(3):25-28.
[3]翟周伟.Hadoop核心技术[M].北京:机械工业出版社,2015.