海量数据挖掘

2024-07-03

海量数据挖掘(精选12篇)

海量数据挖掘 篇1

云存储技术和大数据技术的发展使得海量数据的挖掘极具现实意义和指导意义。对于电子商务而言,海量数据挖掘可以了解不同消费者的消费习惯和消费原则。对这些大数据的云计算可以帮助商家更好的为消费者提供电子商务服务。对于各行各业,基于云计算海量数据的挖掘研究,需要正确的研究方法和挖掘手段的使用。深度挖掘有效提升了挖掘的质量和挖掘效率,对于海量数据的信息筛选作用效果明显。

1研究基于云计算海量数据挖掘的必要性

1.1有利于获得网络价值信息

网络数据之间存在一定的弱关联性,通过网络数据有价值信息的筛选和分析,有利于更好的发展互联网网络和服务水平。当然,由于互联网网络平台准入门槛较低,充斥着大量的网络垃圾信息。云计算技术是以大数据为依托,结合相关数学模型仿真,实现网络数据的高效管理。研究数据挖掘可以从海量信息中提取最有价值的网络数据和相关信息。

1.2有利于提升信息获取效果

互联网的快速普及,应用在各行各业,极大改变了不同行业的经营模式和运作效率。对于互联网用户而言,互联网数据蕴含了自身的网络行为和思想。一些行业为了不断提升网络平台的服务质量,做到“投其所好”,就要在第一时间识别出网络用户的基本用网习惯和用网需求。借助云计算数据挖掘,可以让不同行业在最短时间获取相关信息,提升获取效率。

1.3有利于推动大数据技术应用

大数据技术的应用需要云存储技术和大数据管理技术呈现匹配性的发展。大数据技术的核心任务之一,就是利用对海量网络信息的数据挖掘,理清数据之间的弱关联性,并不断提升网络数据的管理质量。云计算是一种以计算仿真为实现手段的信息处理形式,研究基于云计算的海量数据挖掘,有利于推动大数据技术应用,实现大数据技术的系统化发展。

2基于云计算海量数据挖掘研究的主要方法

2.1数据关联性挖掘法

在对云计算环境下的海量数据进行价值提取与细节分析时,关联性数据挖掘,可以将发散的网络数据集中化。弱关联挖掘法一般分为三个步骤:首先,确定挖掘数据的范围,收集所要处理的数据对象。明确关联性研究的属性。其次,海量数据的预处理。对数据进行噪声处理,保障挖掘数据的完整性和真实性,将预处理结果保存在挖掘数据库中。最后,塑造训练的数据挖掘。利用排列组合进行实体阈值分析。

2.2数据模糊性学习法

模糊性学习法是一种重要的数据挖掘方法,其挖掘原理就是假设云计算平台下存在一定数量的信息样本,对任意一个样本进行指标描述,计算所有样本的标准差,实现数据的高度压缩与挖掘价值信息操作。数据模糊性学习法应用在海量数据的挖掘的关键是模糊录属函数的筛选与确定,进而实现基于云计算的海量数据挖掘价值信息的模糊化实际操作。网络数据的结点信息需要在激活的条件下收集。

2.3 Apriori计算挖掘法

基于云计算海量数据挖掘方法的主要形式之一就是Apriori算法基础上的数据挖掘。与其他算法不同,Apriori算法最大的技术优势在于可以有效避免海量数据的复杂性和冗繁性带来的数据挖掘算法收敛性较差的缺陷。利用计算仿真模拟,在节省投入成本的前提下,大大提升了海量数据的挖掘速度。

3基于云计算的海量数据挖掘的基本原则

3.1准确性原则

云计算为数据挖掘提供了平台,对于海量数据的挖掘,特别是深度挖掘,挖掘结果的准确性直接影响数据的后期使用,对于互联网后期的优化意义重大。在基于云计算的海量数据挖掘,无论采取何种方法和算法,必须保障数据分析结果的准确性。一方面,验证挖掘方法选择的准确性和匹配性。另一方面,通过不同数据挖掘手段,对最后结果进行偏差分析,已找到影响准确性的关键因素。

3.2便捷性原则

云计算平台主要借助计算机进行计算仿真和挖掘程序运算。对于海量数据的挖掘分析需要具备的便捷性。一方面,基于云计算平台海量数据挖掘的流程要在实践分析过程中不断优化流程,提升挖掘的时间效率。另一方面,数据挖掘的方法和手段的选择要具有可控性强的特点。利用人力和财力的投入,可以实现海量数据的便捷挖掘,避免操作过难对数据挖掘任务的延迟。

3.3安全性原则

由于互联网信息需要包含个人的基本真实信息。对于云计算海量数据挖掘的安全性直接影响被挖掘海量数据在云计算平台的安全性。近几年来,一些基于信息泄露造成的人民财产损失总量较大,严重危害了每一个公民的网络使用安全。在对海量数据进行挖掘时,可以通过独立挖掘系统的应用,隔离原始数据,避免挖掘分析过程对信息安全性的威胁。同时,对余挖掘数据结果进行二级加密。

4结论

云计算作为大数据技术的内容之一,对于大数据的推广应用意义重大。通过价值信息的提取,有利于提升互联网服务水平。在进行海量数据挖掘时,需要理解并熟练掌握主要的方法技巧,以准确性、便捷性和安全性原则展开具体的数据挖掘工作。

参考文献

[1]刘增锁.云计算环境下海量数据中侵入检测挖掘模型研究[J].计算机仿真,2015(11).

[2]黄华.基于大云数据快速挖掘过程的研究与方针[J].计算机仿真,2016(06).

海量数据挖掘 篇2

在当先信息技术高速发展的情况下,不同类型的信息、数据爆发式的产生。同时,当今社会及经济发展中需要将从前工作、生活、经济活动所产生的非数字化信息及数据进行数字化处理以方便今后对此类数据进行查询、分拣、处理及备份。此数字化过程同样会产生大量的重要数据。这就需要有相应的系统对此大量的重要数据进行备份及保存。

此种数据的特点是信息重要,数据量大。为了保证数据的安全及完备性,需要对数据进行存储,并与相应的处理设备进行分离。这样做既保证了数据的安全又保证备份数据不会受到处理设备的干扰。尤其在911事件后,对数据安全及数据完整性要求较高的企业及机构意识到需要将相应的数据进行周期性的离线备份并将此离线备份数据与原始数据进行分离保管。所以就需要一种专门快速的可以对大量数据进行离线备份的设备来满足此种功能需要。

国内外许多公司及商业、教育机构都采用离线存储设备解决海量重要数据的备份问题。

1、美国华盛顿大学采用此类设备对自身运作产生的大量实验数据和图书数据进行备份和存储。

2、美国国家图书馆采用此类设备对图书馆中的数字化图书进行备份和保存,从而有效的保存了历史文化遗产。

3、招商银行驻纽约办事处使用此类设备对敏感的客户资料和数据进行有效的保管和存储,从而保证了业务准确和快速的运作与发展。

由国家档案局档案科研所、浙江省档案局和北京汉龙思琪数码科技有限公司共同研发的海量数据离线存储柜,基于24V弱电库房安全保存保管情况,采用高科技集成技术,将多个大容量硬盘进行级联管理,采用离线保存管理系统,对电子数据进行安全、节能、便捷、利用性高的大容量数据离线科学管理。

专业的离线存储系统不仅在档案行业有广泛的市场应用前景,同时在图书、医疗、民政、广播电视、文化、军事等行业也有广泛的应用。它可以作为重要数

据在线存储的安全备份和应急服务,为在线存储的灾后数据恢复等提供安全、稳妥的数据保障。

海量数据挖掘 篇3

他自上世纪50年代开始从事工程控制论与最优控制;70年代最早在国内开展模式识别,把统计模式识别与句法模式识别有机地结合起来,提出了新的语义、句法模式识别方法;80年代中期开展了人工神经网络在知识工程中应用的研究;90年代初,进行智能控制及手写汉字识别的工作;通过知识系统及人工智能的途径,跨入对开放的复杂系统及其方法论的研究。1980年—1982年在美国普渡大学(Purdue University)电机系作访问学者。

曾先后获国家科技进步一等奖一项(2001年)、何梁何利科学技术奖(2002年)、中科院自然科学一等奖一项(1992年)、航天工业总公司科技进步一等奖一项(1997年)、中科院科技进步二等奖两项(1986年、1990年),主编的《智能自动化丛书》(共6册)获1999年国家图书奖。到目前为止,已发表《智能系统的综合继承》等学术专著5部,学术论文180余篇。

国际金融危机以后,国际信息化发展呈现出新战略、新思路和新竞争。互联网已经日益深入到各国国家战略之中,成为实现下一代现代化的制高点。

2015年8月19日,国务院通过《关于促进大数据发展的行动纲要》。

针对当前互联网产业的发展趋势和热点问题,本刊记者采访了中国科学院自动化研究所戴汝为院士。戴汝为院士科研团队继承钱学森先生交叉研究学术思想,在国内最早研究“模式识别”,并在信息处理、数据挖掘领域取得重大成就,在刑侦信息技术应用范畴曾参与多项评审和鉴定,具有重要影响。戴院士的回答或许可以为我们在纷杂的发展现象中,厘清未来互联网产业走向的头绪:

“随着互联网的飞速发展,这些我们已经拥有了的数据原材料基础,就是丰沃的土壤和富饶的金矿。但这些积累,必须要通过更好地运用大数据技术进行精耕细作和挖掘提炼,才能真正释放出海量数据巨大的内涵价值,这里有非常可观的发展空间和持续潜力,这无疑将推动互联网产业发展和层次升级。就当前促进整体经济发展乃至从我国社会全方位创新升级来看,这种互联网产业的发展必将是重要的核心动力。”

记者:我们身处在一个信息化的时代,云计算、大数据、人工智能成为当下的热门议题,您对于它们怎样理解,您对于这些热点议题的发展趋势有怎样的展望?为什么现在国家和企业对此如此重视?

戴院士:几十年前,像气象、媒体等持续产生数据的行业只能通过抽取关键数据进行存储。进入信息化时代,云计算的出现使得人们可以将全部历史数据进行存储,使得大数据挖掘成为可能。通过智能算法挖掘数据间的关联性、预测态势,可以发现很多新的知识,为科学决策提供可靠依据。同时,对政府、企业、网络数据进行有效整合,能够大幅提高办公效率、增强企业竞争力,提高人们的幸福指数,从而加速社会的发展,增强国家的实力,强化在国际竞争中的态势。

记者:多年来您长期从事自动化控制、模式识别和人工智能、智能控制等的研究。作为“复杂系统”与控制科学家,您能为我们简要介绍一下复杂系统管理与控制与人工智能的联系和区别吗?

戴院士:人工智能技术自上世纪中叶快速发展,在众多领域得到应用,但是也遇到了瓶颈。钱学森先生早在上世纪80年代就提出了“思维科学”是智能计算机的理论基础。他带领我们实现了“系统学”的创建,发表了《一个科学新领域—开放的复杂巨系统及其方法论》一文,从而面向21世纪提出了具有划时代意义的“科学方法论”。这个阶段随着“思维科学”、“复杂性科学”研究的进展,从而孕育了“智能科学”、“脑科学”。我们通过“系统复杂性”的研究,利用当代计算机科学和信息技术手段,实现了“信息空间”的“综合集成研讨”。钱学森先生说过,这就是知识产生体系、人类涌现了新的“智慧”。这也是“复杂系统”的管理和控制的历程。

可以说,广义的人工智能是方法和手段,复杂系统管理与控制是实现的目标。通过现代人工智能科学及其发展中的技术可以有效处理复杂系统管理与控制问题。

记者:目前您研究的重点放在哪些方面,它们将对我们的生活产生何种影响?

戴院士:我是从模式识别、人工智能领域进入“复杂性科学”研究进而建立“智能科学”;为了实现自然科学和人文科学的“结合”,提出了“社会智能科学”。所以近年来主要从事有关自然环境变化与社会条件进展相结合的研究,例如:巨灾应对,形象思维虚拟场景与智能技术结合的“智慧涌现”等等。

我们的团队根据国家需要和合作部门、企业的方向安排研究课题。目前我们课题组主要从“系统学”的角度,应用智能科学相关技术进行智能环保、智能医疗、智能交通等领域的交叉研究。近期的工作涉及如民众极为关注的气象、健康、交通管理发展等社会问题。通过分析城市的气象数据、污染数据以及医院的医疗数据,城市交通及其关联因素数据,深度挖掘数据间关联关系,例如污染情况与呼吸道疾病的关系等等。通过对历史数据的分析,预测气象及污染趋势,从而进一步预测人们可能的发病情况,为政府专业部门提供污染治理、交通管理优化预案,为民众提供气象及出行指导、减少发病率,为医院提供参考信息,为提升整体医疗水平,为提高人民健康水准服务。

记者:能否介绍一下您的科研团队?

戴院士:在多年培养的研究生当中,我选拔了一支有想法、愿付出、有干劲儿的青年团队。在科研工作的实践中,引导这个团队的年轻成员逐渐认识到,做科研和处理所有问题一样,学习和掌握“科学方法论”是多么重要和有价值。现在他们能够踏下心来不浮躁,学习和继承钱学森先生的科学思想,发展两代科学家创立的“综合集成方法论”。在我们几十年积累的深厚的理论研究基础上,让年轻人打下扎实的功底,而且他们在实践中提高了自己的工程应用能力。在当前形势下,我们应该坚持创新驱动面向国家需要,沿着“产、学、研、用”的路径,在解决社会重大问题的同时,做到不断成长,这正是科学研究的继承和发展。

记者:8月19日,国务院通过《关于促进大数据发展的行动纲要》,明确要在2018年底前建成国家政府数据统一开放平台。同时我国也在大力提倡互联网+,鼓励这一领域的创业创新。您对于国家这一《纲要》和上述战略如何解读?您对于互联网产业的发展有哪些认识和建议?

戴院士:我国前期在社会经济增速方面取得显著成绩,为世界瞩目。同时在基础信息化方面也取得殷实成果。随着互联网的飞速发展,这些我们已经拥有了的数据原材料基础,就是丰沃的土壤和富饶的金矿。但这些积累,必须要通过更好地运用大数据技术进行精耕细作和挖掘提炼,才能真正释放出海量数据巨大的内涵价值,这里有非常可观的发展空间和持续潜力,这无疑将推动互联网产业发展和层次升级。就当前促进整体经济发展乃至从我国社会全方位创新升级来看,这种互联网产业的发展必将是重要的核心动力。

记者:9月8日,百度在百度世界大会上提出“大数据+人工智能,连接3600行”,强调将大数据与人工智能更紧密地接入到生活中来,从而更好地服务社会。您对于这一产业前景如何看待?你觉得将大数据和人工智能更深入地延伸到服务领域,对产业和社会将有怎样的影响和意义?

戴院士:我们当前仍然处于以“信息技术”为核心引领的工业革命的持续进程,乃至以“智能化”为标志的工业革命的浪潮中。如果说这轮变革之始带给人们的最突出感受是便捷和自由,那么后续进程的关键升级就是“智能化”。而智能化的标志性体现场景就是与“每个人”的互动,互动的过程“智慧”涌现,也就是实现着“智慧化”。所以体现互动的社会服务也正是“智能化”发展的重要载体。这种当代的“智能化”的社会服务有赖于大数据和不断更新的人工智能技术的植入。所以说基于大数据的人工智能深入延伸到社会服务领域,将如同我们已经经历的个人电脑、手机一样,将全面而深刻地改变每个社会和每个个体的生活,充分激发社会个体能量,激发社会整体活力,促进社会效率提升和万众创新、创业的繁荣。

记者:以百度、阿里等为代表的企业同时也在进行相关研究,开发应用的新技术诸如“百度大脑”、人脸识别、智能机器人等,并在不断致力于将这些研究推向应用。这与您所做的工作有哪些异曲同工之处?学界的研究与产业界的研究能否实现相关对接?如果实现的话,您希望产生哪些碰撞与火花?或者您的研究将为这些应用提供什么样的理论支撑?

戴院士:在国内,我最早从事模式识别方面的研究,提出了语义—句法模式识别方法,主要应用于文字识别领域,成为“汉王”的核心技术,成为我国早期研究与产业结合的一个典型案例。

我国科学界的传统,就是研究的最终目的是为了服务产业,研究与产业相结合。当然,一方面可以通过产业发展需求,来确定科研方向,另一方面作为研究人员应该能够实现研究的真正落地,造福人类。

2006年我出版了《社会智能科学》一书,书中提到,很多社会问题都是“开放的复杂巨系统”问题。而这种问题,应该是遵循钱学森先生提出的“综合集成”科学方法论去解决。实践证明,我们课题组正是应用“综合集成研讨体系”解决过经济决策、水利调度以及为国家军事决策提供过科学支持。

记者:随着互联网日益深入地介入人们的生活,信息安全问题也日益突出,这仅仅依靠个人和企业的自律是远远不够的,您在这方面有什么好的想法和建议?

戴院士:从宏观趋势层面来看,伴随着以互联网、移动互联网为代表的信息技术发展不断深入,我们在更加自由便捷地获取使用信息的同时,也必然会面对更加严重的信息安全问题。自由和风险,这是事物必然的两面性特征。

海量数据挖掘 篇4

关键词:数据挖掘,Hadoop体系,参数配置,map/reduce程序,海量数据

1 前言

海量数据有Internet Web数据、 视频图像、 企业数据、 公共服务管理数据、 医学图像数据。 数据挖掘实际是创新的技术, 最令人感兴趣的是在基因技术中发现DNA子序列。 海量数据挖掘不仅能发现所需的知识为决策服务, 数据分析还能发现模式和规律; 而且在海量数据存储在分布式系统的新阶段, 数据挖掘技术也升级为分布式数据挖掘。 云计算的Iaa S能解决海量数据挖掘的底层系统设施问题, 谷歌的GAE, 雅虎的YAP, IBM的 “蓝云”, 亚马逊的AWS, 微软的Azure都是云计算产品和服务系统。 Hadoop是开源项目Nutch的子项目, Apache基金会开发的分布式计算平台。 基于Hadoop云计算系统的复杂数据挖掘技术, 可实现不同领域的应用, 生物信息学、 商业数据分析、 汽车计算机辅助制造等, 获得了良好的商业价值。 中国移动基于云计算的数据挖掘服务系统WPDminer, 立足提供下一代互联网服务。 中国电信也参加了全球云计算测试平台Open Cirrus[1]。

分布式数据挖掘优化管理存储在不同地理位置的海量数据, 而且采用数据一次写入、 多次读取的方法。 Hadoop云计算有3 大主要系统: 文件系统HDFS、 分布式编程模式Map/Reduce和分布式数据库Hbase; 包括10 个组件, 分布在上百个网络结点或上千个PC机组成的集群中。 整合不同Hadoop系统的云计算资源, 则可实现第三代互联网技术[2]。

2 Hadoop体系的参数配置和运行系统设置

布署Hadoop集群系统有4 个步骤:计算机系统安装和网络构建, SSH认证, Hadoop参数配置, 部署和运行。

2.1 系统硬件、软件和网络参数配置

Hadoop实验系统包括主结点master和数据结点, 称为主从节点式系统。 建立集群, 实验系统有4 个节点, 一个命名节点Namenode和3 个数据节点datanode。 硬件系统配置:CPU:intel Pentium Dual-Core3.20GHZ, 内存4G, 硬盘400G。

2.1.1 局域网IP地址配置

如表1 所示。

2.1.2 /etc/hosts文件配置

集群master节点作为命名节点, /etc/hosts文件中包括所有数据节点的内容。 而Datanode节点的/etc/hosts文件配置包括此数据节点, 以Hadoop2 为例, 如表2 所示。

2.1.3 软件配置

操作系统: linux 6.0, Hadoop版本: Hadoop 0.20.0, SSH client/Server: Hadoop运行要求SSH的设置必须准确。 此外, 还包括JDK 1.6.0 和Eclipse 7.5 Linux。

2.1.4 文件系统设置

集群中所有节点的文件系统部署相同, 用户名使用Hadoop, 目录名/home/Hadoop/Hadoop-0.20.0。

2.2 SSH设置

首先, Namenode Hadoop通过SSH无密码公钥方式启动Hadoop1~Hadoop3 上的守护进程。 然后用Hadoop的命令生成密码对, 有一个私钥id_rsa和一个公钥id_rsa.pub。 公钥应复制到所有datanode结点, 保存在/home/Hadoop/.ssh/authorized_keys文件中; 而私钥保存在namenode结点上, 存储路径是/home/hadoop/.ssh/id_rsa。 注意文件的读写权限设置为:$>chmod 644 authorized_keys。 一次公钥认证过程是:

(1) Hadoop向Hadoop2 发起SSH连接。

(2) Hadoop2 生成一个随机数, 并且用公钥进行加密。

(3) Hadoop收到Hadoop2 加密的数后, 用私钥解密, 并发送到Hadoop2。

(4) Hadoop2 发现数相同, SSH认证完成, 建立SSH连接。

接着在集群所有机器上对sshd服务进行配置, 修改文件/etc/ssh/sshd_config文件。

最后进行测试。 Hadoop向Hadoop2 发起SSH连接, $>ssh hadoop2。

2.3 Hadoop配置文件设置

Hadoop体系配置文件有hadoop_env.sh、 hadoop -site.xml和masters、 slaves文件[2]。

修改hadoop-site.xml文件需应用Java编程。 设置主从结点时, 将masters文件的localhost改成Hadoop (namenode) , 修改slaves文件去除localhost而加入datanode, 每个机器一行, 如表3 所示。

2.4 Hadoop运行的参数配置

包括部署分布式系统和运行集群系统的主进程两个过程。在集群系统的所有节点上部署Hadoop体系。 并且在namenode上产生新的分布式文件系统, 用格式化的方法。

在namenode上启动主hadoop进程: $>bin /start-all.sh。

则namenode启动namenode、 secondary namenode和jobtracker 3 个进程, 而在datanode上启动datanode和tasktracker两个进程。 Jobtracker是唯一的, 而tasktracker是多个的。 每个节点都应运行主进程。

3 Hadoop体系的分布式数据挖掘技术

分布式数据挖掘技术有基于主体 (ontology) 、 网格和云计算3 种方法。 Hadoop体系应用分布式数据挖掘技术的关键是实现算法的并行。 分布式数据挖掘算法有SPRINT (数据分类) 、 LWLR、 SBC算法等。 分布式系统要求Hapood体系能实现松耦合, 在提供统一标准的条件下, 实现建模和调度, 模块动态组合和互操作, 保证系统一致性和扩展性。

数据挖掘系统包括数据源服务器、 数据预处理、 数据挖掘引擎、 模式评估、 知识表示、 图形界面和知识库, 系统组成见参考文献1。 数据预处理对不同数据结构进行数据格式转换, 数据分析是关键技术, 包括概念特征和类描述、 大量数据的频繁模式和多维关联、 具体数据的标号分类与预测、 数据类型标号的聚类分析。 模式评估采用置信度等统计方法。数据挖掘引擎和模式评估都用到知识库。

Hadoop体系运营并行数据挖掘算法, 实现了数据集划分、TCP/IP消息传递协议、 数据传递协议、 map/reduce、 写入时备份策略、 错误处理和安全等关键技术。 在Hadoop之上运行数据挖掘组件, 包括并行处理、 数据加载、 模式评估、 结构存储和并行ETL组件。 工作流和主服务响应功能则更靠近操作系统。 图形界面为用户提供管理和响应管控。 数据挖掘算法进行map/reduce编程后在Hadoop体系中应用, 技术架构和实现过程是[3]:

(1) 完成数据挖掘算法的map/reduce编程, 在client运行map/reduce program。

( 2) Client向namenode提交元数据操作, namenode的Jobtracker进程初始化。

(3) Client将fork () 一个datanode中的进程分割并复制数据源文件, 存储在HDFS中。

(4) Namenode指派map任务到datanode。 Map和reduce任务都是子模块的相应函数。

( 5) Datanode的Task Traker进程解析出 ( key, value) 对, map函数处理后保存中间结果。

(6) 本地写入到文件中。 Namenode分派reduce节点, 并传递中间结果的位置信息。

(7) Reduce结点远程读取中间结果, 数据挖掘算法的reduce函数进行归约操作。

(8) 当所有数据挖掘算法的map, reduce完成后, 保存模式产生的知识表示到输出文件。

(9) 数据挖掘应用程序又取得系统控制权, 获得输出文件。

4 结语

Hadoop体系在参数配置后, 应用Java编程环境编写map/reduce程序, 则能运行海量数据的数据挖掘技术, 可在大型数据库、 计算机辅助制造、 医学和生物信息学、 金融和商业系统的决策、 图像处理、 模式识别中应用。 基于Hadoop体系的数据挖掘技术在集群系统中获得了最广泛的应用。

参考文献

[1]杨宸铸.基于Hadoop的数据挖掘研究.重庆大学, 2010.

[2]张良将.基于Hadoop云平台的海量数字图像数据挖掘的研究.上海交通大学, 2013.

海量数据挖掘 篇5

提出了一种新的海量地震数据准无损压缩算法,并针对LWT的特点给出了率失真优化的码率分配方案.

作 者:邹江花 朱荣 秦前清 作者单位:邹江花(武汉大学,电子信息学院,湖北,武汉,430079)

朱荣(武汉大学,多媒体实验室,湖北,武汉,430079)

秦前清(武汉大学,测绘遥感信息国家重点实验室,湖北,武汉,430079)

百度:面对海量数据的绿巨人 篇6

百度新首页上线一年以来,已经累积用户1.2亿,增长速度达到400%。那么,面对如此巨大的数据处理量,百度是如何通过绿色高效数据中心在大数据时代应对节能环保的要求的呢?

M1云数据中心:PUE第一如何取得?

2013年4月,在云计算发展与政策论坛召开的第三次高端会议上,百度M1云数据中心以PUE(数据中心的能耗指标) 2012年平均PUE达1.37,近12个月平均PUE为1.36,最佳PUE达到1.18,取得了国内PUE第一的最佳成绩(PUE越接近1越好,业界的平均PUE为2.5)。该评估由工业和信息化部电信研究院联合国内的主流电信运营商、互联网服务提供商和设备制造商及有关科研院所共同发起,代表着国内数据中心评估工作的最高水平。那么,M1云数据中心的PUE值国内第一是如何取得的呢?

M1云数据中心位于朝阳区酒仙桥北路9号,原建筑为北京松下彩管厂区301号建筑,后由北京捷通公司改建而成。在向记者展示的幻灯片中,可以看到M1云数据中心的主体结构:M1数据中心总面积为6320平米,一层面积为5370平米,包括机房及动力、配电等辅助区域;二层面积为878平米,包括办公用房;地下一层水泵房面积为72平米。

百度云首席架构师林仕鼎说,百度云数据中心计算的主要技术领域涵盖了数据中心体系结构、存储、计算 、超大规模系统等。

M1数据中心由厂房改造而成,在改造过程中,采用外墙保温技术,最大限度减少室内外温度传导。在机房平面布局时,设置环形走廊,将机房区域设置在建筑环廊内区,最大程度减少冷量损失;外沿为走廊区域,充分利用自然条件,减少空调开启时间,实现节能运行。

在软件架构优化方面,百度M1数据中心,部署了百度自主开发的在线离线业务混布系统,以及自主研发的服务器流量调度系统,在大幅提高在线机器的利用率的同时,极大限度地降低业务为应对突发事件而预留的冗余服务器资源,大大提高了能效。

在硬件方面,服务器的能耗是数据中心能耗的主要部分。M1数据中心采用了绿色节能部件定制、固态硬盘(SSD)应用、电源效率优化、主板改造、去除冗余、与IDC环境结合的风扇优化策略等多个手段,使单节点降低能耗25%,整个数据中心的计算及处理能力大幅提升。此外,数据中心还率先使用了ARM采用精简指令集(RISC)的解决方案,使每台服务器的CPU功耗降低到原来的十分之一。

在针对另外一块主要的能耗——空调系统的改造中,M1数据中心采用高效的冷冻水空调系统,并结合一系列先进技术以提高制冷及空调系统能效。例如,采用水侧Freecooling系统设计,充分利用室外自然冷源,尽量减少冷水机组运行负荷和时间,大大降低了数据中心能耗。另外,M1数据中心项目中引入先进的气流优化设计手段,采用CFD (Computational Fluid Dynamics)辅助进行机房气流组织方案设计,优化机房设备布局、细部规格尺寸、参数设置和维护维修策略等。在市电供电架构方面,M1数据中心提出简化供电系统结构大胆构想,在国内首次大规模采用市电主供,冗余电源作备份的新型供电架构,UPS系统整体损耗降低近10%。

自行设计,打造绿色之路

目前,百度已经在多个领域展开了基于公共数据的搜索服务。2013年2月,国家药监局三大数据库向百度开放,包括具有18万余种国产和进口药品信息的药品数据库,6000余种非处方药(OTC)化学药品说明书范本及中药说明书范本的药品说明书范本数据库,以及经过认证的可向个人售药的网站的数据库信息。

2013年4月末,百度知道推出了知识搜索服务,针对相关领域的关键词检索提供满足用户需求的特型展示,目前已上线的有口碑搜索、医疗搜索、答案聚合及数据图谱等功能,并同时覆盖到PC端与无线端。

在百度已相继引入国家药监局、中国家电维修协会、中国航空协会、中国银行业协会、北京市卫生局等权威机构的核心数据后,2013年5月,全国组织机构代码管理中心又和百度公司达成战略合作,以便为社会提供安全、准确的搜索结果。网友在百度搜索“组织机构代码查询”可以进入专业核查工具,只要输入组织机构名称、代码、登记证号中的任意一项,就可以了解机构类型、地址、有效期、颁发单位等重要信息,迅速判断这家组织机构是否真实、可靠。

那么,这些海量的数据,在云时代的背景下,百度如何通过有效的组织管理以及在设计理念上来实现几十座数据中心的节能呢?在走访中记者逐渐了解到,百度除了采用一系列节能的方法和技术,比如优化电源结构、引入变频技术,优化服务器的气流式冷水机组及使用CFD软件等方式来实现服务器技术的优化外,更通过一系列定制化、高效的部件方面的自我的创新来建立中国最节能高效的云计算数据中心。

自建绿色高效数据中心

“数据中心是百度业务的载体,它支撑着海量数据存储、云平台和搜索社区等,所以百度更加关注建设云数据中心,用云的核心驱动力来支撑业务规模发展。”百度公司技术委员会理事长陈尚义介绍说,“百度的单体十万台服务器的数据中心,PUE每降低0.1,一年就可为百度节省上千万的成本,所以,打造自我的绿色高效数据中心,在大数据时代将能很好应对节能环保、低碳的要求。”

目前,面对海量的大数据,百度正在通过自建数据中心,开发了自己的大数据存储系统,并使用了多项新技术。目前,计划投资47.08亿元的百度云计算(阳泉)中心已于2012年8月奠基,该项目预计2015年完工。建成后的百度云计算(阳泉)中心数据存储量将超过4000PB,可存储的信息量相当于20多万个中国国家图书馆的藏书总量。2013年4月15日,成都市高新区与百度云签署协议,中国最大的云开发服务平台——“成都百度云开发者技术中心”正式入驻成都高新区移动互联网大厦。此外,南京、广州、天津的百度云数据中心也都在建设之中。

nlc202309011345

陈尚义介绍说,百度数据中心从设计之初就开始体现绿色节能的理念。在解决设备散热问题中,百度数据中心采用集中散热、集中供电、高效部件等方法来降低能耗;在解决服务器能耗问题中,采用SSD解决服务器的瓶颈,降低服务器数量等方式来节约服务器耗电量。此外,一些数据中心采取白天以商业业务为主、数据处理为辅,夜晚侧重数据处理为主的原则,来很好分配大数据量的工作时间,进而实现了节能高效。

除了这些技术,百度最让人叹服的还有数量众多的“看家本领”,更显示其“自制”的能力。

能力1:自制固态硬盘(SSD)。据估计,百度的数据中心存储了数百PB的数据,其日常的数据处理能力达到数十个PB。为了解决海量数据实时存储的巨大挑战,百度自行开发了SSD产品,其研发的SSD的性能比SATA SSD要好六倍,而且其成本只是它的10%。在南京的云计算数据中心也进行了大规模的行业内的固态硬盘(SSD)部署。

能力2:自行设计10Gb TOR交换机。百度自2011年开始研究和开发TOR交换机的设计,并于2012年推出第一代10Gb的TOR交换机。通过使用自行设计的硬件和软件,设计制造模块,以及DAC(直接连接电缆),百度的10Gb TOR的成本只相当于同样的1GB TOR商业交换机。目前百度的10Gb TOR交换机能承载超过5000台的服务器,部署在其云计算数据中心里。

能力3:定制机架服务器。百度正在与Facebook合作,促进和优化开源的机架服务器的探索,这也是中国自主设计机架服务器的开源项目。定制的机架式服务器解决了百度许多问题,如传统的主机托管数据中心空间和功率密度的限制,电缆的混乱和部署的效率低下,有助于提高智能化管理和资产精度。在南京的云计算数据中心,百度大规模部署了ARM服务器。据百度说,基于ARM的服务器使数据中心的总拥有成本(TCO)降低了25%,提高存储密度70%。百度已经获得开发基于ARM的服务器的10项专利。ARM服务器的应用,使南京的云计算数据中心能够降低服务器总体拥有成本的10%,业务高峰时运转效率提高近10倍。

如今,百度已经成为中国最具价值的品牌之一,英国《金融时报》将百度列为“中国十大世界级品牌”。目前百度已经面向开发者全面开放了包括云存储、大数据智能和云计算在内的核心云能力,为开发者提供强大的技术运营支持与推广变现保障。作为互联网搜索的入口,百度承载着数亿网民检索需求,满足海量计算的数据中心规模将日益庞大。百度从软件架构、IT设备、数据管理效率等多方面入手,致力于绿色IT建设,将对产业链上下游的参与起到良好的示范和带动作用。

海量数据挖掘 篇7

信息时代,数据(尤其是海量数据)已被各企业、各研究机构当成重大的知识来源、决策的重要依据[1],对于数据的急速增长,如何有效地解决数据挖掘过程中空间和时间的可伸缩性已经成为数据挖掘领域中迫切需要解决的难题[2]。从知识发现的过程中可以看到,数据挖掘不仅面临着数据库中的庞大数据问题[3],而且这些数据有可能是不整齐的、不完全的、随机的、有噪声的、复杂的数据结构且维数大[4]。传统的数据挖掘算法还限制于单机内存的容量[5],当一次性需要分析的数据不能全部进入内存时,算法的性能就会严重降低[6],甚至得不到预期的结果,使用基于粗糙集理论的算法策略将有效解决这个问题[7]。

本文针对传统数据挖掘算法在数据量级方面的局限性,提出了结合类分布链表,把数据挖掘算法推广到可以处理更高数据量级,最后采用并行计算的方法提高基于动态聚类的两步离散化算法适应大数据处理之后的执行效率。

1 改进的Rough Set知识约简算法

许多经典的Rough Set知识约简算法都可以通过引进CDL(类分布链表)改进,CDL可以反映某个条件属性组合对论域的分类情况。CDL分为不相容类分布链表(ICDL)和相容类分布链表(CCDL)两部分,CCDL根据链表中每个分类的样本数目又可分为单例相容类分布链表(SSCDL)和多例相容类分布链表(MSCDL)[7]。引进CDL后相对于原始的经典算法,改进后的算法将具有更好的可伸缩性,能够更好地处理海量数据集。以下通过引入CDL对包括离散化、属性约简和值约简的一组Rough Set知识约简算法进行改进。

1.1 改进的离散化算法

数据离散化是Rough Set知识获取方法中的重要组成部分。在此采用基于属性重要性的离散化算法,在原算法的基础上通过引入CDL,使得该算法能够处理海量数据。

算法1.1基于属性重要性的离散化算法

算法输入:一个完备的决策表信息系统DT

算法输出:离散化后的决策表信息系统DT

算法步骤如下:1

(1)循环遍历每一个连续的条件属性,并且通过生成ICDL({ai})计算属性ai的条件信息熵。

(2)根据条件信息熵降序排序,排列所有连续的条件属性。

(3)针对排序后的DT,循环遍历每一个连续的条件属性ai,生成ICDL(C{ai});设置Szone= null,其中Szone是属性ai的值域的一个子集。

(4)循环遍历区间(Sa,Sb)上的每一个断点。其中Sa和Sb是属性ai上两个连续的属性值;令Szone= Szone+ Sa。

(5)循环遍历DT中满足SVj(ai)= Sh的每个样本SVj,其中Sh∈Szone。

(6)循环遍历DT中满足SVk(ai)= Sb的每个样本SVk;如果样本SVj和SVk出现在ICDL({ai})中的同一个条件分类中而且它们之间存在符号“@”,则选择(Sa,Sb)的断点,并把Szone重新置为空。

1.2 改进的属性约简算法

使用基于信息熵的CEBARKNC算法。根据类分布链表求取条件信息熵的方法[8],通过某个条件属性组合的ICDL很容易求得决策属性相对于该条件属性组合的条件信息熵。因此可以通过ICDL改进CEBARKNC算法的可伸缩性,改进的算法与原算法在计算信息熵的过程不一样。

1.3 改进的值约简算法

在此改进启发式值约简算法,该算法在原算法的基础上加上CDL,使得该算法能够处理海量数据。原算法在执行第一步的时候按照CDL(a) 中的三部分更新决策表S。

(1)把SSCDL(a) 中的样本在属性a上的值标记为“?”;

(2)把MSCDL(a) 中的样本在属性a上的值标记为“*”;

(3)ICDL(a) 中的样本在属性a上的值不变。

由(3)可知ICDL(a) 中的样本不需要处理,而在处理SSCDL(a) 和MSCDL(a) 的样本时,不把生成实际的链表放在内存中处理而是直接在数据库中进行处理。具体的算法描述如下:

算法1.2 改进启发式值约简算法

输入:一个完备的离散的决策表信息系统DT

输出:规则集RT

假设样本标号为Index,决策属性为DA,条件属性集合C,则算法步骤如下:

(1)把RT初始化为DT。

(2)循环遍历每一个条件属性ai,把SSCDL(ai) 中的所有样本在ai上的属性值标记为“?”。

(3)把MSCDL(ai) 中的所有样本在ai上的属性值标记为“*”。此外剩下的样本都在ICDL(ai) 中,它们在ai上的属性值不需要改变。

(4)接下的操作步骤与原始的值约简算法相同。

2 基于动态聚类的两步离散化算法的并行化

基于动态聚类的两步离散化算法的第一步是利用动态聚类算法对决策表第一次进行离散化,然后利用断点重要性离散化算法进行再次离散化,从而得到最终的断点集。

算法2.1基于动态聚类的离散化算法

输入:决策表S=<U,R=C⋃D,V,f>

算法2.1 基于动态聚类的离散化算法输入:决策表S =< U,R = C ⋃ D,V,f >

输出:决策表S首次筛选后的断点集CUTfirst循环遍历S的每一个条件属性k,执行以下步骤:

(1)计算属性k每一断点的重要性,并按断点值从小到大排序,计算结果保存在数组Importantk[] 中,数组的索引m表示最重要的断点在数组中的位置,即:

令l = 0,h = m,n = |h -l + 1|。

(2)归一化处理,循环遍历数组Importantk[],使得:

(3)计算阈值e:

其中:l ≤ i ≤ h,xi∈ Importantk,

(4) 初始化聚类类别个数K = 1,循环控制变量v = e + 1;

(5)当v > e时,执行下面的循环:

①创建聚类中心表T:在l~h范围内从Importantk中随机选择K个初始聚类中心;

②设定循环变量e1=0;

③当e1≠ν时,执行以下循环:e1=ν;统计T中每种类别的数值与Importantk中每个h~l数值的距离,将上述统计数据同类到距离最小的类别中;调整聚类中心在T中各类别的数值;明确标准差Si在T中各类别的数值,令

④K=K+1。

(6)l = m + l,h =|Importantk|- 1,n = |h -l + 1|。执行步骤(3)~步骤(5)。

(7)从每一聚类类别中选取最重要的断点添加到CUTfirst中。

决策表经过上述的算法离散化之后,其效果仅相当于基于属性重要性离散化算法的局部离散化效果。下面通过把断点集CUTfirst输入到断点重要性算法中进行一次全局离散化便得到基于动态聚类的两步离散化算法。

算法2.2基于动态聚类的两步离散化算法

输入:决策表S=<U,R=C⋃D,V,f>

输出:决策表S的断点集CUTlast

(1)在未离散化的情况下,计算决策表S的正区域POSC(D)。

(2)调用算法2.1 得到CUTfirst。

(3)利用断点集CUTfirst对决策表S进行初步离散化,确定S1的正区域POS′C(D) 数值,令S1表示离散化后的决策表,当|POSC(D)| =|POS′C(D)| 不成立时:实例能被断点集CUTfirst所划分成的等价类的集合用L表示,对每个X ∈ L进行如下处理;若上述条件成立则转到步骤(5);

当∀x ∈ X|x ∈ POSC(D)⇒∀y|y ∈ X和x冲突,系统需要增加新的断点来区分X中的元素。 令CI1,CI2,…,CI|C|表示X中所有对象在属性集C上对应的断点区间。 在对象集X的范围内,计算在CI1,CI2,…,CI|C|区间候选断点集CUTfirst范围所有断点的重要性,依次添加候选断点到CUTfirst,直至∀x ∈ X|x ∈ POSC(D)⇒∀y|y ∈ X和x不冲突为止;当上述不冲突时,则不处理。

(4)令L表示实例能被断点集CUTlast划分成的等价类的集合,CUTlast= ∅,L = {U}。

(5)对每一个c∈ CUTfirst,计算WCUTfirst(C)。

(6) 选择WCUTfirst(C) 最大的断点cmax添加到CUTlast中,令:

(7)当每个X∈ L,同时当cmax把等价类X分成X1和X2,把等价类X1和X2加到L中,并从L中去掉X。

(8)当L中所有等价类中的实例都不具有一致的决策则转到步骤(3);否则,算法结束。对于算法2.2 而言,如果数据集中包含的候选断点比较多,则算法2.2 的运行时间仍然比较长,因此,结合并行计算思想对算法进行再次改进。

算法2.3基于动态聚类的两步并行离散化算法

输入:S=<U,R=C⋃D,V,f>

输出:决策表S的断点集CUTlast

(1)在未离散化的情况下,计算决策表S的正区域POSC(D) 。

(2)属性散播阶段:在主进程中令满足∀Si,Sj(i,j ∈[1,k]∧ i ≠ j),其中C表示条件属性全集,并且满足然后将S1分配给进程P1,S2分配给进程P2,…,Sk分配给进程Pk。

(3)并行处理阶段:设当前进程为Pi,Pi按照算法2.2的方法对Si中的每一条件属性的候选断点进行聚类。设聚类后的断点集为CUTfirsti,发送CUTfirsti到主进程。

(4)主进程接收各进程的聚类结果,令发送CUTfirst到从进程。

(5)断点补充修正阶段,同算法2.2。

(6)断点散播阶段:断点集CUTlast由各进程L表示的实例划分成的等价类的集合,CUTlast= ∅,L ={U}。令满足

进程P1处理断点集CUT1,P2处理CUT2,…,Pk处理CUTk。

(7)并行处理阶段:设当前进程为Pi,Pi计算CUTi中每个断点c的重要性选择断点发送到主进程P1。

(8)断点归约阶段:主进程接收各进程的计算结果。 令选择cmax满足发送cmax到P2,…,Pk。

(9)各进程更新CUTlast,CUTfirst令:

(10)针对每个X∈ L,当等价类X被cmax划分成X1和X2, 则把等价类X1和X2加到L中,同时从中去掉X。

(11)当L中所有等价类的实例都不具有相同的决策则转到步骤(2);否则,算法结束。

算法2.3 对算法2.2 进行了并行化处理,得到的离散化结果与算法2.2 是一致的,但算法2.3 带来的好处是提高了离散化算法的运行效率。

3 算法测试

3.1 改进的Rough Set知识约简算法测试

3.1.1 算法正确性测试

选择UCI数据库中的5 个数据集(见表1)来比较经过CDL改进的知识约简算法与原始经典Rough Set算法的正确性,双方都应用了相同的算法组合。比较的结果见表2,从结果中可得出:使用经过CDL改造后的知识约简算法不影响原始的经典Rough Set算法的正确率及识别率等性能。

%

3.1.2 可伸缩性测试

当训练集的大小从10 万条逐渐增加到100 万条时,测试集的记录数是训练集的30%。生成海量数据集,数据集有8 个条件属性和一个决策属性。图1 给出了正确率以及识别率的变化情况,图2 给出了知识获取所用的时间变化情况。在数据集的量级增大时,传统的Rough Set方法已经不能适用。

从图1 和图2 可以看出,新改进的算法可以提高原算法的可伸缩性,使其能够适应更大的数据集,而且性能很好,不失正确率及识别率。至于知识发现所花的时间比较长,与测试平台所用的SQL服务器效率有关,利用并行算法则可以提高处理的速度。

3.2 基于动态聚类的两步离散化算法的并行化处理算法测试

从UCI数据库中选取6 组数据集对算法2.2 进行测试。表3 是实验使用的数据集。表4,表5 展示了基于动态聚类的离散化算法、基于动态聚类的两步离散化算法、贪心算法、基于断点重要性的离散化算法等5 种算法的运算对比结果。其中,算法的运行时间用符号T表示,规则集的正确识别率用符号P表示。

使用基于动态聚类的离散化算法进行了动态聚类之后,如表6 的数据所示,SONA,PIMA,IRIS等每个数据集的候选断点数目都有了明显的降低。基于动态聚类的两步离散化算法的运行速度效率更快,针对正确识别率、属性重要性等方面,贪心算法、基于断点重要性的离散化算法与基于动态聚类的两步离散化算法保持一致。

4 结论

从目前常用的数据挖掘算法出发,采用类分布链表来改进传统的数据挖掘算法,使该算法能直接处理海量数据集,实现处理超大规模数据集的目标。系统采用并行计算的核心思想,基于动态聚类的并行离散化算法,提出分布确定类分布链表的方法,有效解决了系统内存限制的问题。同时,提高了基于动态聚类的两步离散化算法的运行效率。

摘要:针对传统数据挖掘算法在数据量级方面的局限性,提出在粗糙集理论的基础上,采用类分布链表结构改进传统的基于属性重要性的数据离散化算法、属性约简算法以及基于启发式的值约简算法。讨论了基于动态聚类的两步离散化算法,当算法适应大数据处理之后,采用并行计算的方法提高算法的执行效率。算法测试结果表明,改进算法能有效地处理大数据量,同时并行计算解决了大数据量处理带来的效率问题。

关键词:数据挖掘,粗糙集,大数据处理,并行计算

参考文献

[1]黄朝辉.基于变精度粗糙集的数据挖掘方法研究[J].赤峰学院学报(自然科学版),2014(8):3-4.

[2]要照华,闫宏印.基于粗糙集的海量数据挖掘[J].机械管理开发,2010,25(1):17-18.

[3]石凯.基于粗糙集理论的属性约简与决策树分类算法研究[D].大连:大连海事大学,2014:22-25.

[4]刘华元,袁琴琴,王保保.并行数据挖掘算法综述[J].电子科技,2006(1):65-68.

[5]陈贞,邢笑雪.粗糙集连续属性离散化的K均值方法[J].辽宁工程技术大学学报,2015(5):642-646.

[6]CORNELIS C,KRYSZKIEWICZ M,SLEZAK D,et al.Rough sets and current trends in soft computing[M].Berlin:Springer,2014:11-15.

[7]刘建.并行程序设计方法学[M].武汉:华中科技大学出版社,2000:11-13.

海量数据挖掘 篇8

数据挖掘能够发现隐含在大规模数据中的知识,提高信息服务的质量[2]。云计算为海量和复杂数据对象的数据挖掘提供了基础设施,为网络环境下面向大众的数据挖掘服务带来了机遇,同时也为数据挖掘研究提出了新的挑战性课题,越来越多的专家学者致力于基于云计算平台的数据挖掘研究。2008年底,在云计算平台Hadoop的基础上,中国科学院计算技术研究所开发出了基于云计算的并行数据挖掘系统PDMiner。本文将基于微软云平台进行数据挖掘研究,提出一个基于微软云平台的数据挖掘系统架构设计与实现。

1 基于云计算的海量数据挖掘

1.1 研究现状

云计算是一种基于互联网的、大众参与的计算模式,其计算资源(包括计算能力、存储能力、交互能力等)是动态、可伸缩、被虚拟化的,并以服务的方式提供[3]。目前已有较多的云计算平台推出,其中还不乏一些开源的云计算平台,如Abiqui公司推出的AbiCloud,Amazon EC2的开源实现Eucalyptus等等。基于这些开源平台构建云应用程序,就能够体验云计算的强大运算能力。

文献[4]提出分四层提供云计算数据挖掘服务:底层为数据挖掘算法的基本步骤,如数据清洗等;第二层为单独的数据挖掘服务,如关联规则、聚类等;第三层为分布式数据挖掘模式,例如并行分类、聚合式机器学习等;第四层为前三层元素构成的完整的数据挖掘应用。并在此设计基础上提出基于云计算的数据挖掘开放服务框架,开发了一系列的数据挖掘服务系统,例如Weka4WS、Knowledge Grid、Mobile Data Mining Services等,用户可以利用图形界面定义自己的数据挖掘工作流,然后在平台上执行。

2008年底中国科学院计算技术研究所开发出了基于云计算的并行数据挖掘系统PDMiner,可实现TB级海量数据的并行挖掘分析处理,该系统已成功应用于中国移动TB级实际数据的挖掘。PDMiner提供了一系列并行挖掘算法和ETL操作组件,开发的并行ETL算法绝大多数达到了线性加速比,同时具有很好的容错性。PDMiner的开放式架构可以使用户将算法组件经过简单配置方便地封装加载到系统中。此后又开发了面向Web基于云计算数据挖掘服务系统WPDMiner。此外,中科院深圳先进研究院还研制了一个基于云的分布式数据挖掘系统Alpha Miner,工业界的各大公司也提出了面向企业的大规模数据挖掘服务,如微策略、IBM、Oracle等公司都已开发了自己的基于云计算的数据挖掘服务平台。基于云计算平台成为数据挖掘发展的必然趋势。

1.2 关键技术

1)数据存储方式

在传统的应用设计中,我们一般采用关系型数据库来存储数据。但是在云计算环境下,尤其是对于互联网应用,存在两个问题:一个是云计算环境下的数据量都比较大,传统的关系型数据库面临数据扩展能力的挑战;另一个是许多应用对于数据存储的要求更多体现在非结构化数据或者是半结构化数据的存储上面。因此,大多数云计算平台都会提供针对非结构化和半结构化的数据存储方式。云计算的数据存储技术主要有谷歌的非开源的GFS[5](Google File System)和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed File System)。大部分IT厂商,包括雅虎、因特尔的“云”计划采用的都是HDFS的数据存储技术。

2)基于云平台的数据预处理方式

为了适合并行处理,在数据预处理过程中,云平台需提供海量数据的概念分层组织以及海量数据的并行加载方式;并实现高维维度约减和数据稀疏化技术,将数据预处理质量化、充分化,以提高数据管理和挖掘的效率。

3)适于云平台的海量数据挖掘并行算法

海量数据挖掘的关键问题是数据挖掘算法的并行化,而云计算采用Map Reduce等新型计算模型,这意味着现有的数据挖掘算法和并行化策略不能直接应用于云计算平台下进行海量数据挖掘,因此需要深入研究数据挖掘算法的并行化策略,继而实现高效的云计算并行海量数据挖掘算法。在此基础上,针对海量数据挖掘算法的特点对已有的云计算模型进行优化和扩充,使其更适用于海量数据挖掘。

2 微软云计算平台及其部署

2.1 微软云计算平台的组成

Windows Azure Platform[6]是微软公司推出的依托于微软数据中心的云计算平台,于2010年1月正式发布。如图1所示,微软云计算平台包含三个组件:Windows Azure、SQL Azure、Windows Azure Platform App Fabric,下面将分别简要介绍这三个组件的功能。

1)Windows Azure:运行在云中的操作系统,对于用户来说是虚拟且透明的,提供了Compute(计算),Storage(存储),以及Manage(管理)这三个主要功能及其底层服务Fabric,为运行于微软数据中心的应用程序提供了基于Windows的运行环境和数据存储服务。在Windows Azure中能运行多种类型的应用程序但它基本的目的是支持有大量并发访问用户的应用程序。为了做到这点,Windows Azure的计算服务允许一个Windows Azure应用程序可以有多个同时运行的实例,每个实例运行于一个虚拟机上。

2)SQL Azure:微软的云端数据库平台,也是微软云操作系统平台Windows Azure的一部分。它是在SQL Server技术基础上发展出来的云端关系型数据库服务,向云平台提供基于SQL Server数据库管理系统的关系数据服务。SQL Azure Database是基于运行于微软数据中心的SOL Server数据库管理系统之上的服务,它可以让云应用程序、内部部署应用程序存储关系型数据。SQL Azure和SQL Server一样都是用Transact-SQL语言进行数据库的创建和数据操作,它也支持索引、视图、存储过程、触发器等功能。程序可以通过ADO.NET、ODBC等数据访问技术访问SQL Azure Database。用户也可以使用SOL Server Management Studio这样的管理工具管理SOL Azure Database中的数据库。

3)Windows Azure platform App Fabric:提供交互服务,为云应用程序和内部部署应用程序之间的连接提供了基础设施[7],主要用于把基础应用连接到云中,提供访问控制、服务总线等服务。

2.2 微软云计算平台的部署

Microsoft Azure旨在提供整套的开发、运行、监控的云计算环境,它实际是由一个公共平台上的多种不同服务组成的,主要包括微软的云计算操作系统以及一组为开发人员提供的接口服务。Azure平台提供的服务主要有.NET Services、SQL Services、Live Services、Share Point Services等。开发人员可以用这些服务作为基本组件来构建自己的云应用程序,能够很容易地通过微软的数据中心创建、托管、管理、布署和扩展自己的Web和非Web应用。同时Azure平台支持多个Internet协议,主要包括HTTP、REST、SOAP和XML,从而为用户提供一个开放、标准以及能够互操作的环境。

Windows Azure的服务运行时编程接口可以通过两种方式使用[8],对于.NET托管代码,Windows Azure的SDK中包含一个名为Microsoft.Windows Azure.Service Runtime.dll,当用Visual Studio新生成云服务项目时它会被自动引用;而对于本地代码,可以通过使用SDK中的头文件和库文件就可以用C来调用这个编程接口了。在安装了VS2008或VS2010、SQL Server 2005/2008/2008 R2后,再安装一个扩展的工具包就可以进行云应用的开发了,这个扩展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.2,包含Windows Azure SDK和Visual Studio集成).

3 基于微软云计算平台的海量数据挖掘系统

3.1 系统架构

将海量数据挖掘系统搭建于微软云平台之上,为数据挖掘应用提供开放接口的支持,如图3所示。互联网上的用户终端既可以直接访问使用系统,也可以通过其他应用程序调用系统提供的开放接口间接使用系统提供的各种服务。无论是哪种情况,用户都不需要了解系统内部的实现也不需要担心系统的计算与存储能力的不足。用户只需要选择使用什么样的算法处理什么样的数据,也可以直接以任务的方式布置给系统去执行,由任务模块自主选择可以使用的算法,并将不同算法得到的挖掘结果通过可视化的输出展现给用户。

在本系统中,数据挖掘系统内部模块均通过开放接口和输入输出提供服务,其中开放接口开放的服务为所有外部可见服务,输入模块亦可直接调用开放接口实现外部可调用的服务。

3.2 功能框架设计

目标系统的功能框架设计如图4所示,自底向上每层透明的为其上层服务,顶层为用户界面与开放接口,通过用户界面或者调用开放接口,用户可以共享数据集、向系统布置任务、选择数据挖掘算法,将结果可视化输出,并可以方便的把它们集成到用户自己的应用中,实现平台的开放性。在任务层中,系统能够自动选择与任务关联的算法,使用这些算法进行数据挖掘,并将不同算法的结果进行比较后综合成任务输出。

算法层中包含四种服务,算法注册与注销服务,以插件方式管理各种算法模块。所有的数据挖掘服务将使用用户选择的统一数据源实现各种算法调用及其管理接口。数据清洗算法调用,针对有噪声数据的数据集在执行数据挖掘算法之前的预处理方法调用接口,清洗之后的数据将通过数据层存入云计算平台提供的存储空间为接下来的数据挖掘服务;数据挖掘算法调用,使用数据层中已经过预处理的数据集,选择既定的算法进行数据挖掘的统一调用接口;可视化输出服务将数据挖掘的结果以表格或图形等方式呈现。

4 结论

云计算提供虚拟化和高可用性的开放性计算服务平台,能够为数据挖掘提供一种新的服务机制,也给数据挖掘研究指明了一条重要的研究方向。越来越多的专家学者致力于基于云计算平台的数据挖掘系统研究,但大多是基于开源云计算平台Eucalyptus、Hadoop等的研究。微软的云计算平台虽然不是开源的,但是它能够很方便快捷的部署应用程序,同时遍布全球的微软大型数据中心确保云服务基础平台的规模,能够确保其强大的计算能力。本文提出了一种基于微软云计算平台的数据挖掘系统设计,系统部署到系统框架和功能框架设计作了详细的介绍。

参考文献

[1]张建勋,古志民,郑超.云计算研究进展综述[J].计算机应用研究,2007(2):429-433.

[2]王志春.基于云计算的海量数据挖掘[EB/OL].http://caai.cn/contents/420/4047.html.

[3]李德毅.云计算中的软件和软件开发[EB/OL].[2010-06-02].http://tech.sina.com.cn/it/2010-06-02/17354262863.shtml.

[4]Talia D,Trunfio P.How distributed data mining tasks can thrive as knowledge services[J].Communications of the ACM,2010,53(7):132-137.

[5]Ghemawat S,Gobioff H,Leung Shun-Tak.Google.The Google File System[C].New York,USA:SOSP’03,Bolton Landing,2003:19-22.

[6]Microsoft Azure[EB/OL].[2008-12-26].http://www.microsoft.com/azure/.

[7]罗达强.探析Windows Azure Platform微软云计算平台[EB/OL].[2010-11-29]http://articles.e-works.net.cn/pc_server/article82459.htm.

[8]方国伟.云计算环境下的应用架构设计[J].程序员,2011(3):109-112.

海量数据纹理映射技术研究 篇9

纹理映射技术是当前计算机图形学中的一个热点问题。然而由于纹理图像数据量大,特别是对于大规模的地形数据模型,如果要求具有较高的真实感,内存的需求量更是十分巨大。很多算法是采用一个单块的地形纹理来进行纹理映射,但是在越来越多的情况下纹理数据远远大于内存容量,需要将纹理分块处理后才能使用[1]。为了能在有限的资源下获得较好的实时绘制效果,研究人员从地形的几何多分辨率表示中得到启示提出多分辨率纹理映射技术[2,3,4]。该文在总结已有算法的基础上,提出了一种基于四叉树结构的海量数据纹理映射算法。有效地解决了大规模地形场景重建过程中的数据调度与海量数据的纹理映射问题。实验结果证明了该算法的有效性。

1 基于四叉树的多分辨率纹理分块

为了能有效地实现大数据量纹理的实时调度,需要将纹理进行分块管理。一般情况下,纹理图像分割得越细,纹理坐标的计算量就越小,绘制速度就越快,然而这样会大大增加内存中的数据调度次数。该文使用四叉树结构来表示大规模数字地形的多分辨率纹理数据,每个结点用相同尺寸的纹理图像表示,但不同分辨率结点的纹理精细程度不同。四叉树结构的根结点对应覆盖整个地形方形区域,它的4个子结点分别为根节点的四分之一地域,依次类推,每个子结点均按此方法产生4个子结点,直到原始纹理的最精细分辨率或满足纹理划分的要求为止。

多分辨率纹理映射的关键是如何选取与地形LOD相一致的纹理图像的分辨率。一般来说,分辨率的选择是与视点、地形块的位置大小和纹理的原始分辨率相关的。根据文献[4]中的误差计算方法可以类似计算纹理映射误差。与地形误差不同的是,纹理误差要考虑纹理结点的大小与图像的分辨率级别,因此,纹理映射的误差可表示成纹理的分辨率级别与距视点的距离的函数,可用下式表示:

ρ(k,d)=λdwl(1-2k), (1)

式中,k为纹理图像的分辨率级别;d为纹理分块距视点的距离;w为纹理分块的大小;l为地形数据点之间的行间距和列间距的几何平均值,即l=lxlyλ的计算方法和文献[4]中的一样。

2 纹理调度算法

在大规模的实时绘制时,需要不断地从硬盘到系统内存再到纹理内存调度纹理数据,如果用图形库的函数来实时建立多分辨率纹理则效率不高。该文的方法是预先建立纹理的各个层次细节,存储在数据文件中,当需要的时候对各个层次的纹理数据进行读取,然而使用多级纹理四叉树一次调入的数据量太多时,就会造成帧间停顿时间过长,为了降低停顿时间,必须减少纹理数据的调入量。

2.1 压缩纹理存储的实现

在实际应用中发现,在硬盘到系统内存的传输这一过程可以使用算法对纹理数据进行压缩,再将其存储在硬盘文件上。在使用时,用快速的解码把纹理数据解压到系统内存中。由于纹理图像相邻的纹理象素之间具有某种连贯性,利用这种连贯性对纹理金字塔进行压缩可以有效地减少数据冗余,使得纹理的表示更为紧凑。该文使用类似文献[5]中的图像金字塔,进行多层次的压缩和存储,来对纹理进行有效地压缩、调度及纹理反走样。由于纹理数据需要在绘制时实时进行解码,对解码的时间要求比较高,而矢量量化的方法仅需要建立索引表进行数据检索,效率非常高,因此可以采用矢量量化方法压缩误差图像。用矢量量化编码图像是一种有损的压缩技术,其关键是基于区域进行码本设计。这里使用LBG矢量量化算法对误差图像进行压缩编码[6]。

在执行图像矢量量化的过程中,由于图像各局部区域之间具有相似性,取一定大小的图像子区域进行矢量量化,这些图像子区域区使用相同的编码索引。基于图像子区域进行矢量量化,可以有效地对纹理图像进行压缩。采用矢量化的压缩方法,图像解码快速有效。对于层次多分辨率的纹理,当需要导入高一层分辨率的纹理数据,可以通过使用粗糙一层的纹理数据,以及编码索引号所指向的误差图像矢量量化后的颜色值就可以计算得出。在恢复每一层时,只需要从硬盘读取码本和编码索引号的信息,数据量小,读取非常快,这样既可以节省存储空间,又可以快速地恢复精细层纹理。

2.2 基于误差控制的多分辨率纹理结构

在实际绘制过程中,可以发现在一定误差的控制下,越高分辨率的纹理图像,在离视点越近的区域使用的较多,根据这一现象,在调入纹理数据时,只调入某一分辨率的在一定范围内的纹理数据即可满足实时绘制的需要。因此,首先要根据多分辨率纹理计算的结果确定不同分辨率纹理的范围,将在范围内的多分辨率纹理调入到内存的多分辨率结构中。该文在绘制时将每一层分辨率的纹理数据与预估的结果比较,将符合要求的纹理数据调入内存结构中,此时对于不同层次的纹理映射时会有2种情况:

① 需绘制的纹理层次低于调入的纹理节点层次,此种情况可直接使用上一级纹理进行纹理映射;

② 需绘制的纹理层次高于调入的纹理节点层次,这种情况要复杂一些,因为调入的纹理不能完全覆盖满足纹理分辨率要求的一个多边形,所以不能直接进行纹理映射,解决的方法是利用己调入的纹理为绘制节点实时生成纹理图像。

2.3 纹理内存释放算法

在进行大规模的纹理调用时,当纹理的缓冲空间达到一定限制时就需要释放一部分纹理,通常的办法是采用LRU算法。

假定当前的视点位置为v1,前一帧视点位置为v0,下一帧视点位置为v2。由此可以估算出在视点v1处的运动方向是(v1-v0)/‖v1-v0‖,运动的速度为‖v1-v0‖/t,其中t是从视点v0运动到视点v1所用的时间,所以在v1处视点的运动矢量为:

s=v1-v0v1-v0v1-v0t=v1-v0t=(v1-v0)f, (2)

式中,f表示在v1时刻的帧频率,于是下一视点v2的估计位置为:

v2=v1+st=v1+s/f=v1+(v1-v0)=2v1-v0。 (3)

这里假设在3个视点处有相同的帧频率,则在视点v2处的视锥体可以表示成由视点位置v2、视点方向d、视域张角w以及近截面fn和远截面ff的函数,即:

rv=rv(v2,d,w,fn,ff)。 (4)

通常情况下,在实时飞行仿真过程中后面3个变量是不变的,只有视点的位置与方向在随时间变化。在飞行仿真过程中,通常离视域范围越远的纹理被释放的可能性就越大,因此可以用纹理块与视域的距离平均距离作为影响内存释放的一个因子,可以用下式计算:

d¯=(qx-rx)2+(qx-rx)2, (5)

式中,(qx,qy),(rx,ry)分别为纹理分块与预测的下一视点处的视域体在平行于地面平面上投影的重心。

在进行纹理调度时,首先计算内存中纹理分块到视域体的平均距离,然后,对平均距离d¯超过一定阈值的内存纹理分块,使用改进的LUR算法[1],进行内存释放。改进的LUR策略的优先级由下式给出:

p=fl, (6)

式中,fq为纹理四叉树结点最近一次调用的帧序号;l务纹理四叉树结点的层数,p越小且距离视域平均距离越远的纹理结点的数据最先剔除。

3 实验结果分析

该文对地形纹理的实时绘制进行性能测试,使用的实验数据是深圳地区的DEM数据,地形表面数据的大小为7 169×4 096个数据点,数据点的实际分辨率为10 m,在硬盘中的文件总大小为112 MB。对于地形纹理数据,这里使用的是该地区经校正过的卫星图片,其大小为28 672×16 384,在硬盘中的文件大小约为1.34 GB。

图1是该算法实时帧速率与传统算法的实时帧速率比较的结果图。统计了一个给定飞行路线中500帧的数据。从图中可以看出,算法的帧速率要明显高于传统方法的结果,这是因为该算法通过矢量量化图像压缩算法及根据纹理误差范围的数据调度算法,大大减少了实时仿真过程中的系统外存与内存之间的数据调度量,同时基于视域的内存释放算法可以对纹理内存进行有效的管理,减少内存中纹理数据在磁盘和缓冲区之间反复调度,提高了算法实时仿真的效率。

4 结束语

为实现实时的大规模地形的纹理映射,该文提出了一种新的基于四叉树结构的海量数据纹理映射算法。算法对多分辨率纹理数据进行了基于金字塔结构的数据压缩存储,提出了一种有效的纹理映射误差的计算方法,提高了纹理映射的精度,并利用纹理映射误差,减少了实时调度过程中纹理数据的数据量,同时优化了内存释放算法,有效减少了纹理数据在磁盘和缓冲区之间的反复调度,从而解决了大规模地形场景重建过程中的数据调度与海量数据的纹理映射问题,在实际应用中取得了比较满意的效果。

参考文献

[1]陆雁青.海量地形数据实时绘制的技术研究[D].浙江大学博士学位论文,2003.7.

[2]BLOW J.Terrain rendering at high levels of detail[C]∥Proceedings of the Game Developers Conference 2000.California,2000:119-124.

[3]TANNER C,MIGAL C,JONES M.The clipmap:a virtualmipmap[C]∥Cohen M.ed.,Proceedings of SIGGRAPH1998.Orlando,florida.1998.New York:ACM Press,1998:415-422.

[4]黄超超,凌永顺,吕相银.地形纹理映射方法研究[J].计算机仿真,2005,22(1):209-212.

[5]LINDSTROM P,PASCUCCI V.Terrain simplificationsimplified:a general framework for view-dependent out-of-core visualization[J].IEEE Transactions on Visualization andComputer Graphics,2002,8(3):239-25.

海量数据存储模型的研究 篇10

随着全球信息技术的迅猛发展, 计算机网络技术越来越成熟, 网络上信息的规模正在以指数趋势上升。整个互联网每天都会产生海量的网页数据, 所以怎样高效地对海量网页数据进行存储已经成为人们越来越关注的问题。

传统的网页数据存储模型, 基于单机的或者集中式的存储方式已经不再适合于大规模网页数据存储[4]。最近几年, 云计算的概念越来越流行。云计算作为一种新的商业模式, 是由分布式处理, 并行处理和网格计算发展形成的。目前, 谷歌, 亚马逊, IBM, 微软, Sun等IT巨头都在寻求开发云计算的技术和产品[5]。例如, 谷歌一直 致力于推 动基于GFS[1]、MapReduce[2]和Bigtable[3]等的应用。

传统的集中式的存储方法由于每个存储节点的缺陷, 在存储和管理海量网页数据 ( TB级甚至是PB级) 的时候会出现很多的限制。比如用户会经常发现, 网页数据请求是很耗时的, 网页数据存储能力是有限的, 网页数据读取过程是低效率的。

为此, 本文设计并实现了一种基于云计算的存储模型, 该存储模型主要采用的技术有: Zookeeper[8]开源的同步协同系统确保文件数据写入的一致性、基于hadoop的HDFS文件系统以及基于HDFS文件系统的HBase等技术[8~10]确保实时、高效、稳定、可靠地读写和访问网页数据, 此外由于本文设计的存储模型是利用大量廉价的计算机组成的, 所以存储模型的成本较低。

2 相关的研究工作

文献[4]对海量视频网页数据的存储问题进行了研究, 提出了基于HDFS的HBase的存储框架, 也介绍了HDFS、hbase等技术的基本工作原理和工作特点; 文献[5]提出了一个基于开源的分布式网页数据库服务系统的云存储解决方案 , 它遵循一个阶层设计, 包括Web服务前端, 变换处理层和网页数据存储层; 文献[6]介绍了云计算和云存储的概念以及云存储的架构。然后, 分析了云网页数据存储技术 - GFS ( 谷歌文件系统) / HDFS ( Hadoop分布式文件系统) 应用于具体企业的例子; 文献[7]提出了一种高效的云存储模式, 用于异构云基础设施的存储; 文献[14]介绍了一个基于开源数据库的云存储系统, 阐述了相关技术和原理, 最终页实现了原型系统的架构; 文献[15]针对海量电网数据进行分析和设计出了基于hadoop的云存储模型架构; 文献[11]对Hadoop的基本原理和工作过程做了研究, 使用Hadoop分布式集群技术对分布式海量网页数据存储系统进行了相关的研究与设计, 作了一些有益的尝试和探索; 文献[12]也分析了海量网页数据存储问题, 怎样在电子商务环境下存储海量网页数据, 他们的想法是使用开源的基于Hadoop的分布式存储系统, 并在此基础上提出一种网页数据存储模型, 实现了电子商务海量网页数据的存储; 文献[13]研究并设计了海洋数据存储的一个管理系统, 使用了Hadoop技术, 同时也引入了HBase分布式网页数据库对海洋数据进行存储。

以上的这些研究者研究和分析了怎么存储海量网页数据, 并提出了一些适合各自领域的存储方法, 也对海量数据的计算问题进行了研究, 通过研究对比, 发现他们的研究中存在着一些不足:

( 1) 很多的研究者没有使用Hbase数据库, 读写效率低, 在扩展性、稳定性和可靠性方面都有所不足。

HBase是一个在HDFS文件系统之上运行的开源网页数据库, 它的优势就是能够支持海量网页数据实时高效地对其进行访问与存储, 此外它还是一个面向列的网页数据库, 具有很好的可扩展性、稳定性与可靠性。

( 2) 缺少Zookeeper同步协调工作系统, 不能保持存储节点中的数据写入的一致性。

Zookeeper是Google的Chubby一个开源的实现, 是高有效和可靠的协同工作系统, Zookeeper能够用来leader选举, 配置信息维护等, 在一个分布式的环境中, 需要一个Master实例或存储一些配置信息, 确保文件写入的一致性等。

( 3) 没有针对特定领域的海量数据进行存储的模型。

一般的存储模型都不是通用的, 设计应用到特定领域的模型才更加具有专业性和实用性。

为此, 本文在设计海量网页的云存储模型时, 引入基于HDFS的HBase数据库实现底层的存储架构, 达到高效实时有效的读写海量网页数据, 最后本文实现了一种基于云计算技术的海量网页数据存储模型。

3 存储模型的设计

海量网页数据有很多种形式, 有结构化的网页数据, 比如海量的文本数据, 还有非结构化的网页数据, 比如图片、视频、超媒体数据等等。由于HBase数据库存储的网页数据在默认的情况下都是字符串类型的, 所以对于海量结构化的文本数据, 我们就可以直接存储其对应的字符串, 以文件形式直接存储在HDFS中, 然后在Hbase中建立相应的元数据信息表和地址信息表, 这样做也是因为这样做更有利于表述内容信息和便于查询。

在此基础上, 针对不同类型的网页数据信息, 还可以对他们进行划分不同的次服务器进行存储, 例如建立专门的图片和视频次服务器、文本次服务器等。本文设计的存储模型如图1所示。

本文设计的存储模型最主要的组成部分是HDFS和HBase。

本文设计的针对海量网页数据的存储模型有一张网页数据表需要存储: 它所存储的内容包括crawldb: Nutch爬行的网页数据库, 用来存储爬虫需要爬行的URL地址、linkdb: URL超链接网页数据库, 它是用来存储每个URL超链接的链接地址, 包括初始的源地址和链接地址、segments: 被Nutch爬虫爬取的URL地址被称为一个独立的单元, 而一个segment就是一个独立的单元、indexs: 采用Lucene建立的索引、index: 建立的索引片段。

在如图2的存储模型的实现过程中, 关键的问题是如何对Nutch爬取到的网页数据进行存储、读写以及最后用户的查询。因为HDFS是擅长存储大型文件的, 所以对大量的小文件进行处理、索引和存储的效率是不高的。造成这一现象的原因是HDFS将文件系统全部存入Namenode结点的内存中, 因为每个集群中的Namenode结点只有一个, 它的内存容量是有限的, 所以如果存入的文件数目过多的话, HDFS很难及时的处理和存储。另一个问题是HDFS不允许修改文件的内容, 只能在文件中添加新的内容。

我们知道基于HDFS的HBase数据库是基于列的, 其中存储的网页数据表是由一个KEY/VALUE键值对和无限数量的列族组成的。这样的话, 在Nutch搜索引擎使用的过程中我们可以随时添加新的列, 这样就避免了修改表的结构。

综上所述, 如果我们将Nutch爬虫爬取回来的海量网页数据存入到HBase数据库中, 这样就能够有效地解决这个问题。

4 存储模型的实现

在实验室搭建了由三台相同配置的普通计算机服务器组成的Hadoop分布式集群, 经过多次实验比较了一台服务器节点组成的单机环境下运行和由三台服务器组成的三个节点hadoop分布式运行环境下写入网页数据和读取网页数据所用的时间关系。

图3显示了分别在单机运行的环境下和在三台服务器组成的hadoop集群环境下运行与不同线程个数的写入网页数据的时间关系。从图中可以看出, 集群中同时运行的线程越多, 写入网页数据所需要的时间明显低于单机情况下写入网页数据所需要的时间, 由此可见该存储模型具有高效的写入性。

图4显示了分别在单机和集群环境下同时运行的线程个数不同的情况下读取网页数据的时间关系。从图中可以看出, 随着集群中同时运行的线程数的增加, 集群的读取网页数据时间明显低于单机情况下读取网页数据的时间。由此可以发现本文设计的存储模型具有高效的读取性。

如图5所示, 读取网页数据所花的时间与集群中的节点数成反比, 计算机节点数增加, 读取网页数据的耗时减少, 由此验证了集群的扩展性比较好。

5 结束语与展望

本文设计的海量网页数据存储模型是建立在大量廉价的计算机之上的, 所以只要花很小的成本可以有效地存储海量的网页数据, 同时本文设计的存储模型有较强的扩展性, 通过增加机器节点, 可以在更大网页数据量的环境下运行。

海量数据挖掘 篇11

关键词:空间影像数据 分块技术 索引 Spatial组件 元数据

中图分类号:P23文献标识码:A文章编号:1674-098X(2012)04(a)-0210-01

1 前言

随着卫星遥感观测、地理信息系统、航空摄影等技术的快速发展,采集高分辨率的空间影像数据不是什么难事。但是影像数据的分辨率越高意味着数据量越大,比如采集相同地段的遥感影像数据时,分辨率越高,需要存储、管理的影象数据量相应越大,它们之间是非线性增长的量化关系。

任何空间影像数据管理系统都将涉及到影像数据的存储、访问、显示、管理等等问题,尤其对于显示模块来说,由于影像数据量巨大,加之计算机系统有限的内存等诸多瓶颈,使得计算机面临着内存供需和影像数据量增长之间的矛盾。因此为了能够实现海量影像数据高效管理,必须在考虑现有计算机软硬件配置的基础上,研发可行的影像数据处理解决方案。一种常规的做法是在软件算法层面探索可行的处理方法,比如中间图像处理技术就是其中的一种。这种中间图像实质是通过和原始图像和最终图像进行交换实现提升计算机图像显示速度的方式来实现的。

事实上,分块技术类似于中间图像技术,分片处理可以将海量的影像数据拆分成很多个数据量相对较小的数据块,通过对这些数据块编号并建立索引的方式,通过检索编号、索引的方式快速检索到各个数据块从而提高访问和管理海量空间影像数据的效率。本文正是在这个基础上探讨了基于Oracle提供的Spatial组件技术实现管理海量空间影像数据的管理。

2 影像数据管理

2.1 Spatial 组件

Oracle公司推出了一种空间数据库组Spatial,是一种用来实现存储、管理空间数据的组件技术。自Oracle9i后,Oracle开始对三维空间影像数据的处理提供了强有力的支持接口。Spatial组件内部包含了元数据表、空间数据字段(简称:SDO_GEOMETRY)和空间索引,为实现空间影像数据和Oracle数据库表的映射奠定基础,Oracle Spatial组件还开放了一系列空间影像数据查询、分析的API接口,这些接口使得用户具备开发三维影像管理系统的能力,比如GIS地理信息系统。Spatial组件的空间数据字段SD_GEOMETRY可以用来存储空间数据,而元数据表则管理包含SDO_GEOMETRY字段的空间数据表;如果有必要,Oracle完全可以采用索引技术(R树索引,四叉树索引)来提高检索速度。Oracle Spatial组件主要可以解决两类问题:一类是满足需要提高Oracle数据库数据检索查询速度的客户;另一种需求是为了提供高效地存储、访问、管理海量空间影像数据库数据的用户。

2.2 空间影像数据库建模

在Oracle数据库中,数据以记录(records)的方式的存储,一条记录对应一个对象实例,比如一幅影像。记录包括基本元素影像数据,当然还有其它的元素:坐标标尺、宽、高。假设我们直接如果将影像数据文件全部存到插数据库表中,这个操作是很简单的,可是传输效率很低,同时很难发挥Oracle提供的多线程并发访问能力。考虑到这些因素,本文采用按照一定的规则对影像进行分块,同时话可以建立数据快的索引,从而为实现并发访问、管理海量影像数据奠定了基础。

2.2.1 数据分块

计算机系统读取图象数据是顺序行的读取。一般情况下,计算机会在顺序读取图像数据并与所需检索的数据进行比较,如果找到所需的数据就停止或到了文件末尾没有找到。可以考虑另外的方法,比如我们编写程序算法,将影像数据文件按照一定的拆分比例分块,程序读取一定长度的数据并存储到缓冲区,以下我们简称中间图像,这时中间图像直接送入处理系统,处理系统将处理完成的信息送到显示系统显示。然后程序继续读取数据,当再一次到达设定长度的一段数据时,再存放到刚才的文件里,这样中间图像里面包含很多数据块,如此反复,就可以按照预定的比例将图象分块了。后面,我们将为这些数据库编号,方便检索。

2.2.2 数据分块

通常分块是有原则的,考虑到计算机的性能问题,比如磁盘读写速度和网络传输延迟,分块过小或过大都会增加数据管理操作(磁盘读写、内存拷贝、网络传输)的时间。其次是对于多分辨率的层次模型, 不规范的分块方式不利于建立影像数据金字塔和索引,一般建议块尺寸取128*128或256*256像素。

2.2.3 影像空间数据文件索引的建立与检索

空间影像数据的数据量日益增长,为了提高空间影像管理系统的性能和速度,通常将整幅图像划分为较小的数据块,每个块在整个图像中有位置标示,将每个小块的数据和位置标识存储起来,这样就建立了数据块的空间索引数据库了,方便快速定位图像数据。

2.3 数据库建模

2.3.1 影像数据建模

为了能使用Oracle数据库存储和管理空间影像数据,需要

用到Spatial组件内部的元数据表,主要用来实现空间影像数据到数据库表的映射。空间影像数据包括图象属性信息描述信息(图象的大小、色彩值)以及图元灰度值(图象数据)。通过对空间影像数据进行数据库建模分析,了解到影像数据主要包括以下元素:影像标识,通常是唯一的,主要用来标识引用影像数据对象;影像类型标识,包含IMG、DEM两种;影像编码,标识影像数据信息;影像数据包括某分辨率下的像素的行数和列数。

2.3.2 数据分块建模

通过分析我们知道影像数据块主要包括以下元素:影像块的数量,表示所分块的数目;影像块标记,用来区分影像块;影像块所在影像的行号;影像块所在影像的列号;影像块的数据。Spatial组件提供了将空间影像数據映射到几何图形元的能力,我们称之为元数据,这种与影像数据相关的几何图形元包括维数、边界等。

2.4 影像空间数据的访问和管理

一方面,通过使用数据分块的策略并结合Oracle数据库Spatial组件现有的内置的元数据库表对影像空间数据和影像空间数据块进行数据库建模,这样可以在Oracle数据库中存储空间影像数据;另一方面,通过使用对影像空间数据块建立索引的方式大大提高Oracle数据库管理影像空间数据的效率。

3 结语

通过上文的论述,证明了分块技术和索引技术可以提高Oracle数据库存储、管理影像空间数据的效率,同时也进一步发掘了Oracle对于海量空间影像数据管理的能力。

参考文献

[1] 钱慎一,张素智.Oracle 11g从入门到精通.中国水利水电出版社.

[2] 刘南,刘仁义.地理信息系统.高等教育出版社.

[3] 汤国安.ARCGIS地理信息系统空间分析实验教程.科学出版社.

[4] 邬伦,刘瑜,张晶,等.地理信息系统-原理、方法和应用[M].北京:科学出版社,2001.

研究称钻石可能存储海量数据 篇12

“我们率先发现可以把钻石作为超密存储的平台。”该研究的主要作者、纽约城市学院物理学家希德哈斯·多姆卡尔 (Siddharth Dhomkar) 说道。

有一部分钻石的晶体结构中缺失了一些碳原子, 从而构成了一些空穴。由于空穴周围聚集了一些氮原子, 因此这种缺陷被称作氮空穴色心 (nitrogen vacancy centers) 。研究人员用这样的钻石进行了一系列实验。

这些空穴中通常储存着电子, 因此使钻石带上了负电荷。不过, 研究人员可以通过向钻石发送激光, 将其转化为中性。在吸收了激光之后, 空穴的特性便会发生改变:它们在光线照射下不会再闪烁, 而是会始终保持黯淡的色泽。这一变化是可逆的, 持续时间很长, 并且弱光照射不会对其造成干扰。

这一研究发现说明, 钻石可以以负电荷和中性电荷的形式存储数据, 然后由激光完成读取、写入、抹除和重新写入等任务。

多姆卡尔指出, 每字节数据在钻石上仅需占据几纳米的空间, 比现有的任何数据存储设备都小得多, 因此有助于我们研发超密计算机存储技术。

不过, 研究人员目前还无法从如此微小的结构中读取或写入数据。但他们确实证明了自己可以解码3D形式的数据 (由2D图像堆叠而成) 。

“如果引入第三维度, 数据存储能力将大大提高。”多姆卡尔指出。利用研究人员所研发的3D数据存储技术, 我们或许能创造出一种新型数据存储光盘, 存储空间可达普通DVD光盘的100倍。

上一篇:管道巡检下一篇:资产证券化实施风险