海量数据篇1
当海量的数据遇到大规模数学运算,传统的数据仓库厂商常常对此束手无策。因为他们基本都源于关系型数据库,包括Oracle、IBM DB2、Teradata等等,虽然在名字、产品上有各种各样的区别,也声称有各种各样的技术,但都是从关系型数据库这种理念产生的,一脉相传都有一个共同的特点,即要把数据从存储拿到内存,然后做处理,因此这个数据的搬移过程是一个非常大的瓶颈。
尤其是对数据仓库类型来说,存储是非常海量的数据,而得到的结果非常少,就像在金矿里挖金子,每次把没用的废矿拉过来,再进行处理。但现在随着分析类功能的需求的增加,传统的数据仓库无法适应这种需求。
Netezza理念的独特之处在于将从架构着手,将分析工具尽量集合到设备中,就地进行数据分析。把分析的工具直接放进数据仓库中,能够大大加快整个处理分析的过程。
Netezza公司总裁兼首席执行官Jim Baum表示,这种分析方式将原有的一系列动作(业务需求、数据准备、数据清理、数据转换、模型开发,模型测试、模型部署以及模型执行)都集中在数据仓库中执行,这就相当于直接在矿堆上筛选金子,进行深加工和处理,这样就避免了无用的数据搬运,大大提高了处理效率。
要使Netezza这块打火石通过大规模数学运算真正将中国各行业的海量数据点燃,Jim表示公司将在广度、深度、高度和统一性四大方向发力。
以平台的统一性为例,由于数据仓库设备一般不是集中放置,但是却需要统一管理。NETEZZA新近推出了数据虚拟化产品――Data Virtualizer,可以在这个数据虚拟器里部署多个数据仓库设备进行不同的工作。数据虚拟器能够通过分析这些数据需求,然后根据本身当下的数据仓库设备使用情况,来判断分配数据分析的工作量。这样可以使我们的客户非常统一的集中管理好数据分析的需求,并且对所拥有的数据仓库设备进行管理和调配。
Netezza在中国发力的重点行业之一就是金融业,中国的金融机构面临着诸多挑战,即如何利用海量数据,在信贷和风险管理、目标营销、客户忠诚度及欺诈侦测等诸多领域做出更快更好的决策。
Jim利用本次访华机会,正式向中国市场介绍其在不久前举办的Enzee Universe用户大会上的新一代Netezza TwinFin数据仓库设备,这款即将在今年第三季度正式问世的TwinFin设备将包括具有先进分析能力的i-Class,以及最新的Netezza性能软件(NPS)。
Jim表示,“同步向中国市场介绍的新款TwinFin设备显著拓展了产品的容量和性能,肯定会受到众多中国客户的喜欢。这款软件的不仅使性能和容量得到了成倍的提高,同时也极大程度地提升了我们的工作量管理能力。我们深信,与市场上同类产品相比,TwinFin设备实现了更快、更便宜以及更深入的分析,必将会成为智能经济的重要组成部分。”
海量数据篇2
关键词 海量数据;索引;分表存储
中***分类号TP39 文献标识码A 文章编号 1674-6708(2011)35-0170-02
1 数据源的处理
1.1 文本数据导入到SQL Server数据库中
主要有以下3种方式:
方式一:通过程序从文本格式的数据中每整理出一条记录就执行insert语句插入到SQL数据库中;
方式二:通过程序从文本格式的数据中整理出多条记录,再批量执行insert语句插入到SQL数据库中;
方式三:编写存储过程,把这些从文本格式的数据通过存储过程导入到SQL数据库中。因为,存储过程提供了许多标准SQL语言中所没有的高级特性。其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务。另外,这些过程存储在本地SQL服务器上,减少了执行该过程所需的网络传输带宽和执行时间。
1.2 数据库的设计
1.2.1 数据的分表存储
在诸多应用系统的数据库中,例如,淘宝中店家的销售记录、买家的购买记录、北美贸易数据、医院医生的接诊数据等等,这些数据都有时间这一维度。以北美贸易数据为例,每月的北美海关贸易数据至少上百万条,一年的数据量至少在千万条以上。试想,假如系统要搜寻某个月份,某一HS号的产品出口信息,实际最后所得的数据量可能仅仅是几百条甚至更少只有几条。那么,如果从一百万条数据里搜寻这些,和在上千万条数据里搜寻,他们的返回结果时间必然是不同的。同样,修改记录时,数据库也是要先找到满足条件的记录,然后再进行update操作。所以,建议处理这类数据时候,应该按照时间这一维度,把数据分表存储。这样,可以减少大量的查询时间,数据量越庞大,效果越明显。
1.2.2对海量数据进行分区操作
对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区。例如SQL Server的数据库分区是将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小了系统负荷, 而且还可以将日志、索引存放于不同的分区下。
1.2.3 创建索引
1)索引的优点和局限索引可以提高查询的效率,但会降低dml操作的效率。所以建立索引时需要权衡。对于dml操作比较频繁的表,索引的个数不宜太多;
2)什么样的列需要建索引经常用于查询、排序和分组的列(即经常在where、order或group by子句中出现的列);
3)主键索引和复合索引对于一张表的主键,系统会自动为其建立索引。如果一张表的几列经常同时作为查询条件,可为其建立复合索引;
4)建立索引的语句create index i_staff on staff (empno);
create index i_agent on agent (empno, start_date);
5)删除索引的语句drop index I_staff;drop index I_agent;
6)索引的一些特点:
(1)不同值较多的列上可建立检索,不同值少的列上则不要建。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就没必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。
(2)如果在索引列上加表达式,则索引不能正常使用
例如:b1是表b的索引列
select * from b where b1/30< 1000 ;这是不正确的写法
where子句中如果使用in、or、like、!=,均会导致索引不能正常使用
例如:select * from b where b1=30 or b1=40;
1.2.4 创建索引表
除对数据表的相应列上创建索引、复合索引,我们还可以给数据表创建 “索引表”。
例如,当需要进行模糊查询的时候,我们一般采取的解决办法是 执行sql语句 like
select * from table where 某列 like ‘%×××××%’,这样如前所述,即便该列已经加了索引,在进行like查询时候,索引也起不到任何作用。那么,这种情况,应该怎么处理呢?
我们以搜寻北美数据为例,假设一个表中存有一百万条数据,那么我们可以设计这个表有一个pk_id列(长整型)来唯一标识一条记录。表中存在一列是描述信息列。该列的内容都是 英文字母。这样,我们通过程序,先将该月数据进行处理,创建26套索引表,每个索引表有两个列,一列(sKey)存放关键字,一列(sID)存放这些关键字在数据主表中出现的那些记录的pk_id(以某一特定分隔符来分割表示。 例如 第 1、3、5 这3条记录中存在关键字“TOY” 那么在 T索引表中有这样一条记录,TOY1,3,5)。这样,如果程序要搜索关键字是 “TOY” 的信息记录。执行过程是这样的:首先从T索引表中,用 “Selecttop 1 sID fromT索引表 where sKey =’TOY’ ” ,然后得到主数据表中的pk_id 为 1、3 、5 这三条记录 是含有关键字“TOY”的记录。这时,再执行 “select * from mainData where pk_id in(1,3,5)”,得到所需数据。经过实际测试,用上述方法,比直接采用 “select * from mainData where描述信息列 like ‘%TOY%’”方式,系统返回结果的时间要快十倍以上,特别是在单表数据量超过百万后,效果更佳突出。
2 程序设计的一些技巧
2.1 界面显示进度
当程序处理大量数据的时候,往往系陷入“假死”状态。这时,很多用户会觉得系统很慢、已经导致死机等。遇到类似情况,在程序在设计时候,可以在程序界面上,显示处理的进度。一般采用进度条或处理比例(已处理数量/总数量) 这样的方式展现,并实时刷新数据,这样,用户从程序界面上,看见有不断的数字变化,从心里上有种感觉,程序在飞速处理着数据。
对实时刷新数据的一个窍门:很多时候,程序设计了实时刷新界面的信息,但由于后台正在处理大量的数据,导致了cpu时间没有分配给刷新程序界面。这时候程序一样是假死的状态。此时,可以在刷新界面数据的语句后面加上转让控制权的函数,让cpu来处理。例如 doevents 函数。
2.2 仅显示出部分信息
此种情况,一般用于搜索查询显示。当用户搜索某一内容后,得出的结果可能会有成千上万条。如果程序要把这些结果,都搜索出来并显示到界面上速度一定很慢。
以大多数用户搜索的习惯,一般只会看前十条记录,之后就会细化搜索的条件或搜索其他内容,不会将所有的搜索结果全部浏览。这样,程序只要搜索出前面的部分记录就可以,
利用 select top 10 from table where ***** 就可以实现此功能。同时,需要记录此十条记录的 pk_id ,如果用户继续查看后续的内容,那么再进行搜索的时候 要排除掉 先前已经显示的记录。
2.3 数据的预处理
对一些固定条件下汇总的数据信息,可实现将数据汇总,存储到数据库中。这样,在程序汇总该数据时,只需从数据库中读取出该条记录即可,不需要再进行。
2.4 C/S(B/S)架构的程序设计:充分利用服务器端处理
对大量的数据运算操作,尽量放到服务器端,充分利用服务器高效的处理能力、高速的读写能力,来处理客户端提出的需求。客户端只用来显示服务器端处理的结果和提交处理请求。这样可以大幅提高程序的处理速度。
参考文献
海量数据篇3
关键词:物联网海量数据数据库技术内存数据库
中***分类号: TP393 文献标识码:A 文章编号:1007-9416(2016)04-0000-00
计算机、电脑等移动终端逐渐普及,再加上互联网技术的发展,每天都会产生大量原始数据,传统数据处理技术已经不能很好地满足人们需要,如果想要在日益竞争激烈的市场中获取竞争力,必须不断更新数据处理系统,借助物联网海量数据处理下的数据库技术,实时动态收集、搜索和分析数据变化,为科学化决策提供保障。
1物联网概念和发展过程分析
物联网(Internet of things)是信息化时代产物,属于信息技术组成部分[1]。从字面含义来说,它是指以“物”为基础而连接的互联网,是对互联网的延伸和拓展,直接实现了物品与物品之间的通信、信息交换。物联网主要以通信技术为基础,如局部网络等,能有效将人员、控制器和机器等联系在一起,实现真正意义上的远程管理和自动化,其属于新兴产业,具有很宽广的市场前景[2]。
随着物联网技术的飞速发展,其涵盖的领域越来越广泛,如交通、环保等,它最初产生于1999年,其真正概念直到2005年才被确定。我国物联网数据处理技术引进时间不长,但它推动了我国产业结构优化,对我国经济水平的增长做出了一定贡献,特别是在通信领域。
2物联网海量数据处理技术分析
物联网海量数据处理技术中包含的设备种类、网络类型较为复杂,因此,在数据处理过程中,必须能够融合数据源、不同网络和各类设备,并且需要快速筛选有效信息,对处理技术的要求较高,目前,应用得较广泛的主要有以下两种:
2.1多源数据融合处理技术
不同区域物联网中存在的数据类型、数量、特点都会有所不同,加大了数据融合的需求,基于此,多源数据融合处理技术诞生,它规定了统一的数据本体标准,较好地实现了多层次数据结构[3],能将多种来源、不同结构的信息收集在一起,并以通信技术为基础,对数据进行有效整合,转化为其他技术能够融合的模式,将时空转换、聚类技术等有机结合,提高了海量数据的利用效率和质量。
多源数据融合处理技术为不同类型的数据结合提供了沟通平台,能较好地实现物与物之间的交流,对建立数据处理标准具有一定的参考价值,从数据库技术的层面分析,增加了海量数据的数量和来源,促进了数据一体化进程。
2.2数据查询处理技术
物联网设备应用较为广泛,数据产生速度、数量比传统互联网技术多,其数据具有不同来源、不同维度等方面的特征[4],且数据规模较大,因此对物联网储存、搜索和查找等技术的要求特别高。从物联网储存技术的角度分析,需要遵循就近存储,为数据建立统一摘要节点,降低过度存储的机率,为有效查询提供条件,同时,在储存过程中,要合理设计储存空间和容量,不断更新数据库信息,以最新数据代替原始数据,提高数据的实时性;从物联网搜索技术的角度分析,数据处理主要包括空间流和时态流两种形式,设计搜索引擎时,可以根据“索引算法”,合理对数据种类进行科学归档;从物联网查询技术的角度分析,如果能够确保储存技术和搜索技术,就能很好地为查询技术提供基础,因此,不能将三种技术分开设计,而应该结合物联网具体特征,综合考虑数据数量、类型等方面的因素,统筹规范处理技术,提升数据处理的可靠性和准确性。
3物联网海量数据处理下的数据库技术研究
物联网数据具有实时性、多维性、不同结构性和海量性等基本特征,对数据库储存空间、搜索技术等要求较高,研究物联网海量数据处理下的数据库技术的具体数据处理方式和技术类型,对数据处理具有很大意义,本文主要从以下三部分进行阐述。
3.1通过云技术,实现分布式数据库技术
云技术在目前网络服务中已经被广泛运用,如网络邮件等,它能将网络中资源有效统一,对数据的存储、计算具有一定帮助,在物联网的领域中,云技术也发挥着相应的效果,它与海量数据处理技术重新融合,组成新的“分布式数据库”技术,将中心服务器和数据服务器联合在一起,建立多个不同地方的实时数据库[5],对于数据库规模来说,增加了规模的灵活性,可以根据数量的大小,伸缩或扩大规模;对于管理系统来说,实时数据库能够降低管理过程中出现问题的概率,如果出现问题,也能及时维护。分布式数据库技术给物联网提供了虚拟平台,为数据储存、信息等创造了更快捷的途径。此外,其还具备调动事物、处理冲突等基本功能。
3.2融合网络技术,实现内存数据库技术
传统网络技术中仍然存在很多值得学习的数据处理方法,内存数据库技术以网络技术和物联网技术为基础,结合两者优点,将数据处理过程变得更加透明化、数据***化,主要有以下三个特征:一是内存数据库***于网络节点,通过水平切分、读写分离等存储方式,实现数据库集群化[6];二是数据库之间相互融合,能将海量数据集合在一起,满足其他终端需求;三是内存数据库技术的持久性,它以磁盘为基础,将数据内容变化复制,实现更科学的保管数据。海量数据的复杂性,需要借助内存数据库技术,将网络局部功能和空间联系在一起,为同步更新信息提供基础。
3.3联合数据收集、存储方式,实现检索服务
综合分布式实时数据库技术和内存数据库技术,将海量数据通过统一平台连接,实现数据收集、存储过程,从而实现对海量数据的高效检索和应用,保障整个过程的合理性和科学性。通过使用数据服务器或收集器,对相关查询数据服务进行申请,并借助网络节点,更好地进行准确搜索。海量数据的收集过程是否完善、高效直接影响着检索的准确性,因此必须保障数据接收过程的安全性。
4结语
综上所述,研究物联网海量数据处理下的数据库技术,其工程量复杂而艰巨,在这个过程中,只有进一步挖掘海量处理数据技术,才能更好地分析数据库技术的应用范围和优势。从分布式实时数据库技术和分布式内存数据库技术角度分析,它们以云技术为基础,能较好地解决数据收集、储存方式,并不断拓展数据系统规模,为形成统一数据服务创造了更好的条件。但目前数据库技术处理过程中仍然存在很多需要注意的问题,相关人员必须引起重视,并结合物联网海量处理的特点和优势,创新物联网数据库技术,提高数据处理过程中的准确性和可靠性。
参考文献
[1]石爱***,马娟,齐安文,薛跃明,黄矗张斌.物联网技术在突发地质灾害应急响应中的应用研究[J].水文地质工程地质,2014,05:148-152.
[2]刘持标,李贤灿,孙丽丽,吴美瑜,邱锦明.基于SOS技术的物联网实时数据管理系统开发[J].物联网技术,2014,09:58-65.
[3]谢伍瑛.2000-2014年中国物联网研究综述――基于“珞珈学术搜索”数据库的文献分析[J].新闻传播,2015,15:4-9.
[4]王莹.基于WebService的物联网信息数据库系统设计与分析[J].电脑编程技巧与维护,2015,16:59-60+69.
[5]马文娟,金伟祖,许文俊,刘坚.基于物联网的地震监测台网应急调度平台设计与应用[J].地震工程与工程振动,2013,01:204-211.
[6]陈宇,蒋文涛,熊艳,李小龙,晏菲.基于NoSQL技术的心电数据库存储研究[J].生物医学工程研究,2015,04:235-237+251.
收稿日期:2016-03-07
项目编号:16A520094 项目名称:基于多平台的教师业绩多维度智能评估系统的设计 单位:郑州大学西亚斯国际学院
海量数据篇4
【关键词】 Hadoop 海量数据处理 分布式存储技术
引言
随着社会信息化程度的不断提高,互联网应用的多元化及快速发展,传统的数据存储技术在处理能力和存储容量的可扩展性已经不能完全满足需求。如今大数据时代下的海量数据存储出现了新的特点:(1)数据规模巨大,且增长快速。(2)访问并发程度高。(3)数据结构及处理需求的多样化。***数据访问和离线数据分析的应用,对系统可靠性的要求也越来越高。在这种情况下,基于Hadoop的分布式存储技术应运而生。
一、Hadoop概述
1.1 简介
随着海量数据的不断快速增长,各大公司纷纷对其相关技术进行研究。Google在开发了MapReduce、GFS和BigTable等技术之后,开源组织Apache模仿并了开源的Hadoop分布式计算框架和分布式文件系统。
Hadoop是一个开源的分布式计算平台,其核心是分布式计算框架MapReduce和分布式文件系统HDFS,主要用于处理海量数据,能在大量计算机组成的集群中运行海量数据并进行分布式计算。
1.2 体系结构
Hadoop主要设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。经过多年的发展,逐步形成了其应用程序生态系统,以Hadoop2.x版本为例,其族群中包括很多子项目:分布式文件系统HDFS、分布式并行编程模型和程序执行框架MapReduce、资源管理器YARN、配置管理工具Ambari、分布式且按列存储的数据库Hbase、数据仓库Hive、数据流语言和运行环境Pig、数据挖掘Mahout、分布式且可用性高的协调服务ZooKeeper、关系型数据库同步工具Sqoop、日志收集工具Flume等,其中MapReduce和HDFS最重要,在核心层上提供了更高层的互补。Hadoop2.x的项目结构如***1所示。
MapReduce是一种简化并行计算的编程模型,用来解决大规模数据处理的问题。其主要思想是将需要自动分割执行的任务拆解成映射Map和简化Reduce的方式。Map主要负责把单个任务分解成多个任务,Reduce则负责把分解后的多任务处理结果进行汇总。MapReduce任务由一个JobTracker节点和多个TaskTracker节点控制。JobTracker主要负责和管理TaskTracker,而TaskTracker具体负责这些任务的并行执行。
HDFS分布式文件系统可以和MapReduce编程模型很好地结合,用于存储海量数据。HDFS采用主从模式的结构,HDFS集群由一个名字节点NameNode和若干个数据节点DataNode所组成。NameNode是主服务器,主要负责管理文件系统的命名空间和客户端对文件的访问操作,而DataNode主要负责节点数据的存储。
YARN是Hadoop 2.x中新引入的资源管理系统,它的引入使得Hadoop不再局限于MapReduce一类计算,而是支持多样化的计算框架。它由两类服务组成,分别是ResourceManager和NodeManager。
二、海量数据存储技术研究
分布式文件系统HDFS是Hadoop的核心技术之一,是基于Hadoop的分布式存储架构中数据存储的基础。Hadoop2. x中HDFS体系结构如***2所示。
接下来,本文基于Hadoop的海量数据存储技术,从容错性、可扩展性和延迟性、实时性以及性能这4个方面对海量数据存储技术进行研究分析。
2.1海量数据存储的容错性
目前海量数据存储系统中,为获取较高可靠性,通常使用完全的数据复制技术和磁盘冗余阵列技术(RAID)两种冗余容错方法。RAID 技术在传统关系数据库及文件系统中应用比较广发,但不太适用于NoSQL数据库及分布式文件系统。
Hadoop使用HDFS存储海量数据。文件通常被分割成多个块进行存储,每个块至少被复制成三个副本存储在各个数据节点中。HDFS可以部署在大量廉价的硬件上,因此一个或多个节点失效的可能性很大,所以HDFS在设计时采用了多种机制来保障其高容错性,但有些也存在着一些问题。
1、HDFS中NameNode
NameNode是HDFS集群中的主节点,也是中心节点,它的可靠性直接关系到整个集群的可靠性。对于不同版本的Hadoop对此也有不同的处理机制。Hadoop1中只有一个NameNode节点,所以存在单节点故障问题,而在Hadoop2.x中通过HA策略大致解决了NameNode的单点问题。即存在两个NameNode,一个是状态为活动的 active namenode,另一个是状态为停止的standy namenode,两者可以进行切换,但是有且只有一个属于活动状态。目前,Hadoop 2.x中提供了两种HA方案,一种是基于NFS共享存储的方案。此方案中,NFS作为active namenode和standy namenode之间数据共享的存储,但若active namenode 或者standy namenode中有一个和nfs之间发生网络故障,将会造成数据同步不一致。另一种是基于Paxos算法的方案Quorum Journal Manager(QJM),它的基本原理就是用2N+1台JournalNode存储EditLog,每次写数据操作有大多数(>=N+1)返回成功时即认为该次写成功,数据即不会丢失,可以实现namenode单点故障自动切换。
2、HDFS数据块副本机制
HDFS中一个文件由多个数据块组成,每个数据块包含多个副本,副本的数量可以通过参数设置。副本是一种能够提高数据访问效率和容错性能的技术。Hadoop在数据存储方面可以自动将数据保存到不同机架的多个副本中,在数据计算方面也可以自动将失败的任务重新分配到其他的节点上。Hadoop2.x版本对于数据副本存放磁盘选择策略有两种方式,一种是低版本中的磁盘目录轮询方式,另外一种是选择可用空间足够多的磁盘方式。
3、HDFS心跳机制
HDFS中的NameNode通过心跳机制掌握整个集群的工作状态。DataNode通过周期性向NameNode发送心跳信息,即NameNode通过DataNode的心跳信息来获知DataNode的存在、其上的磁盘容量、已用剩余空间和负载等信息。
2.2海量数据存储的可扩展性和延迟性
可扩展性和延迟性是分布式文件系统评判性能的两个重要指标。Hadoop 的HDFS 分布式文件系统的设计主要用于处理大文件,以流式方式访问数据,一次写入,多次读写。对于HDFS,读取整个数据集要比读取一条记录更加高效。所以HDFS不合适处理处理小文件,即大小小于HDFS块大小的文件。这样的小文件会给Hadoop的扩展性和性能带来严重问题。因为并行的I /O 接口并不支持小文件的处理,所以读写延迟时间比较长,且主节点很难在云存储系统中进行扩展。因此,文献[1]提出了一种基于混合索引的HDFS小文件存储策略,采用应用分类器分类标记小文件,在存储节点根据小文件大小建立不同的块内索引,用以提高小文件访问效率。文献[2]提出一种基于多维列索引的小文件管理方案,且提出了小文件合并方案。文献[3]提出了一种面向低延迟的内存HDFS数据存储策略,提出了基于HDFS的内存分布式文件系统架构Mem-HDFS,且利用集群数据节点的内存和磁盘存储数据,并提出一种并行读取算法,该算法能较好降低读取访问延迟。
经研究发现,现有的对分布式文件系统处理海量小文件中所遇到的瓶颈问题,其改进大致包括以下两种方式,第一种方式是通过建立索引的方式,把小文件合并成大文件;第二种方式是建立缓存机制,从而减少文件访问次数。
2.3海量数据存储的实时性
Hadoop 最初被设计为解决大量数据离线情况下批量计算的问题,是为了处理大型数据集分析任务的,是为了达到高的数据吞吐量,因此,需要延迟性作为代价。对于大多数反馈时间要求不是特别高的应用,比如离线统计分析、机器学习、推荐引擎的计算等,都可以采用Hadoop进行离线分析的方式。基于Hadoop 的分布式文件系统能够很好地完成海量数据存储的要求,但还是缺乏了实时文件获取的考虑。因此,海量数据存储的实时性还有待提高,目前主要通过和传统关系型数据库相结合,实现其实时性。文献[4]提出了一种自定义的内存处理引擎,通过把基于Hadoop 的分析平台和数据流处理引擎进行结合,实现海量数据环境下实时处理数据的构想。
2.4海量数据存储的性能
HDFS在选择数据存放节点时,并没有考虑到集群中各数据节点的性能、网络状况和存储空间的差异性,从而很容易造成集群整体负载不均衡,数据节点的资源不能合理利用等。因此,文献[5]提出了确定环境下多阶段多目标CMM决策模型,此模型以内存、CPU和磁盘的剩余负载能力作为决策条件,以负载均衡效果、数据传输代价和负载迁移代价作为决策目标,根据决策节点间的影响关系来构建有向无环***,通过多个决策阶段的决策及计算方案效果来确定最优均衡方案。
三、结束语
本文针对最新Hadoop框架下的海量数据存储技术,分别从海量存储技术的容错性、可扩展性和延迟性、实时性及性能等四个方面进行了深入的研究,分析概括了目前Hadoop的分布式文件系统在存储海量数据时所遇到的一些问题及挑战,并对现有的存储改进方式进行了综述。
在海量数据存储的容错方面,目前Hadoop2.x最新版本的HA策略已经解决了NameNode的单点问题,但新引入的YARN同样存在单点故障及性能问题,对于HDFS如何能更高效更好地动态分配数据块副本机制,相关文献提出了多目标优化的局部最佳副本分布策略,提出了基于范德蒙码的HDFS分散式动态副本存储优化策略;在海量数据的可扩展性和延迟性方面,主要是小文件的存储策略问题,相关文献主要提出采用索引方式将小文件合并为大文件进行读取,通过缓冲机制减少访问次数;海量数据存储的实时性方面,目前主要通过和传统关系型数据库相结合,通过缓存机制实现实时读取;在海量数据存储的性能方面,主要是负载均衡问题,相关文献主要提出通过采集数据节点的各方面负载,通过计算成本来选择最优数据节点存储[9]。
目前,基于Hadoop的海量存储技术在如何高效存储及读取小文件,如何实现数据的实时分析,数据节点的负载均衡问题等方面依旧是将来研究的热点。
参 考 文 献
[1]王海荣等. 基于Hadoop的海量数据存储系统设计[J].科技通报,2014.30(9):127-130
[2]尹颖等. HDFS中高效存储小文件的方法[J]. 计算机工程与设计,2015.36(2):406-409
[3]英昌甜等. 一种面向低延迟的内存HDFS数据存储策略[J]. 微电子学与计算机,2014.31(11):160-166
海量数据篇5
关键词:海量数据存储;分布式数据库;MPP架构;并行处理
目前海量数据处理还是一个比较新的研究方向,大多数都是各公司或者是组织各自研究自己的处理方法,国际上没有通用的标准,研究的方式和结果也都是各有千秋。针对项目中带有复杂业务逻辑的海量数据存储,主要从容量扩展和并行处理两个方面考虑。前文己论述过NoSQL分布式数据库由于其数据结构简单、不善于做JOIN连接等复杂操作,存在数据迁移问题,并不适用于本项目,所以本解决方案依旧从关系型数据库入手。其次为了支持多样的切分策略,本论文将实现range、list、consis
tent-hash模式。最后系统借鉴MPP并行处理架构,使得整个项目能部署在便宜的PC集群上,不仅能保证稳定性,还节省项目成本。
物理设施包含数据库服务器的基础架构、web服务器的选择,以及资源分配管理服务器的选择。这三者分别负责数据的存取、数据的分析处理以及资源工作的均衡分配,它们协同合作,共同搭建一个高效的协同的后端服务管理,使存储系统均衡工作、高效运行。
作为解决海量数据的存储方案,首要必须考虑是存放海量数据的需求。根据前文可知,分布式数据库的出现其根本原因是解决存放不下数据的问题,故而将数据依照策略存放在不同的数据库服务器上,存放数据的策略以及数据之间的并行查询处理是研究的重点。第二个问题是分布式处理方案,现有技术从各个方面进行过尝试,有的基于关系型数据库提出了多种shard
ing方案。将关系型数据库迁移到非关系型数据库上代价太大,所以本解决方案基于关系型数据库的系统。
根据以上的设计思路与实现目标,设计出分布式海量数据存储解决方案。该系统主要包含以下四个模块:
SQL解析模块。SQL语句复杂、格式多样、形式多变,解析结果作为数据切分的依据。解析SQL语句的方法是编译成字节码,生成语法树,这种方式的优点是准确率高、数据层次清晰、结构正确,但设计到相关语法树知识,比解析字符串更难以理解。
数据分发模块。如果集群系统中没有进行数据切分,则多台数据库服务器存储的是完全一样的数据,这实际上是对硬件资源的浪费,也在同步数据保持一致上浪费了更多的时间和效能。而且一旦数据再上升一个等级,很可能一台服务器就无法存储下大量数据。所以合适的数据切分策略是迟早的,本解决方案将结合现有的数据切分策略,结合业务逻辑,提供多样的切分策略,并且预留切分接口使用户灵活地自定义自实现,系统的可用性更高。
并行处理模块。由分发服务器和多台数据库服务器构成。相对于集中式数据库来说,分布式询代价需要考虑以下因素:
CPU处理时间,I/O消耗时间,还有数据在网络上的传输时间。在设计系统的时候,应该根据分布式数据库中各个数据库的地理位置的不同情况来设计。在局域网且传输率高的系统中,通信代价和局部处理的开销差别不大,在优化中则应平等对待;在数据传输率较低和通信网速度较慢的系统中,网络传输可能会比花费在查询中的CPU及I/O的开销更大,则应首要考虑优化网络通信。
汇总处理块。结果汇总大致分为两种情况:单机单库情况下,直接返回结果;多机多库的情况则需要在转发节点处进行一个汇总。
基于架构的工作流程大致如下:首先,转发节点收到客户端发来的SQL语句,将依据各个解析节点当前工作量、预计完成解析工作的时间、本条查询语句预估需要时间、历史响应需求时间等因素,将SQL语句转发给各个解析节点,对其进行语法解析。当所有的工作量都经过这个转发节点的时候,必然会产生高并发的问题。在存在多个分发节点的情形下,为了消除单个转发节点的性能瓶颈,本文设计多个分发节点,每个节点都可以将任务转发到不同的解析节点。采用RoundRobin策略将任务依次分发给每个解析节点,让工作量保持均衡。其次,解析节点解析本次查询的SQL语句,生成便于理解的SQL对象,通过调用相应的接口方法可以实现对SQL语句的操作。最后,各个数据库服务器执行了 SQL语句,便对查询结果进行一个汇总并返回,划分倘若是单机查询,那么处理的结果可直接返回给客户端。
SQL解析、数据切分以及转发归并的工作都由以上四个模块协同完成。
基于MPP架构的设计了关系型数据库的海量数据分布式存储解决方案。本章采用解析SQL语句、分发SQL语句,并行处理、归并汇总处理结果的方式完成整个框架。与MySQL
Cluster的区别在于采用的存储引擎就是MySQL,适应于本身就用MySQL进行存储的集中式数据库的改造,或是业务逻辑复杂的报表展示等,无论是业务的扩展,迁移都十分方便。
参考文献:
海量数据篇6
8月25日,在和乔大厦职脉网宽敞明亮的新办公室内,记者再次见到了职脉网CEO吴海宁。他踌躇满志地告诉记者:“国际金融危机让我们的很多同行都夭折了,但这对于我们来说却是一个非常好的机会。因为危机去除了行业的浮躁和噪音,展示真正强者的实力。”
在长达3个小时的采访中,吴海宁不断地接到客户打来的“求情电话”,央求职脉网能够接他们的生意。吴海宁不厌其烦的给每一个人解释:“我们目前的资源实在是安排不开,您也知道,我们的运作方式像生产线一样,现在生产线已经饱和了。”
“没办法,”吴海宁解释道,“因为危机,我们在扩张上保守很多,借机练内功,打造流程。结果就造成了很多项目抢资源,很多客户的需求得不到满足。”
“现在有上万家猎头公司倒闭,而我们却这么火,我问了很多猎头公司的老总没有一个像我们这么火的。究其原因就是因为我们抓住了行业的本质。”吴海宁称,猎头以前是一对一的沟通,但职脉网却将它规模化、工厂化了,依赖于呼叫平台和数据平台将成本降低。信息一旦被数字化了,成本就几乎是零了。职脉网现在做的就是把搜集来的信息进行数字化的处理。
创业之初摸索前进
早在UT斯达康担任人力资源副总裁的时候,吴海宁就发现了巨大的商机,“2002年和2003年是UT斯达康最辉煌的时候,每年要招聘两三千名技术人员。但当时动用了很多猎头公司和招聘网站,最后的效果都不理想。”吴海宁回忆道,当时有几家世界知名的猎头公司拿了UT斯达康的订金但是到最后一个符合条件的人都招不到。
细心的吴海宁发现之所以出现以上现象有两点原因:第一是人才供应商没有真正地用心去做,因为做一个招聘技术工程师的项目远不及做高层的猎头赚钱多。第二是因为大部分人才供应商没有有效的资源储备,没有人想通行业的本质,停留在赚快钱、赚小钱的层次。于是在他决定创办一家提供真正的符合中国人才状况的优质人力资源服务的公司。
当时Web 2.0风靡全球,吴海宁就拉来昔日的同事、好友,想一起做一个既有模式创新又能发挥技术优势的线上互动招聘网站,但是很快他们就发现理论和实际往往是脱节的。“在刚开始的一年半时间里,我们试过好几个方向,公司转型了好几次,以至于最后团队信心受到了严重的打击。刚开始半年大家还有热情,后来慢慢都疲了。”回想起那段日子,吴海宁只能将苦水往肚子里咽,公司账上没钱了,他就把自己的钱打到公司的账上给员工发工资,但还是相继有人离开,最惨的时候办公室空了一大片,仅剩下了十几个人。
当时有很多人劝吴海宁先做点培训和猎头的生意,边赚钱边摸索,但是固执的他始终没有松口。
像开工厂一样做猎头
2007年9月的一天,在朋友的介绍下吴海宁参观了携程网,此次考察对他的启发很大。看起来琐碎分散的订机票和酒店等业务被携程规模化、流程化处理之后,竟然能做成如此大的生意。
敏感的吴海宁迅速联想到其实招聘和订票是相似的,只要规模化就有可能成功。回到公司之后,兴奋的他召集所有的高层开会,他把在携程看到的现状和自己的想法和盘托出。令他意外的是这次的想法竟然得到所有人的认可,这还是公司成立以来大家第一次意见统一。
经过分析他们发现,在低端人才市场和高端人才市场都无法实现最终做大做强的梦想,于是职脉网将目光锁定在了企业需求量大的中端人才招聘上。而从事中端招聘就要求能够在短时间内进行批量化的人才筛选,而要完成这些,必须通过技术手段积累大量的数据资源。
目标确定后,吴海宁迅速组建了一流的技术团队,并展开了工作流程的梳理和平台的开发。他们制订了一套类似于工厂的作业流程,首先由项目经理深入了解客户的需求并将职位描述及分析录入系统。然后信息被送到呼叫中心,呼叫中心的客服人员会根据预先设定好的条件利用职脉网自身的搜索引擎进行数据挖掘。接着信息又被转到了下一个环节,呼叫中心的招聘助理收到第一次筛选出来的简历后主动出击联系候选人,将符合条件的候选人推荐给项目经理进行面试。最后项目经理将筛选出的符合招聘要求的候选人推荐给客户,这样就完成了整个一个流程。吴海宁说:“这就好比是一个工厂的流水线,项目经理去拿订单,然后转到生产流程呼叫中心根据需求进行批量生产,最后将产品提交给客户。”
用搜索引擎获得庞大数据
吴海宁总是习惯性地和人家打赌:“很可能你的信息就在我们的库里。”随后他便打开职脉网的后台搜索页面用记者的***进行搜索。
接着一份比记者本人制作的还要详细的简历,按照职脉网预先设定好的格式和顺序展示在了电脑屏幕上。“这说明你符合我们的职场牛气指数,你算是职场牛人啊!”吴海宁半开玩笑地说,职脉网有一套自己的职场牛气指数换算的方法,只要符合这一指数的人才信息都会被收录在他们的数据库中。
所谓职场指数有点类似于谷歌的PR(PageRank)值算法,这个算法是由职脉网的招聘专家和技术专家共同制定的。该指数由四个变量决定:第一个是求职者目前所在的公司和职务级别;第二个是求职者过去工作过的公司和职位;第三个是学习的专业和学历;第四个是利用行业知识等所制定的数学算法。
“这个简历中的一部分来自你的名片信息、一部分来自你在SNS网站的注册信息,而另外的部分是我们分析了互联网上大量的散落数据后得出来的。”吴海宁指着屏幕告诉记者,拿到一大堆数据之后,职脉网会先进行分析,然后再进行结构化的处理,如果发现这些数据有缺失,系统就会自动到网上去搜集,最后按照事先设定好的格式拼凑在一起,形成一套完整的信息。
“其实互联网上各处散落的职业人士的信息有很多,我们只是把这些数据收集过来进行分类整理。我们还会不断在互联网上捕获新的信息进行自动的更新。”职脉网CTO赵阿民称,这些数据处理的复杂之处在于要处理各种格式、各种来源的文档,而且要让机器智能化的识别相同信息的不同表达方式。
数据是职脉招聘的根
目前职脉的数据库里有2000万份职业人士的数据信息,涉及到各个行业和领域。
“数据是我们业务的核心,也是我们业务的根。只有把根留住了才能让我们更好地开展其他的业务。”吴海宁告诉记者,职脉网所有的业务都是以数据为中心的,目前他们在挖掘和整理整个中国的人才数据。
与其他猎头最大的不同是,一般猎头找到了合适的人选就不会再继续寻找适合这个职位的人才了,而职脉却会继续开拓。比如一个医药公司在某个城市只需要五个医药代表,而这个城市却有十个从业者,猎头往往只找到五个之后就不会继续寻找了,职脉网却要把这十个人都找到,每一个人都给专门建立一个资料库。吴海宁告诉记者,“哪怕最后只成了一个,但是如果下次再做这个行业的话,这个城市我们就不用从零开始做了。 我们把这个叫人才Mapping。”
2008年5月份,在资源有限的情况下,吴海宁依然放弃了单个项目佣金从十几万到几十万的猎头,抽出了几十人组建专门的团队为默沙东在全国招聘500个医药代表,而后者的项目收入要远远低于前者。当时,公司上至投资人下至项目经理无不反对,但是吴海宁还是坚持要做默沙东的项目,进行全国医药行业人才的数据积累。
“当时很多人都不理解,但是最后我还是把任务硬给压下去了。”吴海宁称,事实表明他的决策是对的。通过默沙东的项目,职脉积累了30万医药代表的数据,约占整个医药代表从业者的30%左右,这个数据在整个领域是绝对的第一名了。
因为有了这些原始数据的积累,主动找职脉的客户也就越来越多了。“前两天刚签了一个做医药的外企的单子,为他们招聘医药代表,我们几天的时间就把符合条件的人全部送到了他们面前。当时客户都傻眼了,没有想到我们会这么快。”吴海宁骄傲地告诉记者,此次他们每招聘一个人仅用了几块钱的成本,却从客户那里得到了每人一万元的回报。从这个账上算的话,职脉要比猎头的成本低得多而利润却高得更多。
据职脉数据方面相关负责人曹伟介绍,除了上述医药行业外,目前职脉数据库中已经拥有全国互联网营销行业60%的人才、手机研发行业50%的人才。他们还在试***将这一成就拓展到金融行业。目前,职脉已经与世界知名的金融机构渣打银行、中融信托等达成了战略合作伙伴。
缔造职业人士帝国
如何让现有的庞大的数据库资源能发挥最大的功效?如何才能让更多的数据变活呢?
目前,职脉网正在和美国一家知名的互联网公司共同开发一种全新的沟通交流平台,并预计在明年投入使用。据悉,该平台可以实现邮件、SNS以及IM等***通信手段的整合,是一款颠覆互联网通信的全新产品,此技术一旦被使用将更大地降低沟通的成本。
“沟通才是招聘行业的本质,而这个新的技术将大大降低沟通的成本,能很好地将我们的业务流程与之融合。”吴海宁称,目前招聘网站的商业模式基本上就是靠广告,但是广告沟通效果较差,很多人看完广告之后都不知道自己是否符合招聘的条件。
之前职脉网的做法是利用呼叫中心通过电话与求职者直接交流,这极大地提高了沟通的效率。吴海宁告诉记者:“我们现在感触特深的是很多人,尤其是大学生找不到工作,而医药代表这么好的工作却找不到人。很多应届生看到这样的招聘广告也不会去尝试应聘,因为他们觉得这些离自己太远了。其实现在很多医药公司也都在招聘应届生,而且待遇非常好,第一年的总收入甚至可以达到10万元以上。而这些都要经过精准的沟通才能知道。”
海量数据篇7
关键词:海量数据;相似重复记录;综合加权法;编辑距离
中***分类号: TP311
文献标志码:A
0 引言
高质量的数据是保证企业发展的重要前提,因此为了满足业务的需求,需要整合不同的数据源,由于整合的过程会产生一些语法上相同或相似并且代表同一现实实体的相似重复记录,这样会直接影响数据的质量,因此相似重复记录的清除成为提高数据质量的重要步骤。
记录间的相似性检测实质上是表征记录的各属性的相似性检测,由于各个属性对于记录之间的差异性贡献不同,应根据属性的重要程度为各个属性赋予相应的权重,以提高检测的精度。海量数据下的数据检测需要使用大量的时间和资源。
为了检测相似重复记录,目前采用的方法主要有:基本的字段匹配算法[1]、递归的字段匹配算法[2]、基于“排序&合并”方法[3]、采用距离函数模型的方法[4]、基于qgram算法[5]、基于聚类的算法[6]和基于人工智能的算法[7]等。传统的方法在进行相似重复记录检测时,需进行大量的磁盘I/O操作,这将导致时间和空间复杂度很高,基于聚类的算法计算量较大,准确率较低;而基于人工智能的算法推理过程复杂。李星毅等[8]为了提高查全率和检测的精度,采取多趟检测的技术和主观的等级赋权法,增加了大量的检测时间。传统方法多采用滑动窗口保存重复记录集,窗口的大小指定不合理,导致有些相似重复记录无法正确检测,降低了查全率。
为了克服以上缺陷,本文对传统的检测方法进行改进,首先采用既考虑主观方面的用户经验又结合客观方面的数理统计方法的综合加权法计算各属性的权重,然后把各属性值作为关键字,利用多线程对数据集并行排序,最后在各线程中采用文献[9]中的优先队列技术依次检测各记录,检测过程中采用基于字符串长度过滤法(加速法)减少不必要记录对之间的比对时间,最终合并检测结果集。
2 算法设计
2.1 综合加权方法研究与设计
记录之间的相似性检测,实质上是属性的相似性检测。由于各个属性对于记录之间的差异性贡献不同,因此应该根据属性的重要程度,为各个属性赋予相应的权重,提高检测的精度。组合赋权的基本思想为:结合主观的用户经验和客观的数理统计方法,全面考虑属性的重要程度,生成合理的权重向量。
主观方面:李星毅等[8]采用等级法确定等级向量,即首先各用户根据相关经验为各个属性指定一定等级;然后根据均值法计算属性的最终统一等级,生成如表1所示的属性等级表;最后,根据统一等级生成等级向量。
2.2 多线程并发应用
海量数据的检测,必须考虑检测时间,如果顺序地对记录集的每一个属性进行排序和相似重复记录检测,势必会浪费大量的时间。本文考虑到共享加载到内存的数据集,采用多线程并发执行相似重复记录检测算法。这样,不仅充分利用计算机资源,同时又能大幅度提高算法的执行效率和相似重复记录的查全率。当所有的数据加载到内存后,如果按照多轮次检测算法,即第一次按照权重最高的属性排序,然后进行检测;如果效果不好,再按照权重次之的属性排序,接着再进行检测;反复进行操作,势必浪费时间。采用多线程的相似检测算法就是按照属性个数开启有限个线程,每个线程中按照属性进行排序,然后执行相同的检测算法,这样既可以减少多轮次检测的时间,又可以保证较高的查全率。
2.4 优先队列
传统的记录相似检测采用固定窗口大小的滑动窗口顺序扫描记录集,比较当前记录与滑动窗口中的记录之间的相似性,这样大大减少了记录的比对次数,提高了比对的时间效率。但是由于窗口的大小固定,势必引起漏查或者重复比对的问题。同时,窗口的记录只是单一的一条记录,不能代表某类重复记录的所有特征,同样也会导致漏查现象的存在。针对以上缺陷,采用使用重复记录聚类思想的优先队列代替固定窗口大小的滑动窗口。
使用优先队列对排序后的记录集进行相似记录检测的思想: 假如当前记录为Ri,优先队列的第一个聚类项代表为Rj,通过计算两者的相似性判断当前记录是否属于该聚类项,如果不相似,则直接与优先队列中的下一聚类项代表记录Rj+1进行比较,直到优先队列的最后一个聚类项代表;如果一直都不相似,则把记录Ri作为一个新的聚类项代表添加到优先队列的头部;如果此时队列中的记录总数超过优先队列上限,则根据“最久未使用”原则,删除优先队列中末尾聚类项。
如果Ri与Rj相似,说明该记录具有代表性,应该把该记录添加到当前以Rj为代表的聚类项中,并且将Ri作为新聚类项的聚类代表记录,同时把Ri添加到重复记录集中,然后对Ri之后的记录Ri+1继续进行相似检测。每次记录进行比对时,对比较过的聚类项元素进行标记,如果长时间某些聚类项没有被比较过,说明此聚类项在以后被比较的概率也比较小。因此有必要从优先队列中删除此类聚类项,减少优先队列中的记录,从而减少下一次的比对次数,实现了优先队列的自适应性元素删除功能。
通过使用优先队列对记录集进行相似重复检测,大大减少记录的比对次数;同时采用聚类思想,避免了因为单条记录不能代表多条重复记录而漏查的现象。该方式不受数据规模的限制,特别适合海量数据的相似检测。
2.5 算法流程
首先计算属性的权重,确定每一属性对于记录相似性检测的重要性;然后,多线程并发检测记录集,每个线程针对一个属性对记录集进行排序;最后在每个线程中检测相似重复记录并且合并所有的检测结果。属性相似检测的核心是字符相似度计算,字符相似度的计算通常采用编辑距离算法,由于编辑距离必然大于两字符的长度之差,为了提高检测效率,采用基于字符串长度的过滤策略,即因两字符长度相差较大而相似性较小,省略计算其编辑距离的策略。为了提高检测精度,利用综合加权法计算各属性的权值;并通过多线程并发执行检测算法,有效地提高查全率。
算法描述如下:
步骤1
用户根据属性实际重要程度给各属性指定等级,根据均值法计算各属性的最终统一等级;在各个属性中随机选取一定数目的记录计算其属性取值的种类数,生成属性取值种类数向量,最终把属性等级向量和属性取值种类数向量进行统一化处理,生成属性的权重向量。
步骤2
根据属性的个数创建多个线程。
步骤3
在每个线程中,按照属性值进行排序。采用优先队列顺序扫描记录集,计算当前记录与队列中记录的相似度;然后根据相似阈值判断记录是否相似,并添加到重复记录集中。
步骤4
合并各个线程中的重复记录集。
3 实验分析
3.1 实验设计
实验环境:Intel I3 370 2.40GHz CPU,物理内存2GB,硬盘空间320GB,操作系统Windows 7,数据库软件为Oracle11g,编程语言为Java语言。实验数据来源于镇江市市民信息的采集数据,包括社保的数据、部分试点事业单位的采集数据、财***局的数据等,由于来源广泛、职业的变换导致采集到的数据必然存在大量的重复。度量相似检测算法有效性的三个主要标准包括查全率R(Recall)、查准率P(Precision)和运行时间T(Time)。为了检验论文中检测算法的有效性,设计以下实验。
文献[8]提出的等级分组方法是一种比较优秀的相似重复记录识别算法,该算法首先根据等级法确定属性的权重,然后选择关键字对数据集进行聚类,最后在各个小的数据集中检测相似重复记录,为了避免漏查,采用多趟查找技术。该算法设计简单,时间复杂度小,检测精度较高。因此,选择等级分组方法作为本文所采用方法的参照。为了便于处理,等级分组方法称为RGM,本文的算法称为IWM。分别从数据源中提取四组数据,对两种算法进行比较,四组数据量分别为534万、98.1万、126.2万和153.7万,通过软件和人工等方式对上数据分别处理,使之分别包含0.46万、0.85万、1.31万和1.44万条相似重复记录。
4 结语
针对海量数据下相似重复记录检测问题,本文采取了多种有效策略。首先采用主观因素和客观因素综合考虑的综合加权法计算各属性的权重,然后采用多线程依据各属性对数据集并行排序,使用加速法提前结束记录比对算法;最后合并检测结果集。实验结果表明, 该方法是一个合理、有效的相似重复数据检测方法。本文方法仍有许多未解决的问题,例如:记录之间的相似度阈值大小是根据经验设定的。由于它对记录的检测精度有一定的影响,所以将在以后的工作中继续研究阈值的设定问题。
参考文献:
[1]MONGE A E, ELKAN C P. The field matching problem: algorithms and applications [C]// Proceedings of the 2nd Conference on Knowledge Discovery and Data Mining. Cambridge: AAAI, 1996:267-270.
[2]MINTON S N, NANJO C, KNOBLOCK C A, et al. A heterogeneous field matching method for record linkage [C]// Proceeding of the 5th IEEE International Conference on Data Mining. Piscataway: IEEE, 2005: 314-321.
[3]HERNANDEZ M, STOLFO S. The merge/purge problem for large databases [C]// Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data. New York: ACM, 1995:127-138.
[4]BLENK O M, MOONEY R. Adaptive name matching in information integration [J]. IEEE Intelligent Systems,2003,18(5):16-23.
[5]邱越峰,田增平,季文赟,等.一种高效的检测相似重复记录的方法[J].计算机学报,2001,24(1):69-77.
[6]鲁均云,李星毅,施化吉,等.基于内码序值聚类的相似重复记录检测方法[J].计算机应用研究,2010,27(3),874-878.
[7]孟祥逢,鲁汉榕,郭玲,等.基于遗传神经网络的相似重复记录检测方法研究[J].计算机工程与设计,2010,31(7):1550-1553.
[8]李星毅,包从剑,施化吉.数据仓库中的相似重复记录检测方法[J].电子科技大学学报,2007,36(6):1273-1277.
海量数据篇8
关键词:物联网;海量数据;分布式内存数据库;分布式实时数据库
中***分类号:TP393
物联网技术的不断发展为各个领域的数据化提供了可能,在各个领域中的数据量不断增加。随着各个行业业务领域的不断扩大与信息化的不断深入,数据在企业的所有环节中都得到了广泛的应用。用户在对海量数据进行处理与分析的过程中,对实时性与高效性提出的更高的要求。只有提高含量数据处理与分析的实时性与有效性才能够为企业提供更加准确与详细的市场行情,为企业决策提供可靠的依据,在市场竞争中占据有利地位。物联网中各个子系统所产生的海量的、异构的数据都需要进行统一的处理与存储,因此,海量数据处理方法需要实现多个不同网络、数据源与异构的海量数据进行融合与处理。当前,传统的数据处理技术与数据库管理系统(DBMS)已经不能够满足物联网海量数据处理与存储管理的需求了。因此,本文重点分析与研究了基于物联网海量数据处理的数据库技术,包括分布式内存数据库技术与分布式实时数据库技术两种。
1 物联网数据所具有的特性
物联网(Internet of Things,IOT)指的是在物品上置入内嵌电子标签或传感器,通过这些对物品或者环境的信息进行获取,之后通过无线网络将收集到的信息向后台信息处理系统进行发送,各个信息系统之间通过互联的方式形成网络,通过这个网络实现对物品的跟踪、对环境的监测等智能化管理。
在现实情况中,物体在数量方面非常庞大,在形式方面非常多样,而且还一直处在变化之中,外界环境对其造成的影响较大。因此,物联网中的数据具有以下几个方面的特点:
1.1 物联网数据具有海量性的特点
物联网系统中通常会包含一个或者多个无线传感网络,这些无线传感网络中包含了超多的传感器节点。这些传感器节点持续地产生新的采用数据,而且数据的类型是多种多样的,不仅包括数值类采样数据,而且包括多媒体采样数据。此外,物联网系统中还会将所采集的数据进行一定时间的存储,为原处理的追溯与数据的挖掘分析提供便利。举例来讲,假设物联网系统中包含10,000个节点,每秒钟进行一次存储,每次单点占据10个字符,10年之后物联网系统中所包含的数据量将达到10,000×10×10×365×86400=31,536,000,000,000字节,而这仅仅是较为简单的数值类型数据。因此,物联网数据具有了海量性的特征。
1.2 物联网数据具有异构性的特点
传感器件在物理特性、产品特性以及系统设计等方面都存在一定的差异性,导致其采集生产的数据在类型、进度与数量方面都存在不同。这就导致了物联网数据存在多种模式,较难进行统一。例如在智能交通中,需要实现的功能包括车辆GPS定位、RFID车牌识别、路况信息、违章电子照相等,在这些功能实现的过程中通常需要种类较多的传感器,导致产生的简单数值类型数据、多媒体***像视频类型数据等异构数据。
1.3 物联网数据具有数据多维性与数据关联性的特点
物联网数据所具有的多维性特点是其较为重要也是非常必要的特点之一,视域普通的互联网数据进行区分的重要特性。物联网系统在对原始数据进行采集的过程中,默认的状态属性包括time(时间)、space(空间)、devicestamp(设备戳)。此外,物联网的物理对象并不是相互***的,各个对象之间存在着各种不同的管理属性。例如智能电网中的用户在物理电网中的相对位置会对用户之间的关系和关联程度造成影响。物联网数据与数据属性是一个整体,缺一不可,如果没有数据属性,物联网数据就失去了代表意义。因此,数据的传输、存储与使用的过程中都应该注重属性的完整性与正确性。
1.4 物联网数据具有实时性与动态化的特点
物联网应用具有非常强的实时性,例如RFID系统、WSN系统等,都是对实时数据进行采集,在一定周期内向服务器进行数据发送。物联网系统中要对某个监控对象在某一时刻的物理状态进行查询时,仅仅依靠某个时间关键词的匹配很难实现,主要是由于数据采集具有一定的周期性。为了提供数据查询处理的有效性,应该将监控对象的采集数据形成数据序列,对监控对象制定时间的物理状态进行计算。在数据不断更新的过程中,所形成的采集数据序列也处于不断的动态变化中。
2 物联网海量数据处理中的重要技术
在物联网中包含了种类非常繁多的感知设备,这些设备所属的网络类型都是不同的,物联网在进行海量数据处理的过程中,需要采用能够对不同类型网络、不同数据源及异构含量数据进行融合的处理方法,在对海量数据进行处理的过程中进行有价值信息筛选,并对其进行有效的分析与应用。
2.1 物联网含量数据处理中的多源数据融合技术
在物联网中,如果信息获取的节点不同,这些信息的数据类型特征也不同。在对多源异构海量信息进行处理的过程中,需要实现层次化表达数据结构与本体标准的统一,以此作为标准的多元数据信息融合格式。实现多源数据融合技术与数据聚类技术、度量技术、时空转换技术等方面的有机结合,实现多源数据的一体化有效利用。
2.2 物联网海量数据处理中的数据存储、检索与查询技术
在物联网中部署了非常多的感知设备,对物联网中的数据进行采集,由于物联网中所包含的信息量巨大,采集的数据规模往往处于TB甚至是PB的级别。对物联网中海量数据的存储技术、检索技术与查询技术进行研究,能够促进海量数据处理的集中性与有效性,对这些数据实现高效的管理,将用户定制的数据进行实时、准确的传输,从而实现技术与用户信息系统的有机结合。
2.2.1 物联网海量数据存储技术
在物联网中,海量数据存储所采用的是就近存储原则,以全局摘要视***节点为中心,接收所有数据归档节点的数据分布情况报告。数据归档节点首先要向全局摘要视***节点发出查询请求,全局摘要视***节点对数据所在网络节点进行快速定位,通过这种方式能够避免物联网中出现信息泛洪式查询的情况。如果存储磁盘的设计容量已经耗尽,则需要对数据进行回收,在数据回收的过程中,首先要对查询历史进行统计,对当前系统存储容量进行核算,在此基础上为不同类型的数据动态地配置生存的周期,如果数据已经超过了配置的生存周期,那么这些数据就会被新增加是数据所覆盖。在物流网中,数据具有单次写入、较少修改、多次阅读与从不删除的特点。因此,单个网络节点在对数据储存技术进行选择的过程中,应该选择非关系数据库技术。
2.2.2 物联网数据索引技术
物联网中的数据分为两种类型,一种是时态流数据,另一种是空间流数据。物联网中依据数据的类型实现最优索引算法的自动创建。时态流数据主要采用间隔查询的查询类型,而空间流数据则通过操作方式的查询来对区域中所有符合条件的对象进行寻找,从而实现最佳索引的建立。
3 物联网数据库技术应该满足的要求
3.1 数据库技术的数据、数值及索引要求
物联网中存在着非常巨大的数据大小与数值范围,同时物联网系统中包含了多种类型风格不同的数据对象,在对这些数据进行处理的过程中,一方面要实现数据库编目管理,另一方面还要注重数据索引管理,这就对数据库的实时性提出了更高的要求。
3.2 数据库技术的查询语言要求
传统的数据库管理系统查询语言为结构化数据,这种查询语言已经不能够满足当前的需求了。可扩展标记语言(XML)所能够提供的数据表达方式具有更加松散的结构,同时能够对自定义数据描述进行支持。这种可扩展标记语言能够实现对文档及网页的整合,同时还能够查询关系数据库数据源等。
3.3 数据库技术的多相性与完整性要求
物联网中包含了众多的节点,这些节点包括感知节点与网络节点,不同节点的数据保存方式也是不同的。随着物联网中数据量与系统类型的快速增加,物联网实施数据库面临着更加严峻的异构性与互操作性问题。
3.4 数据库技术的时间序列聚集要求
传统的查询语言已经不能够适合时间序列数据的查询了,需要依据时间有序方式对物联网中实时数据进行组织与存储,能够进一步促进查询任务性能的提高、快速查询相应的提高。物联网中的实时数据具有时序特征,最佳的时间采样周期依赖于数据性质与应用领域,物流网中的实时数据库查询设备需要能够对数据进行连续的采用服务。
4 物联网实时数据库
4.1 分布式内存数据库技术
分布式数据库是在传统数据库技术与网络技术相互结合的情况下产生的,分布式数据库在物理空间的分布方面具有分散性,在计算机网络中的各个节点中进行分布,但是在逻辑方面具有同一性,是同一个系统中的数据结合,分布式数据库系统架构如***1所示。分布式内存数据库技术的特点包括:对具备物理空间自治性与逻辑全局共享性;第二,数据的冗余性与数据的***性;第三,系统的透明性等。分布式数据库管理系统所采用的控制方式为全局控制集中、分散与部分分散方式;分布式数据库管理系统的主要组成部分包全局数据库管理系统、通信管理、全局数据字典、局部场地数据库管理系统等;分布式数据管理系统的主要功能包括局部应用的执行、局部数据库的建立与管理、场地的自治、全局事物的协调、分布透明性的提供、局部数据库管理系统的协调、更新的同步等。当前,数据库技术发展最为明显的特征为实现了数据库技术与网络通信技术、人工智能技术与并行计算技术之间的渗透与融合。
***1 分布式数据库系统架构
分布式内存数据库管理系统中,需要满足的要求包括:第一,各个网络节点中做包含的内存数据库要保持自治性;第二,内存数据库要实现集群化特征,通过垂直切分策略、读写分离策略及水平切分策略等实现海量数据的存储;第三,注重多种数据切分方式的结合,总体上采用垂直切分策略,在此基础上采用水平切分策略,依据应用与数据的具体情况选择不同的切分方式;第四,各个节点内存数据库之间要实现相互协调,所有的节点数据库都能够用作其他节点的服务端;第五,数据分布要保持一定的透明性,对数据的分布性与数据库的协调性进行满足,对物联网海量数据实时处理需求进行满足。第六,内存数据库必须具备持久性,如果内存数据库中的数据出现了变化,需要将这些变化复制到磁盘数据库中,通过两级数据库确保其持久性。
4.2 分布式实时数据库技术(DRTDBS)
分布式实时数据库技术是以云技术为基础的,其架构***如***2所示。分布式实时数据库技术指的是将数据库技术与云计算技术之间进行相互的融合,利用分布非常广泛的云计算中心服务器建立分布式实时数据库,实现数据库规模的可扩展与可伸缩,实现数据库管理系统的可靠性与可维护性。分布式实时数据库技术中主要的功能包括数据检索与处理压缩、数据存储虚拟化、内容分发网络、冲突处理、事物调度、负载均衡、故障监察、故障恢复等。
***2 分布式实时数据库架构
在分布式实时数据库的构架中,数据采集器与数据库服务器节点服务部件在进入分布式通讯服务平台是都是通过平台的中间件接口来完成的,在分布式通讯服务平台中实现与其他服务组件之间的交互过程。分布式实时数据库中的组件都是通过服务的方式实现与其他功能部件之间的连接与调用,从而能够自由的、高效的进行数据交互。此外,组件在分布式通讯服务平台中还能够实现与其他接入平台的节点进行通讯连接,分布式通讯服务平台接口还能够实现数据收发的功能。分布式通讯服务平台利用平台内部所具有的缓冲队列与异步调用机制,实现了无论接收节点处于何种状态,节点都可以进行数据发送,接收节点在数据接收的过程中采用信息回调方式。分布式数据存储平台如***3所示。
***3 分布式数据存储平台
数据采集器、数据服务器所需要的数据存储服务、数据检索服务的各个组件在云计算的基础之上接入到分布式通讯服务平台中,最终形成的统一的数据库存储服务与数据库检索服务,同时这些服务还能够对外进行提供,改变了传统的单台实时数据处理服务器所具有的孤岛模式,实现了分布式数据存储功能与数据检索功能系统的去中心化与对等化。不同的数据采集器或者是数据服务器对数据进行采集,并将采集获得的这些实时数据通过服务平台进行发送,最终发送到统一的数据存储服务功能模块中进行存储。客户端通过分布式通讯服务平台的接口或者WEB服务器与通信服务平台进行连接,向统一数据查询服务器提出数据查询服务的申请并进行查询。服务器节点通过分布式通信服务平台向其他的节点进行数据的发送,如果数据发送成功,则意味着数据写入成功;当接收节点接收到数据之后,在接收的过程中需要利用毁掉接口来完成。
5 结束语
本文在研究物联网海量数据特征的基础上对物联网海量数据处理关键技术及物联网实施数据库要求进行了列举,重点分析了分布式数据库技术与云技术实施数据库技术在物联网海量数据处理过程中所发挥的作用。首先,分布式内存数据库系统中包含多个节点数据库,这些节点数据库都保持着一定的自治性、数据分布性与数据库协调性,与数据分布所具有的透明性相互结合之后能够实现数据库平衡改进,更好地满足了物联网海量数据实时处理的要求。其次,分布式存储技术与云计算技术的相互结合形成了分布式实时数据库技术,多个数据采集器与数据服务器的数据存储部件与数据检索部件在云服务平台的基础上形成短路数据存储与数据检测服务,能够更好地满足物联网海量数据处理的要求。通过对基于物联网海量数据处理的数据库技术分析与研究,对物联网应用领域的延伸与推广提供了推进作用,进一步促进了海量数据的进一步挖掘。
参考文献:
[1]魏笑笑.基于RFID的物联网技术在农产品安全领域中的应用研究[J].安徽农业科学,2011(54):15150-15152.
[2]刘书伦,程亚维.基于物联网技术的产业集聚区服务平台研究[J].吉林工程技术师范学院学报,2014(53):88-90.
[3]朱洪波,杨龙祥,金石.物联网的协同创新体系与智慧服务产业研究[J].南京邮电大学学报(自然科学版),2014(01):1-9.
[4]黄健,冯暄,翁凯.DCQD:一种物联网高性能数据采集平台的设计与实现[J].四川大学学报(自然科学版),2014(42):707-712.
[5]袁磊,赵俊三,李红波.物联网空间数据仓库框架体系及关键技术分析[J].地理信息世界,2013(43):58-62+80.
[6]韩海雯,齐德昱,封斌.基于云计算与物联网技术的港口物流综合服务平台架构研究[J].计算机科学,2013(48):232-235+261.
[7]张桂刚,毕娅,李超.海量物联网数据安全处理模型研究[J].小型微型计算机系统,2013(54):2090-2094.
[8]丁治明,高需.面向物联网海量传感器采样数据管理的数据库集群系统框架[J].计算机学报,2012(75):1175-1191.
海量数据篇9
关键词: 海量数据; 教育多媒体数据库; 分类存储; 数据检索
中***分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2017)08?0042?04
Research on efficient classification and storage technology of mass data
in educational multimedia
YUAN Yanxing1, GUO Xianzhou2
(1. Guangdong Polytechnic of Water Resources and Electric Engineering, Guangzhou 510925, China;
2. Hebei University of Technology, Tianjin 300401, China)
Abstract: In order to improve the addressing and information retrieval abilities of education multimedia database, it is necessary to develop the efficient data classification storage technology. An education multimedia mass data classification storage technology of the semantic directivity mean value C data clustering is proposed. The data storage structure of the educational media database is analyzed. The cluster center of data storage and classification control threshold of attributes category set are calculated. The semantic directivity feature extraction method is adopted as the pheromone guidance of the data storage to conduct optimization classification storage of the extracted semantic directivity characteristics in combination with mean value C clustering. The simulation analysis results show that the method for the classification storage of education multimedia mass data can improve the throughput of the database, and the recall rate of data retrieval.
Keywords: massive data; education multimedia database; classification storage; data retrieval
0 引 言
S着教育多媒体数据存储技术的发展,大量的多媒体教育数据通过教育信息管理系统的数据库进行分布式存储和传输,教师和学生在进行信息检索对只需要通过相关的指令进行多媒体教育资源的调度和查询,方便教学应用[1]。海量教育多媒体数据主要包括了多媒体课件、***片、教学音视频等信息,需要对海量教育多媒体数据进行分类高效存储设计,提高教育多媒体数据的管理和调度能力,传统方法中对数据库海量教育多媒体数据的挖掘是建立在多媒体数据库的信息检索统计特征提取的基础上[2?3],通过语义和关键词的访问和检索进行信息索引和标注,方法可靠简单,但是效率不高,对教育多媒体数据有效存储的层次性建模性能不好[4]。对此,本文提出一种语义指向性C均值数据聚类的海量教育多媒体数据分类高效存储技术,进行数据库存储的优化设计,得出有效性结论。
1 教育多媒体数据库的数据存储结构分析
1.1 教育多媒体数据的量化特征编码
为了实现对海量教育多媒体数据的优化分类存储设计,需要进行教育多媒体数据库的数据存储结构分析,采用网格拓扑结构进行数据库的分布式存储网格设计[5]。海量教育多媒体数据的数据存储的分布式结构主要分为水平结构、垂直结构、左对角线结构、右对角线结构等,如***1所示。
根据***1所示的教育多媒体数据库的数据存储结构,设置4个检索通道进行海量教育多媒体数据的访问设计,***中,,和分别表示待检索教育多媒体数据的邻域内的码矢,采用语义自相关函数分析方法进行教育多媒体数据的近邻点模糊聚类中心计算,构建多媒体数据的向量量化特征编码模型[6],把当作聚类中心的优化索引值,初始化多媒体数据库中教育数据的梯度信息检索水平集函数,通过海量教育多媒体数据准确挖掘和检测,实现对数据库的有效访问。在进行4个检索通道的语义信息素提取中,提取海量教育多媒体数据特征分布梯度***,得到数据库的分布式调度输入向量值分别为,,和,表示为:
(1) 式中,为初始化的聚类中心嵌入维数,数据库存储分布空间特征分布区域和,采用海量教育多媒体数据的特征序列训练重构方法进行向量量化编码,设置初始化码书{,};设置多媒体数据分布的权重响应为;多媒体数据的向量量化编码的初始值为。令为训练序列,教育多媒体数据库存储通道的频率计数初始值设定为。
对输入的教育多媒体数据进行稳态周期性分解控制,得到训练向量模式为;计算教育多媒体数据的时域向量与全部分类存储节点所连权向量的距离为:
(2)
式中,,最后得到教育多媒体数据的量化特征编码输出为:
(3)
式中,在聚类中心初始值确定的情况下,通过教育多媒体数据的量化特征编码,提高分类存储的效率。
1.2 数据存储的聚类中心计算
在上述进行了教育多媒体数据的量化特征编码的基础上,进行教育多媒体数据优化分类存储的聚类中心计算,设教育多媒体数据库中的海量数据的采样幅度为,计算输入教育多媒体数据库中的训练向量码书冗余信息为,采用高斯随机模型表示数据中的统计特征,存储节点分布的最小距离的节点为,海量教育多媒体数据r间序列为, ,根据Takens嵌入定理[7],得到数据优化分类存储的最小嵌入维数为;在给定的海量教育多媒体数据分布的权重指数下,的属性值为。构建教育多媒体数据库的初始级码元,,计算教育多媒体数据的干扰信息参量估计值,,得到教育多媒体数据的最佳码书为:
(4)
式中:是第n条数据存储通道上的区域分布特征;为第n条数据存储路径扩展时延,由此得到数据存储的聚类的区域分布函数为:
(5)
数据集合中含有个样本,计算输入存储节点的量化编码统计平均失真为:
(6)
现在把教育多媒体数据的语义信息集合分为c类,其中1
(7)
式中,为教育多媒体数据的模糊聚类中心的第个语义特征指向性分布矢量。
2 数据的分类高效存储改进实现
2.1 数据属性类别集分类控制阈值计算
本文提出一种语义指向性C均值数据聚类的海量教育多媒体数据分类高效存储技术。在此需要进行海量教育多媒体数据的属性类别集分类控制阈值计算,假设海量教育多媒体数据检索区域中文本信息的特征分布序列为,,对教育多媒体数据的量化编码信息进行区域分块设计,采用模板匹配方法进行存储信息窗口加权控制[8]如下:
(8)
在上述进行数据库存储分布的加权控制中,在横向和竖向两个梯度方向对教育多媒体数据的聚类编码样本进行自组织神经网络训练,得到数据属性类别集分类控制阈值的计算结果为:
(9)
式中,q,p分别是教育多媒体数据库中的编码数据的向量量化的梯度特征差异性语义信息素特征,采用自适应聚类编码加权,通过属性类别集分类控制阈值进行数据分配的有效性判断。
2.2 语义指向性特征提取
确定海量教育数据优化分类存储的特征窗口大小N,进行语义指向性特征提取,得到输出的加权向量为: (10)
采用一个1×N的窗口来遍历被检索教育多媒体数据的视频和***像等多媒体数据信息集合,进行多属性类别集分类控制阈值判决,得到属性类别集分类的语义特征聚类中心,即:
(11)
式中,表示中分类存储的训练样本长度,用欧氏距离表示。
通过对教育多媒体数据中的有用文本进行语义指向性特征提取,各自判决的文本的信息素TLX,TLY,文本信息素的语义特征提取的判决式为:
(12)
设海量教育多媒体数据集中语义相关信息特征总数为X,在最小窗口下语义指向性聚焦的冲激响应函数为,向量量化的梯度差异性分布的最小距离为:
(13)
建立Markov模型,提取教育多媒体数据库海量教育多媒体数据序列的高阶谱特征进行信息融合,设教育多媒体数据所属类别的对象集合为第个存储节点处的概念格,数据存储节点的传递路径有P条,由此得到输出的语义指向性特征输出为:
(14)
(15)
式中:为海量教育多媒体数据的信息索引的边界溢出估计值;为概念格结点的信息融合中心加权系数;为多媒体数据非线性时间序列的时频特征;为自相关函数。
2.3 基于模糊C均值聚类的数据优化分类存储
最后采用模糊C均值聚类对提取的语义特征进行指向性聚类分析,实现数据的优化分类存储,设和为数据的语义特征判别属性集合,海量教育多媒体数据的模糊C均值聚类空间矩阵为:
3 仿真实验分析
实验中采用C++和Matlab 7混合编程实现教育多媒体数据库海量数据的优化分类存储设计,对数据时间序列进行特征训练,训练集频带为5~120 kHz,数据库存储带宽变化范围为1~10 dB,对教育多媒体数据访问的初始频率 Hz,终止频率Hz,在数据存储空间中的信息干扰强度为,最大分类搜索半径,数据存储空间的嵌入维数,语义特征提取的指向性聚类中心初始值为,最大迭代次数为,模糊C均值聚类的属性类别判别阈值,根据上述仿真参量设计,采用不同方法进行数据分类存储分析,得到数据库的吞吐量和进行教育多媒体数据库访问的数据召回率对比结果如***2和***3所示。
分析上述仿真结果得知,采用本文方法进行海量教育多媒体数据的分类存储,具有较高的数据吞吐性能和数据召回率,说明数据存储和访问的效率得到提升,具有优越性。
4 结 语
本文研究了海量教育多媒体数据的优化存储设计问题,提出一种语义指向性C均值数据聚类的海量教育多媒体数据分类高效存储技术。研究结果表明,采用该方法进行海量教育多媒体数据的分类存储,能提高数据库的吞吐量,数据检索的召回率等指标,具有较高的应用价值,性能优于传统方法。
参考文献
[1] 官亚勤,赵学胜,王鹏飞,等.基于切片原理的海量点云并行简化算法[J].计算机应用,2016,36(7):1793?1796.
[2] 周煜,张万兵,杜发荣,等.散乱点云数据的曲率精简算法[J].北京理工大学学报,2010,30(7):785?789.
[3] 胡志胜,于敬武,束涛.一种结合了栅格化和特征判断的点云压缩方法[J].辽宁工程技术大学学报(自然科学版),2015,34(8):958?962.
[4] 章登义,吴文李,欧阳黜霏.基于语义度量的RDF***近似查询[J].电子学报,2015,43(7):1320?1328.
[5] AMERIJCKX Christophe, VERLEYSEN Michel, THISSEN Philippe. Image compression by self?organized Kohonen maps [J]. IEEE transactions on neural networks, 1998, 9(5): 1287?1292.
[6] 高志春,陈冠玮,胡光波,等.倾斜因子K均值优化数据聚类及故障诊断研究[J].计算机与数字工程,2014,42(1):14?18.
海量数据篇10
关键词 文本挖掘;Hadoop;云计算;文本数据
中***分类号 TP301 文献标识码 A 文章编号 1000-2537(2016)03-0084-05
Abstract To overcome the problem of low time efficiency for commonly used text data mining system in the treatment of massive text data, an improved mass text data mining method was put forward based on the Hadoop cloud platform.This method firstly improved traditional Hadoop cloud framework to meet the needs of the massive text data mining, and then decomposed mass text data sets and mining task to multiple computers of the improved platform for parallel processing. By doing so, this method realizes the mass text data mining platform based on the improved Hadoop cloud platform. The effectiveness of this improved platform is verified by the mass experimental data set composed of 10 000 news materials.
Key words text mining; Hadoop; cloud computing; text data;
随着计算机技术与信息技术的飞速发展,国民经济各行业所获得的数据呈爆炸式增长,TB级甚至PB级海量数据无处不在[1].由于数据主要来自于互联网,例如电子商务、微博等,这些数据主要以文本形式存储,十分繁杂但又极具价值.它们产生的速度远远超过了人们收集信息、利用信息的速度,使得人们无法快速有效地查找到自己真正感兴趣的信息,从而造成了时间、资金和精力的巨大浪费,导致“数据资源”变成“数据灾难”[2].因此,如何有效地从这类海量数据中获取信息或规律已成为当今信息科学技术领域所面临的基本科学问题之一.
然而, 在传统计算框架下,海量文本数据的处理一般需要借助高性能机或者是更大规模的计算设备来完成[3].这虽然能够在一定程度上解决海量数据的处理问题,但是其具有成本昂贵、随着时间推移容错性能差、可扩展性差等缺点,从而导致其很难普及[4].
Hadoop云平台作为一种专门处理海量数据的新式计算模型于2005年被提出,2011年1.0.0版本释出,标志着Hadoop已经初具生产规模,它将现代计算机的高性能与人的高智能相结合,是当今处理海量数据最有效、最核心的手段与途径[5].论文将传统Hadoop云平台进行改进以适应海量文本数据挖掘的需要,然后将海量文本数据集和挖掘任务分解到该改进平台上的多台计算机上并行处理,从而实现了一个基于改进Hadoop云平台的海量文本数据挖掘平台,并通过对10 000篇新闻材料组成的实验数据集进行挖掘验验证了平台的有效性和高效性.
1 Hadoop云平台简介
Hadoop云平台[6]是由Apache基金会开发的一个能够对大量数据进行分布式处理的软件框架,是一个能够让用户轻松架构和使用的分布式计算平台.通过该框架,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储.Hadoop框架由HDFS[7]和MapReduce[8]组成,其中,Hadoop分布式文件系统(HDFS)[3]在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的,目前已经是Apache Hadoop Core项目的一部分.HDFS被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统的区别也很明显[9].HDFS是一个高度容错性的系统,适合部署在廉价的机器上;能提供高吞吐量的数据访问,非常适合大规模数据集上的应用[10].MapReduce[11]是谷歌开发的一种分布式程序设计框架,基于它编写的应用程序能够运行在由上千台计算机组成的大型集群上,并且以一种可靠容错的方式对海量数据进行并行处理.Hadoop能够实现对多种类型文件的处理,比如文本、***像、视频等.我们可以根据自己的需要编写特定的应用程序来完成任务目标 [12].
2 传统基于Hadoop云平台的文本数据挖掘
在传统基于Hadoop云平台的文本挖掘系统中,节点主要分为主节点(Master)和从节点(Slave)这两类.整个系统仅有一个Master节点,由NameNode、文本数据集、JobTracker、文本挖掘算法库组成.在系统中可有多个Slave节点,它由DataNode、TaskTracker组成,主要负责系统的存储和计算任务.系统的整体架构如***1所示.
NameNode: 整个集群中只有一个,是整个系统的大脑,负责管理HDFS的目录树和相关的文件元数据信息以及监控各个DataNode的健康状态.NameNode主要职责是跟踪文件如何被分割成文件块、文件块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常等,如果NameNode节点停止运行的话将会导致数据节点无法通信,客户端无法读取和写入数据到HDFS,实际上这也将导致整个系统停止工作.通常情况下每个Slave节点安装一个DataNode,数据以若干个固定大小的block块的形式在其上存储,定期向NameNode汇报其上存储的数据信息.
文本挖掘算法库主要用于存储对数据进行挖掘所需的算法,这些算法都被存于Master节点中.通常算法都是串行的,为使它们能够在Hadoop云平台执行,在使用之前需要对它们按照Hadoop云平台的特点进行改造.在挖掘过程中,JobTracker会根据实际所需自动将其分发至各Slave节点,供TaskTracker使用.
在该系统中,Master周期性地ping每个Slave,如果在一个时间段内Slave没有返回信息,Master就会标注该Slave节点失效,此节点上所有任务将被重新初始空闲状态,并被分配给其他Slave执行.
从功能上划分,NameNode、DataNode、文本数据集形成了系统的存储部件,JobTracker、文本挖掘算法库、TaskTracker形成了系统的计算部件.
3 Hadoop云平台的改进
在海量文本数据挖掘中,网络通信性能制约了系统性能的提高,网络宽带资源比较重要.在“计算迁移总是比数据迁移代价低”[12]的思想指导下,本文将计算节点和存储节点配置在一起,在任务调度时尽量在保存相应输入文件块的设备上分配并执行任务,这种方法使得大部分并行任务都在本地机器上读取输入数据,有效的减少网络数据流量,从而减少了节点间的通讯消耗.
在Hadoop云平台工作过程中,节点间的数据传输消耗大量时间,如果能减少数据传输次数,就有可能提高系统整体时间性能.在传统的Hadoop云平台中,需要将具有相同键值Key/Value对的中间数据传送到同一个Reduce节点归约.如果相同类型的键值Key/Value对较多,即这类中间结果较多的话,那么节点间就必定存在大量中间结果的传送,这势必消耗大量宽带资源,平台的时间性能也就交差.为此,我们对传统Hadoop云平台作如下修改:在Map阶段增加一个CombineProcess模块,对同一Map阶段中具有相同键值Key/Value对的中间结果做一个初步合并,并过滤掉一些无用的中间结果.改进后的Hadoop云平台海量文本数据挖掘系统工作流程如***2所示.
由于CombineProcess模块位于Map阶段,只在本地机上执行,并不存在节点间的数据传输,因此,该模块耗时较少.而在文本挖掘中,相同键值Key/Value对的中间结果以及无用的中间结果较多,经过CombineProcess模块的初步合并和过滤,能够减少很多中间结果,相应地也就较多地减少了节点间的数据传输,此较少的消耗时间要比CombineProcess模块在本地机上执行初步合并和过滤所消耗的时间要多得多,因此,改进后的Hadoop云平台系统在整体上能够减少耗时,执行效率能够有所提升.
4 仿真实验
在实验中,我们的Hadoop云平台由9台计算机组成(其中1台为Master,另8台为Slave),操作系统均为CentOS-6.4 64 bit,配置均为八核IntelCorei 7处理器,4 GB内存,1 TB硬盘,Hadoop版本为1.1.2,Java版本为1.7.25,每个节点通过100Mb/s的局域网连接.实验数据集,从新华网(http:///)***2010―2013年间新闻材料,共10 000篇,包括财经、法律、娱乐、体育、计算机等10大类.这些实验数据集经预处理后 (忽略所有的报头)进行挖掘实验,采用改进前后的Hadoop云平台海量文本挖掘系统,主要进行了以下3组不同的对比实验(注:所有时间结果都四舍五入取整):
实验1 处理10 000篇新闻材料,文件复制数分别设为1和3,BlockSize设为10 M,系统执行时间如表1所示.
从表1可以看出:文件复制数的增多并没有提高整体挖掘的时间性能,同时,文件复制数增多,系统准备时间在一定程度上会增多.
实验2 文件复制数设为1, Slave分别为2,4,6,8台,BlockSize设为10 M,处理10 000篇新闻材料,系统执行时间如表2所示.
从表3可以看出:BlockSize分块大小对系统有很大影响.如果BlockBlockSize较小,那么Job数目增多,系统调度频繁,节点间通信开销大,性能降低;如果BlockBlockSize较大,虽节点间通信开销小,但是并行程度较低,节点内部计算时间较大.
从表1、表2和表3可以看出:在同样条件下,改进后的Hadoop云平台海量文本数据挖掘系统在时间消耗上都优于改进前的平台系统.这是因为改进后的平台系统能够借助CombineProcess模块来过滤掉一些无用的数据,且把计算节点和存储节点尽可能配置在一起,从而极大地减少了节点间的网络通讯,进而提高了系统的整体时间性能.
5 结束语
针对传统文本挖掘系统作用于海量文本数据时时间性能较低的问题,论文把Hadoop云平台引入其中并加以改进,在此基础上提出了一个基于改进Hadoop云平台的海量文本数据挖掘系统.以人民网上***的10 000篇新闻材料作为实验数据集,分别进行了不同的3组对比实验,结果都显示改进后的平台系统在时间性能上有一定程度上的提高,这也表明了改进后的平台系统是有一定实用价值的.论文下一步的工作将是对平台系统改进前后的挖掘精度,以及应用于其他类型的海量数据,例如对海量植物叶片***像数据所涉及的关键技术做进一步研究.
参考文献:
[1] 中国互联网络信息中心(CNNIC).第33次中国互联网络发展状况统计报告[R].北京:中国互联网络信息中心, 2014.
[2] 王 珊,王会举,覃雄派,等. 架构大数据:挑战、现状与展望[J].计算机学报, 2011,34(10):1741-1752.
[3] SEGALL R S, ZHANG Q Y. Web mining technologies for customer and marketing surveys [J].Int J Syst Cyber, 2009,38(6):925-949.
[4] THEUER H, LASS S. Engineering data management systeme/product data management systeme [J]. Productivity Manag, 2010,15(4):34-38.
[5] MARSTON S, LI Z, BANDYOPADHYAY S, et al. Cloud computing―the business perspective[J].Decision Supp Syst, 2011,51(1):176-189.
[6] ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Commun ACM, 2010,53(4):50-58.
[7] DEAN J, GHEMAWAT S. MapReduce: a flexible data processing tool[J]. Commun ACM, 2010,53(1):72-77.
[8] AFRATI F N, ULLMAN J D. Optimizing multiway joins in a map-reduce environment[J]. IEEE Trans Knowled Data Engi, 2011,23(9):1282-1298.
[9] 覃雄派,王会举,杜小勇,等.大数据分析――RDBMS 与MapReduce 的竞争与共生[J].软件学报, 2012,23(1):32-45.
[10] 李建江,崔 健,王 聃. MapReduce并行编程模型研究综述[J].电子学报, 2011,39(11):2635-2642.