CN109740038A - 网络数据分布式采集系统及方法 - Google Patents

网络数据分布式采集系统及方法 Download PDF

Info

Publication number
CN109740038A
CN109740038A CN201910002818.XA CN201910002818A CN109740038A CN 109740038 A CN109740038 A CN 109740038A CN 201910002818 A CN201910002818 A CN 201910002818A CN 109740038 A CN109740038 A CN 109740038A
Authority
CN
China
Prior art keywords
data
node
back end
control node
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910002818.XA
Other languages
English (en)
Inventor
陆夏根
朱世伟
于俊凤
魏墨济
李晨
徐蓓蓓
张铭君
李宪毅
杨爱芹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Qianrui Technology Co Ltd
Original Assignee
Anhui Qianrui Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui Qianrui Technology Co Ltd filed Critical Anhui Qianrui Technology Co Ltd
Priority to CN201910002818.XA priority Critical patent/CN109740038A/zh
Publication of CN109740038A publication Critical patent/CN109740038A/zh
Pending legal-status Critical Current

Links

Abstract

本公开提供了一种网络数据分布式采集系统及方法,利用分布式爬虫去重算法对各来源的网页数据进行爬取,对爬取的页面进行预处理,利用视觉的页面分割算法构建相应的树,并根据视觉规则进行噪音节点的剪枝,对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,通过规则推断出数据记录块节点与数据属性节点;利用分布式消息系统将预处理后的数据源分发,提供数据流,对数据流中的数据节点本身状态进行描述,形成状态信息;利用Hadoop分布式文件系统对数据流进行选择存储的操作,进而分发。

Description

网络数据分布式采集系统及方法
技术领域
本公开涉及一种网络数据分布式采集系统及方法。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
以国际互联网形成为标志的网络技术革命把人类社会推向信息网络化时代,形成全新的社会生活空间——网络环境,实时映射着社会生活的方方面面。在移动网和互联网飞速发展的时代,信息高度膨胀使得当前安全形势变得更加错综复杂,网络战争已经成为非传统社会安全领域的一个重要课题。
由于论坛、微博、博客、私人空间、人人网等社交网站承载着大量的数据流动,在传统安全防范手段难以有效发挥作用的电子荒野上,亿万个网民的亿万种声音,利用互联网的隐蔽性、普及性、虚拟性以及时空超越性等特点隐身,给社会安全和国家稳定带来巨大挑战。
因此,如何对社交大数据中的敏感信息进行实时、及时的采集,以为后期敏感词汇的抓取,敏感话题发现、犯罪组织关系挖掘以及杜绝谣言的传播等方面具有重大的影响。
发明内容
本公开为了解决上述问题,提出了一种网络数据分布式采集系统及方法。
一种网络数据分布式采集方法,包括以下步骤:
(1)对各来源的网页数据进行爬取,构建哈希表保存已经访问过的统一资源定位符,并利用布隆过滤器进行地址判重;
(2)对爬取的页面进行预处理,利用视觉的页面分割算法构建相应的树,并根据视觉规则进行噪音节点的剪枝,对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,通过规则推断出数据记录块节点与数据属性节点;
(3)对数据流进行选择存储的操作,数据节点通过心跳协议定期向控制节点汇报其状态信息,控制节点根据状态信息作为存储策略来选择数据节点是否合适的依据,根据设定的阈值与数据节点的状态信息来确定是否选择这个数据节点;
(4)设计弹性分布式数据集结构,创建不同的分区,对数据进行内存的转存,对选择的数据进行优化存储,提取不同分区的存储数据,实现分布式采集。
作为进一步的限定,所述步骤(1)中,构建多个哈希表,每个哈希表通过一个哈希函数将一个网页映射成一个位阵列中的一个点,利用布隆过滤器查看每个哈希表,只要查看对应的点是不是1就能够确定对应的集合中是否包含该网页。
各个来源包括但不限于互联网、无线网络或监控网络。
作为进一步的限定,所述步骤(2)中,对页面的实体属性抽取,利用视觉分割算法VISP将结果页面进行区域分割并构建对应的Vision树,将结果页面分为:
(a)内部页面,包含同一页面内各元素及其关系;
(b)详细页面,包含了具体实体的详细信息,通过内部页面的超链接访问;
(c)同类页面,为同一站点下由相同模板生成,其包含实体具有一定的结构、位置和外观相似性;
利用了Markov逻辑网对分类关系进行建模以实现特征的有效合并,通过对三类特征的集成,计算出所有最大谓词,完成对实体属性的推理抽取。
作为进一步的限定,所述步骤(3)中,利用Kafka作为中间件进行数据源分发。
作为进一步的限定,所述步骤(3)中,Hadoop分布式文件系统中只有控制节点和数据节点,控制节点负责系统控制和策略实施,数据节点负责存储数据,当客户端向HDFS文件系统中存储数据时,首先客户端和控制节点通信,控制节点根据副本系数去选择数据节点,然后返回给客户端选择的数据节点,最后客户端和这些数据节点直接通信传输数据。
作为进一步的限定,所述步骤(3)中,状态信息包括成员变量、存储容量、剩余容量和最后更新时间信息,这些信息需要数据节点定期向控制节点汇报,控制节点利用这些信息作为数据存储策略的选择依据;
数据节点通过定期的向控制节点发送心跳,汇报当前数据节点的状态信息,同时告诉控制节点自己还活着,控制节点通过对数据节点的心跳答复发送相应的命令信息。
作为进一步的限定,所述步骤(3)中,控制节点在接收到数据节点的心跳后的算法处理过程如下:
对控制节点的身份进行检查包括版本信息和注册信息;
控制节点更新该数据节点的状态信息;
控制节点查询该数据节点的块状态,然后生成对数据节点的命令列表;
控制节点检查当前的分布式系统更新状态;
控制节点将生成的命令信息发送给相应的数据节点;
心跳处理完毕。
作为进一步的限定,所述步骤(3)中,采用机架感知的策略来确定数据节点的位置,通过一个机架感知的过程,控制节点确定数据节点所属的机架id,默认的存储策略将副本存放在不同的机架上,将副本数据均匀的分布在集群之中。
作为进一步的限定,所述步骤(3)中,控制节点存储HDFS集群中所有节点的方式为集群中的一个路由器节点包含多个路由器节点,或包含多个机架节点,一个机架节点包含多个数据节点,控制节点通过这种树状网络拓扑结构来表示集群中数据节点在物理位置上的映射。
作为进一步的限定,所述步骤(3)中,存储策略选择数据节点前需要判断集群中数据节点的状态和备份系数,然后计算每个机架上的最大选择节点数;
节点位置策略首先会在本地选择一个数据节点,并且使用节点选择策略判断节点是不是合适,其次会在远程选择一个数据节点,同样使用节点选择策略判断节点是不是合适,最后会在本地再选择一个数据节点,还需要使用节点选择策略判断节点是不是合适;
如果副本系数大于设定值,则剩余的数据节点会在集群中随机选择,同样需要使用节点选择策略判断节点是不是合适;
存储策略在返回选择的数据节点之前,需要调用节点排序策略对节点排序,之后才返回给控制节点。
作为进一步的限定,所述步骤(4)中,设计弹性分布式数据集结构,弹性分布式数据集包含多个分区,在数据物理存储上,弹性分布式数据集的一个分区对应一个块,这些块分布地存储在不同的机器节点中,块存储在内存中,当内存空间不足时,部分块缓存于内存中,其余数据存储在磁盘中。
作为进一步的限定,所述步骤(4)中,利用一哈希函数将存储数据分割成n个桶,其中第i个桶,称为Di,完全存储在内存,其他桶当写入缓冲区写满时,数据存储到磁盘,在内存中用Reduce函数处理中间结果数据,随后其他桶依次从磁盘读取数据,一次一个,如果一个桶Di可以装入内存,则完全在内存中执行Reduce任务,否则,用另一哈希函数再对它递归的进行分割,直至可以装入内存,控制节点保存集群中计算节点信息,并建立任务调度机制、数据分片调度和追踪机制,以及并行计算状态追踪机制;计算节点则通过与控制节点通信,开辟内存空间,创建任务线程池,运行控制节点分派的任务。
一种网络数据分布式采集系统,包括:
爬取模块,被配置为利用分布式爬虫中去重算法对各来源的网页数据进行爬取,构建哈希表保存已经访问过的统一资源定位符;
布隆过滤器,进行统一资源定位符地址判重,查看每个哈希表,查看对应的点值确定对应的集合中是否包含统一资源定位符,渠道重复的统一资源定位符;
分类模块,被配置为利用视觉的页面分割算法构建数据树,并根据视觉规则进行噪音节点的剪枝,对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,通过规则推断出数据记录块节点与数据属性节点;
存储模块,被配置为对数据流进行选择存储的操作,数据节点通过心跳协议定期向控制节点汇报其状态信息,控制节点根据状态信息作为存储策略来选择数据节点是否合适的依据,根据设定的阈值与数据节点的状态信息来确定是否选择这个数据节点;
转存模块,被配置为构建弹性分布式数据集结构,创建不同的分区,对数据进行内存的转存,对选择的数据进行优化存储,提取不同分区的存储数据,实现分布式采集。
与现有技术相比,本公开的有益效果为:
本公开用分布式爬虫中URL去重算法对各来源的网页数据进行爬取,构建哈希表保存已经访问过的URL,并利用布隆过滤器进行地址判重,能够在对应的网页还没有更新的时候不需要重新爬取,避免了不必要的资源消耗,同时也避免了爬虫陷入链接组成的环状死循环,同时,减少了判重的操作,节省了大量不必要的开支。
本公开利用视觉规则过滤掉所有非数据记录节点的节点,可识别非连续型数据记录,解决了传统方法仅识别单一数据区域的问题,且可适用于多种页面编码语言;
本公开推理的最终结果以表格形式进行存储,可有效反映结果页面对应的数据库的基本结构,此外,逻辑网可直接进行规则定义,从而简化了传统数据抽取中的属性语义标注的环节。
本公开的数据存储策略是HDFS存储数据过程中使用的策略,包括位置选择、节点选择、节点排序。HDFS集群通过使用此策略实现了数据的高效存储,使得集群具有稳定性和可靠性,将副本数据均匀的分布在集群之中,有利于当节点或者机架故障的情况下的负载均衡,改进了写的性能同时对数据可靠性和读取性能没有影响。
本公开针对知识信息大数据分布式存储且文本和图片粘合的特征,力基于分布式内存计算框架,以消除中间数据写回磁盘的I/O开销,同时设计弹性分布式数据集结构,并结合数据本地性和传输优化、调度优化策略,最终实现大数据的高实时性、高响应性分析。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是本公开的逻辑架构;
图2是本公开的节点位置策略流程图;
图3是本公开的基于Hash技术的中间结果优化模型;
图4是本公开的基于动态增量Hash技术的快速内存处理模型;
图5是本公开的RDD的数据管理模型图;
图6是本公开的分布式内存计算架构图;
图7是本公开的MapReduce框架示意图;
具体实施方式:
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,构建整体系统架构,通过构建分布式实时采集系统完成多来源多通道的大数据采集与抓取,数据来源为互联网社交网络、在线论坛、微博客、内容分享社区等主流网络平台;通过可定制、可扩展数据采集模板和包装器,实现对多数据区域非连续性及嵌套属性数据的准确抽取;构建基于Markov逻辑网的数据抽取模型,对数据节点属性进行推理和语义标注,实现对缺失数据的精炼和有效补充;通过基于BloomFilter的大规模链接查重等机制实现对链接的非重复性下载。
在数据采集的基础上,设计基于Kafka和Memcached缓存的分布式消息中间件,构建数据源和数据分析处理平台之间的桥梁,实现GB级数据的秒级传送。
数据分析处理平台主要负责通过大数据技术和数据挖掘技术实现对数据的深度精准分析和处理,结合不同大数据处理平台-分布式批处理架构Hadoop、基于内容计算的高实时性架构Spark、高容错流处理架构Storm,通过自然语言处理、人工智能、数据挖掘技术构建相应统计模型、分析模型和挖掘模型实现基于数据驱动的敏感信息挖掘与自进化预警功能,主要有相同话题内容的事件识别和相关性检测、基于立场的事件建模、观点相悖度计算、用户同一性检测、预警系统的自进化等功能,通过该一系列功能达到敏感事件、危险性人物和组织的识别和预警功能。
为方便用户访问网络数据挖掘与分析平台,本功能模块提供多种方式的接口和访问方式,如以API的方式直接为用户程序提供接口,以Web Service的方式或消息队列的形式方便用户程序获取格式化的结果数据,以B/S或C/S的方式为初级用户提供简单易用的界面等。
下面就多来源多通道适配的大数据分布式实时传输与分发、多源、异构流态大数据分布式在线实时处理以及基于分布式处理平台的数据挖掘与深度分析环节进行详细的说明。
多来源多通道适配的大数据分布式实时传输中,基于Bloom filter算法的URL去重,分布式爬虫中URL去重算法一直是重要的技术点,算法的优劣对分布式爬虫的运行效率有很大影响。判断地址是否重复实际上就是判断当前URL是否已经被爬取过,如果当前URL已经爬取过,在其对应的网页还没有更新的时候就不需要重新爬取,这样,不仅避免了不必要的资源消耗,同时也避免了爬虫陷入链接组成的环状死循环。
一个直接而又有效的方式就是通过一个哈希表来保存所有已经访问过的URL。但是随着访问过的地址越来越多,这个哈希表的尺寸随之增大,最终超过内存可以容纳的规模。并且目前外存的访问速度低于内存若干数量级,加之每个URL都需要进行判重的操作,必然会造成大量不必要的开支。所以我们希望能够把需要的数据结构都保存在内存中。基于这些考虑,我们选择了布隆过滤器(Bloom Filter)进行地址判重。
如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路.但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢。不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数将一个元素映射成一个位阵列(Bit Array)中的一个点。这样一来,我们只要看看这个点是不是1就知道可以集合中有没有它了。这就是Bloom filter的基本思想。
Hash面临的问题就是冲突。假设Hash函数是良好的,如果我们的位阵列长度为m个点,那么如果我们想将冲突率降低到例如1%,这个散列表就只能容纳m/100个元素。显然这就不叫空间有效了(Space-efficient)。解决方法也简单,就是使用多个Hash,如果它们有一个说元素不在集合中,那肯定就不在。如果它们都说在,虽然也有一定可能性它们在说谎,不过直觉上判断这种事情的概率是比较低的。
相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数。另外,Hash函数相互之间没有关系,方便由硬件并行实现。Bloom filter不用存储数据项,只用存储少量的集合结构位数组。除了空间优势以外,Bloom filter在添加元素和查找元素的时间效率都是固定常数,不会随着元素数量的增加而改变。正是拥有了这些优势,使得Bloom filter算法适合处理海量数据。但Bloomfilter也存着不足之处:随着集合中元素数量的增加使得其假阳性(误差率)概率也不断增加,并且在Bloom filter表示的集合中存在的元素无法删除。
基于Markov进行数据抽取,Markov网也称Markov随机场(Markovrandomfield,简称MRF),是一个变量集合X=(X1,X2,…,Xn)∈χ的联合分布模型.它由一个无向图G和定义于G上的一组势函数φk组成.其中,无向图的每个节点都代表一个随机变量,而G中的每一个“团(clique)”都对应着一个势函数(为非负实函数),表示团的一个状态.Markov网所代表的变量集的联合分布表示为
P(X=x)=1/Z∏kφk(X{k}) (1)
其中,X{k}表示Markov网中第k团的状态,即对应于第k个团中所有变量的取值状态。Z是归一化因子,且Z=∑x∈χ∏kφk(x{k})。通常,公式(1)表示为对数线性模型,以便于对Markov网中蕴含的实体特征进行具体化,并使得推理和学习等过程更加方便.若把Markov网中每个团的势函数表示为指数函数,指数项为对应团的加权特征量,则可得:
P(X=x)=1/Zexp{∑jωjfj(x)} (2)
其中,ωj表示权重,fj(x)表示特征函数.理论上,这里的特征函数可以是任意的实值函数,然而为方便讨论,本公开涉及的特征函数均为二元函数.从用势函数表达的公式(1)来看,可直观地认为每个特征量对应于一个团的某一状态,即团中变量集的一个取值,且该特征量的权重等于logφk(x{k})。
一阶逻辑知识库可看作是在一个可能世界的集合上建立一系列硬性规则,即如果一个世界违反了其中的某一条规则,那么这个世界的存在概率即为零。Markov逻辑网的基本思想是让那些硬性规则有所松弛,即当一个世界违反了其中的一条规则,那么这个世界存在的可能性将降低,但并非不可能。一个世界违反的规则越少,那么这个世界存在的可能性就越大。为此,给每个规则都加上了一个特定的权重,它反映了对满足该规则的可能世界的约束力。若一个规则的权重越大,则对于满足和不满足该规则的两个世界而言,它们之间的差异将越大。Markov逻辑网的定义如下:
Markov逻辑网L是一组二元项(Fi,wi),其中,Fi表示一阶逻辑规则,wi是一个实数。这组二元项(Fi,wi)与一组有限常量集C={c1,c2,…cn}一起定义了一个Markov网:
(1)L中的任意闭原子(groundatom)都对应了中的一个二值节点。若此闭原子为真,则对应的二值节点取值为1;若为假,则取值为0。
(2)L中的任意闭规则(groundformula)都对应着一个特征值,若此闭规则为真,则对应的特征值为1;若为假,则特征值为0。并且这个特征值Fi的权重为二元项中该规则对应的权重wi。
规则可由一组特殊应用的谓词来定义,这些谓词可分为query谓词与evidence谓词,规则进而反映了谓词间的相互关系。谓词用于标注Vision树的属性节点如(IsName(n))、(IsPrice(n))等;evidence谓词一般指观察到的内容或节点自身具有的属性如FirstLetterCapital(n)、ContainCurrencySymbol(n)等。
结合Markov逻辑网方法,本公开通过以下三个步骤实现对结果页面的实体属性抽取。首先将页面进行预处理,利用视觉的页面分割算法VISP构建相应的Vision树,并根据视觉规则进行噪音节点的剪枝,方便后续块的标注工作;然后根据Site-Level与Page-Level知识对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,最后通过规则推断出数据记录块节点与数据属性节点。第一步的目标在利用视觉分割算法VISP将结果页面进行区域分割并构建对应的Vision树。利用视觉规则过滤掉所有非数据记录节点的节点,可识别非连续型数据记录,解决了传统DOM树仅识别单一数据区域的问题,且可适用于多种页面编码语言(HTML、XML等)。
步骤二负责对页面特征的抽取。大多数结果页面可以分为Ⅰ内部页面,包含同一页面内各元素及其关系;Ⅱ详细页面,如图区域包含了具体实体的详细信息,通过内部页面的超链接访问;Ⅲ同类页面为同一站点下由相同模板生成,其包含实体具有一定的结构、位置、外观相似性。
步骤三利用了Markov逻辑网对上述关系进行建模以实现特征的有效合并。通过对三类特征的集成,可计算出所有最大谓词,完成对实体属性的推理抽取。推理的最终结果以表格形式进行存储,可有效反映结果页面对应的数据库的基本结构,此外,逻辑网可直接进行规则定义,从而简化了传统数据抽取中的属性语义标注的环节。
建立基于Kafka的中间件,消息中间件借鉴了观察者(Observer)模式又名发布-订阅消息(Publish/Subscribe)模式的思想,消息管理器可以管理多种消息,每种消息都有一个“主题”来进行区分,消费者都是通过主题在消息管理器中进行订阅,不需要生产者的任何信息,同时生产者也不需要知道消费者的任何信息,只需要按“主题”发布消息就可以了。
Kafka是一个分布式消息系统,结合了传统的日志聚合器和消息传递系统的优势,以较低的延迟来收集和分发大量的数据。一方面,Kafka是一个分布式、可伸缩、高吞吐的消息中间件,另一方面,Kafka提供了一个类似于消息系统的API以允许各类应用实时消费数据。其主要设计目标如下:
高效的持久化能力,达到对TB级以上的数据也可以在常数时间复杂度读取和写入硬盘;高吞吐率,使由低成本的个人计算机组成的kafka消息集群系统也能够支持每秒100K条以上消息的吞吐能力;支持Broker间的消息分区,并保证分区中消息读取的有序性;有在线水平扩展能力。
本公开选择kafka作为中间件由于以下特点。
解耦:kafka消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,客户端通过实现kafka接口完成与消息系统的通信操作。这种设计降低了系统模块间的耦合性,可以根据用户需求对相关功能模块进行替换修改。
扩展性:kafka消息系统采用了分布式架构,所以当输入数据量增大时,kafka可以依据流量扩展broker节点,而不用修改代码和配置文件。
缓冲能力:在访问量剧增的情况下,应用仍然需要继续发挥作用,虽然这种突发性变化并不常见,但是面向流数据处理的应用,应该具有应对这种情况的能力。kafka消息队列能够缓冲系统的流量压力,使系统免于在大数据的压力下失效。
健壮性:作为分布式消息系统,kafka在某一部分功能失效时,不影响整体系统的工作。
异步:kafka分布式消息系统采用异步通信机制,消息进入系统缓存后系统无需立刻应答或处理,可以根据用户需求和配置情况选择。
Kafka这个分布式消息系统以较低的延时可以收集和分发大量日志数据文件。系统设计了数据收集系统和消息队列,所以同时可以适应在线和离线处理两种方式。在吞吐量和可伸缩性方面,kafka在系统中做了一些设计事其在这两个方面有更好的表现,例如,分布式架构,分区存储,顺序硬盘读写等方式。Linkedin公司在使用kafka一段时间后,每天可以达到百G级别的处理量。
经综合考虑,本公开采用Kafka进行数据源分发,为Spark、Storm提供数据流。
利用Memcached缓存,Memcached是一个高性能的分布式的内存对象缓存系统,主要用于避免对数据库的过多访问,减轻数据库压力。它的基本原理是通过在内存里维护一张统一的巨大的hash表,用来存储各种格式的数据,包括图像、视频、文件、文字以及数据库检索的结果等。通过将有用的数据缓存起来,下次用户再请求相同的数据时,再直接访问缓存,避免了对数据库的重复访问和存取操作,减少了冗余数据在网络上的传输,从而大大提高读取速度。
Memcached是系统的主程序文件,以守护进程方式运行于一个或多个服务器中,随时会接收客户端的连接和操作,使用共享内存存取数据。
Memcached缓存技术特征有如下几点:
(1)协议简单,协议是基于文本行的,可以直接通过远程登录到Memcached服务器上,进行数据的存取操作。
(2)基于libevent事件处理,Libevent是使用C语言开发的程序库,将Linux系统的kqueue等事件处理功能封装成一个接口,相比传统的select语句,性能要更高一些。
(3)内置的内存管理方式,存取数据很快。缓存替换件策略是LRU算法,即最近最少使用算法。LRU算法的基本原理是,当分配的内存可用空间不足时,它利用缓存替换算法,首先淘汰最近最少使用的数据,将这些数据替换出内存,释放存储空间来存储其它有用的数据。
(4)分布式,各个Memcached服务器之间采用分布式的方式,相互之间不影响,独立完成各自的工作。分布式功能由Memcached客户端部署,Memcached服务器本身并不具有分布式功能。
Memcached的工作原理如下:与很多cache工具相似,它采用的是C/S模式,在server端启动服务进程时可以设置监听的ip、自己的端口号、使用的内存大小等几个关键参数。服务进程启动后,服务就是一直可用的。Memcached的目前版本是通过C语言实现的,支持各种语言编写的客户端。server与客户端建立连接后,就可以从缓存服务器中存取数据了,数据在缓存服务器中都是以键值对的形式保存,数据对象的获取就是通过这个唯一的键值进行的,键值(key,value)对是Memcached能够处理的最小单位。简单一点来说,Memcached的工作就是维护一张巨大的hash表,这张hash表存放在专门的机器内存中,通过这张hash表存储频繁读写的热点数据文件,避免直接操作数据库,可以减轻数据库负载压力,进而提高网站整体性能和效率。
多源、异构流态大数据分布式在线实时处理过程,以实时采集数据为基础的数据流处理是大数据平台应用构造的关键。面对持续到达的数据流,数据流处理系统必须在用户可接受时间内快速对其进行响应并即时输出结果。采用可预处理、数据分拣和复用中间结果方法避免数据流到达时的历史数据重复处理开销,使数据流处理本地化,减少节点间的数据传输开销。
HDFS系统中只有控制节点和数据节点,控制节点负责系统控制和策略实施,数据节点负责存储数据。当客户端向HDFS文件系统中存储数据时,首先客户端和控制节点通信,控制节点根据副本系数去选择数据节点,然后返回给客户端选择的数据节点,最后客户端和这些数据节点直接通信传输数据。这一过程涉及到数据节点和控制节点的心跳通信、数据节点的数据结构、数据节点的状态信息、以及控制节点的存储策略。数据节点通过心跳协议定期向控制节点汇报其状态信息。控制节点根据状态信息作为存储策略来选择数据节点是否合适的依据,存储策略会根据闭值与数据节点的状态信息来确定是否选择这个节点。同时选择哪些位置的数据节点也要根据系统的策略来确定。
(1)状态信息:状态信息是数据节点本身状态的描述,是对数据节点操作和分析的基本;也是其数据结构的重要组成部分,同时也涉及到心跳协议对这些信息的传递。通过
对其状态信息的分析,深入理解如何获取、传递和处理其状态信息,是优化状态信息的基础,同时也是实现DIFT存储策略依据的基础。
目前其状态信息包括DatanodeInfo类的成员变量,capacityBytes(存储容量),remainingBytes(剩余容量),lastUpdate(最后更新时间)等信息,这些信息需要数据节点定期向控制节点汇报,控制节点利用这些信息作为数据存储策略的选择依据。这些信息可以通过Linux系统命令获得,在HDFS中通过Shell类来运行Linux的系统命令。
(2)心跳协议:心跳协议在Hadoop分布式的架构中有着无可替代的重要作用。通过心跳协议保持着控制节点和数据节点之间、数据节点与数据节点之间的联系,让控制节点了解数据节点的状态,让数据节点从控制节点处获取最新命令,以及让数据节点了解其他数据节点的状态。
数据节点通过定期的向控制节点发送心跳,汇报当前数据节点的状态信息,同时告诉控制节点自己还活着,而控制节点通过对数据节点的心跳答复发送一些命令信息,例如,哪些块可以删除了,哪些块损坏了,哪些块需要增加副本等。Hadoop中通过dfs.heartbeat.interval参数来控制数据节点向控制节点发送心跳的频率,默认值是3秒,即每3秒发送一次,过高的频率可能会对集群的性能有影响,过低的频率可能会导致控制节点不能获得数据节点的最新状态信息。
控制节点在接收到数据节点的心跳后的算法处理过程如下:
(1)首先对控制节点的身份进行检查包括版本信息,注册信息等;
(2)控制节点更新该数据节点的状态信息,例如磁盘空间,磁盘使用空间,磁盘空闲空间等;
(3)控制节点查询该数据节点的块状态,然后生成对数据节点的命令列表。例如删除损坏数据块,增加副本个数不足的数据块等;
(4)控制节点检查当前的分布式系统更新状态;
(5)控制节点将生成的命令信息发送给相应的数据节点;
(6)心跳处理完毕。
数据节点的状态信息会通过心跳协议由数据节点向控制节点发送,数据节点的存储策略就需要使用这些状态信息。
(3)数据存储策略
数据存储策略是HDFS存储数据过程中使用的策略,包括位置选择、节点选择、节点排序。HDFS集群通过使用此策略实现了数据的高效存储,使得集群具有稳定性和可靠性,通过深入分析这些策略的原理,可以进一步理解策略的实现方法和其中不足的地方。其中默认的位置策略是本地选择一个节点,本地机架选择一个节点,其他机架选择一个节点。下面详细介绍其实现原理。
HDFS采用一种称为机架感知的策略来确定数据节点的位置,控制节点采用NetworkTopology数据结构来实现这种策略。如此可以改进数据的可靠性、可用性和网络带宽的利用率。通过一个机架感知的过程,控制节点可以确定数据节点所属的机架id。默认的存储策略就是将副本存放在不同的机架上,就可以防止整个机架发送故障数时造成数据丢失,并且读数据的时候就可以充分利用机架的带宽。这种策略设置将副本数据均匀的分布在集群之中,有利于当节点或者机架故障的情况下的负载均衡,但是增加了读取和写入操作时机架之间传输的代价。
NetworkTopology类将整个集群中的数据节点存储成了一个树状网络拓扑图。默认情况下,副本系数是3,HDFS的存放策略是在本地机架节点上存储一个,同一个机架的另一个节点上存储一个副本存,其他机架的节点上存储最后一本。这种策略使得机架间的数据传输减少了很多,提高了数据写入的效率。机架的故障比节点的故障少很多,所以这种策略对数据的可靠性和可用性检响。与此同时,因为数据块存放在两个不同的机架上,所以在这种策略下读取数据时的网络传输需要的带宽。在这种策略下,副本并是非均匀的存借同的机架上的;一个节点上存储三分之一的副本,一个机架上存储三分之二本,剩下的机架中存储其它副本,并且均匀分布,这种策略改进了写的性能同时对数据可靠性和读取性能没有影响。
集群中的一个路由器节点可以包含多个路由器节点,也可以包含多个机架节一个机架节点可以包含多个数据节点,这是控制节点使用NetworkTopology来存储HDFS集群中所有节点的方式。控制节点通过这种树状网络拓扑结构来表示集群中数据节点在物理位置上的映射,可以方便的计算任何两个数据节点之间距离,同时也为控制节点检测集群的负载情况提供计算依据,例如,属于同一个机架的数据节点之间在物理距离上是非常近的,可能在一个局域网内。同时控制节点也可以计算局域网目前网络带宽的负载情况,这对控制节点为一个文件的块副本选取存储节点以提高存集群的储性能是非常重要的。
基于以上的数据节点的网络存储模型,控制节点就可以利用存储策略中的位置策略来选择数据节点。存储策略中的位置策略的算法流程如图2所示:
以上过程是最基本的位置选择方法,默认副本系数为3,基于以上的网络模型,可以方便的在本地机架选一个数据节点,在远程选择一个数据节点,在本地机架选择第三个数据节点。算法说明如下:
1、存储策略选择数据节点前需要判断集群中数据节点的状态和备份系数,然后计算每个机架上的最大选择节点数。
2、节点位置策略首先会在本地选择一个数据节点,并且使用节点选择策略判断节点是不是合适。其次会在远程选择一个数据节点,同样使用节点选择策略判断节点是不是合适。最后会在本地再选择一个数据节点,还需要使用节点选择策略判断节点是不是合适。
3、如果副本系数大于3,则剩余的数据节点会在集群中随机选择,同样需要使用节点选择策略判断节点是不是合适。
4、存储策略在返回选择的数据节点之前,需要调用节点排序策略对节点排序,之后才返回给控制节点。
选择本地机架节点和远程机架节点都有一个节点为参考,实现方式是:如果参考节点为空,则从整个集群中随机选择一个合适的数据节点作为本地机架节点;否则就从参考节点所在的机架中随机选择一个合适的数据节点作为的本地机架节点,若这个集群中没有合适的数据节点,则从已选择的数据节点中选出一个作为新的参考点,如果找到了一个新的参考点,则从这个新的参考点在的机架中随机选择一个合适的数据节点作为此时的本地机架节点;否则从整个集群中随机选择一个合适的数据节点作为此时的本地机架节点。如果新的参考点所在的机架中仍然没有合适的数据节点,则只能从整个集群中随机选择一个合适的数据节点作为此时的本地机架节点。
在选择节点时候需要判断数据节点是否是合适节点,这需要根据数据节点的状态信息来判断选择节点,如何设置判断的那些信息、每个状态的i}值和算法流程,这就是存储策略中的节点选择策略,也是优化存储策略需要考虑的问题。最终选择出的数据节点会以管道的方式返回给控制节点,管道里面保存的是根据相应的策略排队的数据节点的数组。管道返回数据节点数组的时候,如何根据数据节点的信息来重新排队,这就是节点排序策略。在集群中网络带宽是很重要的资源,所以管道的数据节点数组的排队设计应该对网络位置和客户端距离比较近的节点设置以较高的比较权重,整体考虑集群的性能,其他状态信息需要根据需求设置不同的比较权重来满足实际应用的需求。这些设计都在DIFT存储策略里面实现,同时比较的阈值都是可配置的。
内存计算(In-Memory Computing),实质上就是CPU直接从内存而非硬盘上读取数据,并对数据进行计算、分析。针对海量数据以及实时数据分析的需求。传统的大数据处理是先对数据进行分块,然后对磁盘中的数据进行并行读取处理。因此,磁盘和网络的数据I/O会成为系统可扩展性的瓶颈。例如,SATA磁盘的随机访问延时在10ms左右,固态硬盘的随机访问延时在0.1-0.2ms,而内存DRAM的随机访问延时是100ns左右。因此内存和外存之间会形成存储墙。针对这一情况内存技术就孕育而生,CPU直接读取存放在内存中的数据而不是从硬盘中读取数据,使得数据的来源不是磁盘,解除磁盘I/O引起的系统可扩展性瓶颈。
MapReduce模型适合于大规模数据的批处理计算,并且Map和Reduce是以同步的方式来运行,而且对产生的大量中间结果排序后写回磁盘,致使系统I/O开销极大,致使MapReduce模型不适合于对海量的、快速的流数据进行实时处理的主要限制。大数据实时计算平台以MapReduce处理框架为基础,提出一种可扩展、分布式的流数据实时处理方法。
(1)基于Hash技术的中间结果优化
Map的输出即中间结果,将会继续写入到缓冲区,在把缓冲区的数据写到磁盘前,会进行一个二次排序,首先根据数据所属的partition排序,然后每个partition中再按Key排序,排序过程需要较大的CPU计算开销;同时,由于数据存储在磁盘,对中间数据的频繁读写,会造成极大的I/O开销。为了消除对中间结果排序造成的CPU消耗,以及减小存储结构导致的中间结果频繁读写带来的I/O开销,提出一种基于Hash技术的中间结果优化机制,以对大规模的流数据进行快速处理。图3为基于Hash技术的中间结果优化模型。
Hash函数h1根据预定的Reduce任务配置方案,将Map的输出划分成一系列子集。具体地说,h1将Map的输出数据分割成n个桶(bucket),其中第一个桶,称为D1,完全存储在内存,其他桶当写入缓冲区写满时,数据存储到磁盘。通过这种方式,可以完全在内存中用Reduce函数处理中间结果数据。随后其他桶依次从磁盘读取数据,一次一个。如果一个桶Di可以装入内存,可以完全在内存中执行Reduce任务,否则,用Hash函数h2再对它递归的进行分割,直至可以装入内存。相较于传统MapReduce模型:首先,在Map端,它避免了在排序合并阶段的用于排序的CPU消耗;其次,如果应用程序指定一个范围的重要key值,可以设计Hash函数h1,使D1包含这些重要的key值,以进行快速的处理。
(2)基于Hash技术的动态增量内存处理
传统MapReduce模型,Reduce任务节点远程读取中间结果,读取到中间结果后,对相同key值的(key,value)进行多遍合并(multi-pass merge)处理,结果输出给Reduce函数,产生最终分析结果。多遍合并是一个阻塞操作,Reduce函数直到其完成才执行,致使CPU利用率降低,同时,因为没有足够的内存来存储中间结果。多遍合并(multi-pass merge)操作会频繁读写磁盘,I/O开销较大,这些都致使传统MapReduce模型不适合处理流数据。为此,提出一种基于动态增量Hash技术的Reduce快速内存处理方法,用于替代多遍合并(multi-pass merge)操作,以适应大规模流数据的快速处理。图4是基于动态增量Hash技术的快速内存处理模型。
基于动态增量Hash技术的快速内存处理方法,用于支撑Reduce任务的增量和单遍分析能力,包括简单的聚集以及复杂的流数据处理算法。
当Map端处理完后,首先初始化函数init(),将(key,value)对规约为(key,state)对;然后基于频繁Key识别算法,动态决定哪些(key,state)对驻留在内存中并通过Hash函数h2散列到B+树,在内存中执行Reduce函数进行实时处理,哪些Key的State被Hash函数h3散列到缓冲区的桶,进而写入到磁盘上,内存有空闲后,立即被载入到内存,通过Hash函数h2散列到B+树,并执行Reduce函数,迭代,直至所有桶被处理完成。
设K是不同的Key的总数,M是(key,state)的总数。假设内存包含B个分页,每个分页可以驻留np个(key,state)以及它们相关的辅助信息。当接收新的(key,state)元组时,每个Reducer将内存中的B个分页划分为两部分:H个分页被用作写缓冲区,并将文件写到磁盘上,而B-H个分页用于频繁key-state对。因此,s=(B-H)np个(key,state)可以在内存中实时处理。在算法维护内存中的s个Key K[1],...,K[s],states[1],...,s[s],以及对应于Key的s个计数器c[1],...,c[s]初始化c[i]=0,i∈[s]。当一个新的元组(key,state)到达时,如果该Key当前正在Hash B树中,c[i]递增,s[i]进行更新。如果Key不在HashB+树中,并且存在i使得c[i]=0,那么(1,K,V)赋予(c[i],k[i],s[i]),若key不在HashB+树中,且所有c[i]>0,i∈[s],则该元组需要被写入到磁盘,所有c[i]减1。每当算法决定从内存删除一个或写出一个(key,state)元组,它总是先分配数据项到一个Hash桶,然后将其写入到该桶的写缓冲区。
为扩大中间数据存储容量,基于外部构造SSTable文件结构进行存储,利用读写开销估算和内外存替换方法,优化缓存数据的高并发读写性能。为了扩大中间结果的本地存储容量,在外存构造SSTable文件存储中间结果。SSTable文件结构包括一个索引块和多个64KB的数据块,以块为单位为Hash表项分配外存空间。在数据流处理过程中,如果所需的中间结果Hash表项不在内存而在外存并且内存已无空间,将发生内外存替换。现有基于SSTable结构的文件读写策略是写优化的,如BigTable在将内存缓存数据写(dump)到磁盘时采用直接写入一个新文件的追加写(minor compaction)方式,而在读时需要将缓存数据和若干个小文件进行合并(merge compaction),开销较大。对于中间结果本地存储文件来说,读写操作都比较频繁并且比例均衡,不能盲目地只优化写操作.为提高并发读写性能,可以根据开销选择读写方式。出现内外存替换时,对于要替换的Hash表项,应该首先利用Map和Reduce阶段间的缓冲区查看该表项是否即将被访问。若此表项不会很快被访问,采用写开销较小的追加写方式;若此表项很快被访问,根据不同的时间开销选择合并写和随机读方式,或者追加写和合并读方式。
针对知识信息大数据分布式存储且文本和图片粘合的特征,研究基于分布式内存计算的MapReduce框架,以消除中间数据写回磁盘的I/O开销,同时设计弹性分布式数据集(RDD)结构,并结合数据本地性和传输优化、调度优化策略,最终实现大数据的高实时性、高响应性分析。
RDD是分布式内存的一个抽象概念,允许开发人员在大规模集群上执行基于内存的计算。RDD可将数据存储在内存中,减少磁盘的访问次数,因此极大地提高了处理数据的性能。它是只读的分区记录的集合,只能通过读取HDFS(或与Hadoop兼容的其他持久化存储系统)生成或由其他的RDD经转换操作生成,这些限制方便实现高容错性。
RDD对象本质上来说是一个元数据结构,一个RDD存储着块和机器节点的信息及其他元数据的信息。一个RDD可以包含多个分区,在数据物理存储上,RDD的一个分区对应一个块,这些块可以分布地存储在不同的机器节点中,块可以存储在内存中,当内存空间不足时,也可以部分缓存于内存中,其余数据存储在磁盘中。RDD的数据管理模型如图5所示。RDD1包含有五个分区b11、b12、b13、b14、b15,分别存储在四个机器节点node1、node2、node3、node4上,其中分区b11和分区b12都在机器node1上。RDD2有三个分区b21、b22、b23,分别存储在node2、node3和node4上。
在线数据处理平台的分布式内存计算架构采用主从模式,如图6所示,控制节点主要保存集群中计算节点信息,并建立任务调度机制、数据分片调度和追踪机制,以及并行计算状态追踪机制;计算节点则通过与控制节点通信,开辟内存空间,创建任务线程池,运行控制节点分派的任务。
程序运行于分布式内存集群的流程大致可分为5个阶段:
(1)初始化集群管理程序。检测集群可用CPU和内存等状态信息。集群管理程序是控制枢纽,可为后续计算任务分配资源。同时初始化任务调度器和任务追踪器,其功能为分发任务以及收集任务反馈。
(2)初始化应用运算实例。依据用户提交的程序描述创建分布式的数据集对象,计算数据集的分片,创建数据分片信息列表、数据分片之间依赖关系列表。依据数据的本地性原则,分配相应数据分片存储于指定的计算节点之上。
(3)构建运算的有向无环图。将运算过程中涉及到的map、sort、merge、shuffle等计算过程以序列的方式增量累加成DAG图,而后依据DAG图将整个运算过程分解成多个任务集合。
(4)任务调度器按照任务执行自顶向下的顺序,将任务集合中的子任务通过集群管理器分发到指定的计算节点之上,每个任务对应着一个数据分片。如果任务失败则重新发布。
(5)计算节点接收到任务后,为任务分配计算资源,创建进程池开始执行计算,并向控制节点反馈进程分配情况。
集群运行计算过程中需要保证任务的最优调度,即将任务分配到相应计算节点之上,该节点缓存了任务计算所需的数据分片,确保数据的本地性。同时当某个任务运行速度低于一定阈值时则在其他节点之上重新开启任务。基于分布式内存计算的MapReduce框架如图7所示。
上述过程就完成了在进行敏感词汇挖掘前期的数据采集流程,能够保证在进行数据挖掘、分析等进一步处理前,保证了数据的爬取、备份、分发和存储。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

Claims (10)

1.一种网络数据分布式采集方法,其特征是:包括以下步骤:
(1)对各来源的网页数据进行爬取,构建哈希表保存已经访问过的统一资源定位符,并利用布隆过滤器进行地址判重;
(2)对爬取的页面进行预处理,利用视觉的页面分割算法构建相应的树,并根据视觉规则进行噪音节点的剪枝,对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,通过规则推断出数据记录块节点与数据属性节点;
(3)对数据流进行选择存储的操作,数据节点通过心跳协议定期向控制节点汇报其状态信息,控制节点根据状态信息作为存储策略来选择数据节点是否合适的依据,根据设定的阈值与数据节点的状态信息来确定是否选择这个数据节点;
(4)设计弹性分布式数据集结构,创建不同的分区,对数据进行内存的转存,对选择的数据进行优化存储,提取不同分区的存储数据,实现分布式采集。
2.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(1)中,构建多个哈希表,每个哈希表通过一个哈希函数将一个网页映射成一个位阵列中的一个点,利用布隆过滤器查看每个哈希表,只要查看对应的点是不是1就能够确定对应的集合中是否包含该网页。
3.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(2)中,对页面的实体属性抽取,利用视觉分割算法VISP将结果页面进行区域分割并构建对应的Vision树,将结果页面分为:
(a)内部页面,包含同一页面内各元素及其关系;
(b)详细页面,包含了具体实体的详细信息,通过内部页面的超链接访问;
(c)同类页面,为同一站点下由相同模板生成,其包含实体具有一定的结构、位置和外观相似性;
利用了Markov逻辑网对分类关系进行建模以实现特征的有效合并,通过对三类特征的集成,计算出所有最大谓词,完成对实体属性的推理抽取。
4.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(3)中,Hadoop分布式文件系统中只有控制节点和数据节点,控制节点负责系统控制和策略实施,数据节点负责存储数据,当客户端向HDFS文件系统中存储数据时,首先客户端和控制节点通信,控制节点根据副本系数去选择数据节点,然后返回给客户端选择的数据节点,最后客户端和这些数据节点直接通信传输数据。
5.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(3)中,状态信息包括成员变量、存储容量、剩余容量和最后更新时间信息,这些信息需要数据节点定期向控制节点汇报,控制节点利用这些信息作为数据存储策略的选择依据;
数据节点通过定期的向控制节点发送心跳,汇报当前数据节点的状态信息,同时告诉控制节点自己还活着,控制节点通过对数据节点的心跳答复发送相应的命令信息。
6.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(3)中,控制节点在接收到数据节点的心跳后的算法处理过程如下:
对控制节点的身份进行检查包括版本信息和注册信息;
控制节点更新该数据节点的状态信息;
控制节点查询该数据节点的块状态,然后生成对数据节点的命令列表;
控制节点检查当前的分布式系统更新状态;
控制节点将生成的命令信息发送给相应的数据节点;
心跳处理完毕。
7.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(3)中,采用机架感知的策略来确定数据节点的位置,通过一个机架感知的过程,控制节点确定数据节点所属的机架id,默认的存储策略将副本存放在不同的机架上,将副本数据均匀的分布在集群之中;
存储策略选择数据节点前需要判断集群中数据节点的状态和备份系数,然后计算每个机架上的最大选择节点数;
节点位置策略首先会在本地选择一个数据节点,并且使用节点选择策略判断节点是不是合适,其次会在远程选择一个数据节点,同样使用节点选择策略判断节点是不是合适,最后会在本地再选择一个数据节点,还需要使用节点选择策略判断节点是不是合适;
如果副本系数大于设定值,则剩余的数据节点会在集群中随机选择,同样需要使用节点选择策略判断节点是不是合适;
存储策略在返回选择的数据节点之前,需要调用节点排序策略对节点排序,之后才返回给控制节点。
8.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(4)中,设计弹性分布式数据集结构,弹性分布式数据集包含多个分区,在数据物理存储上,弹性分布式数据集的一个分区对应一个块,这些块分布地存储在不同的机器节点中,块存储在内存中,当内存空间不足时,部分块缓存于内存中,其余数据存储在磁盘中。
9.如权利要求1所述的一种网络数据分布式采集方法,其特征是:所述步骤(4)中,利用一哈希函数将存储数据分割成n个桶,其中第i个桶,称为Di,完全存储在内存,其他桶当写入缓冲区写满时,数据存储到磁盘,在内存中用Reduce函数处理中间结果数据,随后其他桶依次从磁盘读取数据,一次一个,如果一个桶Di可以装入内存,则完全在内存中执行Reduce任务,否则,用另一哈希函数再对它递归的进行分割,直至可以装入内存,控制节点保存集群中计算节点信息,并建立任务调度机制、数据分片调度和追踪机制,以及并行计算状态追踪机制;计算节点则通过与控制节点通信,开辟内存空间,创建任务线程池,运行控制节点分派的任务。
10.一种网络数据分布式采集系统,其特征是:包括:
爬取模块,被配置为利用分布式爬虫中去重算法对各来源的网页数据进行爬取,构建哈希表保存已经访问过的统一资源定位符;
布隆过滤器,进行统一资源定位符地址判重,查看每个哈希表,查看对应的点值确定对应的集合中是否包含统一资源定位符,渠道重复的统一资源定位符;
分类模块,被配置为利用视觉的页面分割算法构建数据树,并根据视觉规则进行噪音节点的剪枝,对多层页面进行分类,根据不同特性确定不同类型页面下的谓词,通过规则推断出数据记录块节点与数据属性节点;
存储模块,被配置为对数据流进行选择存储的操作,数据节点通过心跳协议定期向控制节点汇报其状态信息,控制节点根据状态信息作为存储策略来选择数据节点是否合适的依据,根据设定的阈值与数据节点的状态信息来确定是否选择这个数据节点;
转存模块,被配置为构建弹性分布式数据集结构,创建不同的分区,对数据进行内存的转存,对选择的数据进行优化存储,提取不同分区的存储数据,实现分布式采集。
CN201910002818.XA 2019-01-02 2019-01-02 网络数据分布式采集系统及方法 Pending CN109740038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910002818.XA CN109740038A (zh) 2019-01-02 2019-01-02 网络数据分布式采集系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910002818.XA CN109740038A (zh) 2019-01-02 2019-01-02 网络数据分布式采集系统及方法

Publications (1)

Publication Number Publication Date
CN109740038A true CN109740038A (zh) 2019-05-10

Family

ID=66363114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910002818.XA Pending CN109740038A (zh) 2019-01-02 2019-01-02 网络数据分布式采集系统及方法

Country Status (1)

Country Link
CN (1) CN109740038A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442766A (zh) * 2019-07-11 2019-11-12 新华三大数据技术有限公司 网页数据采集方法、装置、设备及存储介质
CN110765106A (zh) * 2019-10-23 2020-02-07 深圳报业集团 基于视觉特征的数据信息处理方法及系统
CN110765285A (zh) * 2019-10-23 2020-02-07 深圳报业集团 基于视觉特征的多媒体信息内容管控方法及系统
CN111045869A (zh) * 2019-12-16 2020-04-21 上海钧正网络科技有限公司 一种数据备份方法、装置及可读存储介质
CN111090619A (zh) * 2019-11-29 2020-05-01 浙江邦盛科技有限公司 一种轨道交通网络监测流数据的实时处理方法
CN111831674A (zh) * 2020-06-29 2020-10-27 山大地纬软件股份有限公司 一种区块链节点、系统及数字资料副本分配方法
CN111970520A (zh) * 2020-08-13 2020-11-20 北京中电兴发科技有限公司 一种异构节点流式数据分布式存储方法
CN112765121A (zh) * 2021-01-08 2021-05-07 北京虹信万达科技有限公司 一种基于大数据服务的治理及应用系统
CN113688115A (zh) * 2021-08-29 2021-11-23 中盾创新档案管理(北京)有限公司 一种基于Hadoop的档案大数据分布式存储系统
CN115080268A (zh) * 2022-06-15 2022-09-20 苏州轻棹科技有限公司 面向自动驾驶系统内部模块的消息发布-订阅处理方法
CN115225719A (zh) * 2022-08-31 2022-10-21 中建电子商务有限责任公司 一种分布式定向网络数据采集解析方法
CN116643300A (zh) * 2023-07-25 2023-08-25 齐鲁空天信息研究院 基于地图映射的卫星导航数据分布式实时处理方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071766A1 (en) * 2003-09-25 2005-03-31 Brill Eric D. Systems and methods for client-based web crawling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071766A1 (en) * 2003-09-25 2005-03-31 Brill Eric D. Systems and methods for client-based web crawling

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
刘丽杰: "垂直搜索引擎中聚焦爬虫技术的研究", 《中国优秀硕士学位论文全文数据库》 *
李晨 等: "基于Hadoop的网络舆情监控平台设计与实现", 《计算机技术与发展》 *
蔡斌雷 等: "面向大规模流数据的可扩展分布式实时处理方法", 《青岛科技大学学报(自然科学版)》 *
辛洁: "Deep Web数据抽取及精炼方法研究", 《中国优秀博士学位论文全文数据库》 *
高蓟超: "Hadoop平台存储策略的研究与优化", 《中国优秀硕士学位论文全文数据库》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442766A (zh) * 2019-07-11 2019-11-12 新华三大数据技术有限公司 网页数据采集方法、装置、设备及存储介质
CN110765106A (zh) * 2019-10-23 2020-02-07 深圳报业集团 基于视觉特征的数据信息处理方法及系统
CN110765285A (zh) * 2019-10-23 2020-02-07 深圳报业集团 基于视觉特征的多媒体信息内容管控方法及系统
CN111090619A (zh) * 2019-11-29 2020-05-01 浙江邦盛科技有限公司 一种轨道交通网络监测流数据的实时处理方法
CN111090619B (zh) * 2019-11-29 2023-05-23 浙江邦盛科技股份有限公司 一种轨道交通网络监测流数据的实时处理方法
CN111045869B (zh) * 2019-12-16 2023-03-10 上海钧正网络科技有限公司 一种数据备份方法、装置及可读存储介质
CN111045869A (zh) * 2019-12-16 2020-04-21 上海钧正网络科技有限公司 一种数据备份方法、装置及可读存储介质
CN111831674A (zh) * 2020-06-29 2020-10-27 山大地纬软件股份有限公司 一种区块链节点、系统及数字资料副本分配方法
CN111970520A (zh) * 2020-08-13 2020-11-20 北京中电兴发科技有限公司 一种异构节点流式数据分布式存储方法
CN111970520B (zh) * 2020-08-13 2022-04-08 北京中电兴发科技有限公司 一种异构节点流式数据分布式存储方法
CN112765121A (zh) * 2021-01-08 2021-05-07 北京虹信万达科技有限公司 一种基于大数据服务的治理及应用系统
CN113688115A (zh) * 2021-08-29 2021-11-23 中盾创新档案管理(北京)有限公司 一种基于Hadoop的档案大数据分布式存储系统
CN113688115B (zh) * 2021-08-29 2024-02-20 中盾创新数字科技(北京)有限公司 一种基于Hadoop的档案大数据分布式存储系统
CN115080268A (zh) * 2022-06-15 2022-09-20 苏州轻棹科技有限公司 面向自动驾驶系统内部模块的消息发布-订阅处理方法
CN115080268B (zh) * 2022-06-15 2024-03-26 苏州轻棹科技有限公司 面向自动驾驶系统内部模块的消息发布-订阅处理方法
CN115225719B (zh) * 2022-08-31 2023-01-10 中建电子商务有限责任公司 一种分布式定向网络数据采集解析方法
CN115225719A (zh) * 2022-08-31 2022-10-21 中建电子商务有限责任公司 一种分布式定向网络数据采集解析方法
CN116643300A (zh) * 2023-07-25 2023-08-25 齐鲁空天信息研究院 基于地图映射的卫星导航数据分布式实时处理方法和系统
CN116643300B (zh) * 2023-07-25 2023-10-10 齐鲁空天信息研究院 基于地图映射的卫星导航数据分布式实时处理方法和系统

Similar Documents

Publication Publication Date Title
CN109740037A (zh) 多源、异构流态大数据分布式在线实时处理方法及系统
CN109740038A (zh) 网络数据分布式采集系统及方法
CN109739849B (zh) 一种数据驱动的网络敏感信息挖掘与预警平台
Mohanty Big data: An introduction
Yang et al. A spatiotemporal compression based approach for efficient big data processing on cloud
CN103930875B (zh) 用于加速业务数据处理的软件虚拟机
CN103890709B (zh) 基于缓存的键值数据库映射和复制
US5325505A (en) Intelligent storage manager for data storage apparatus having simulation capability
US10922316B2 (en) Using computing resources to perform database queries according to a dynamically determined query size
CN110162528A (zh) 海量大数据检索方法及系统
JP2017037648A (ja) ハイブリッドデータを保存するためのハイブリッドデータストレージシステム、方法及びプログラム
CN103106152A (zh) 基于层次存储介质的数据调度方法
Herodotou AutoCache: Employing machine learning to automate caching in distributed file systems
CN112799597A (zh) 面向流数据处理的分级存储容错方法
US11144538B2 (en) Predictive database index modification
CN101073069A (zh) 用于企业软件系统的高速缓存
CN110018997A (zh) 一种基于hdfs的海量小文件存储优化方法
CN115705322A (zh) 一种数据库管理系统、数据处理方法及设备
US8660974B2 (en) Inference over semantic network with some links omitted from indexes
Mukherjee Non-replicated dynamic fragment allocation in distributed database systems
CN114238707A (zh) 一种基于类脑技术的数据处理系统
Balicki et al. Harmony search to self-configuration of fault-tolerant grids for big data
Khan et al. Towards Cloud Storage Tier Optimization with Rule-Based Classification
Balicki et al. Big data processing by volunteer computing supported by intelligent agents
Mahato et al. Reliability analysis in grid system considering load

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination