Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
IsTock 专栏 IsTock Column
云计算平台上的数据管理技术与应用1
汪卫
复旦大学 计算机科学技术学院,上海 201203
E-mail :[email protected]
摘 要 :本文首先对云计算的概念进行了介绍,随后对云计算的计算模式以及常用的云平台数据管理工具进行了介绍,接下来还对基于云平
台的数据挖掘技术进行了探讨,最后,对给出了三个基于云平台的实际应用,进一步对云平台上的数据管理技术应用及其优势展开讨论。
关键词 :云计算 ;数据管理 ;数据挖掘
1 云计算简介
云计算(Cloud Computing)是一种通过网络统一
组织和灵活调用各种 ICT 信息资源,实现大规模计算
的信息处理方式。云计算利用分布式计算和虚拟资源
管理等技术,通过网络将分散的 ICT 资源(包括计算
与存储、应用运行平台、软件等)集中起来形成共享
的资源池,并以动态按需和可度量的方式向用户提供
服务。用户可以使用各种形式的终端 ( 如 PC、平板电
脑、智能手机甚至智能电视等 ) 通过网络获取 ICT 资源
服务。
云计算的核心技术有 :编程模型、数据管理技术、
数据存储技术、虚拟化技术等,其中云计算平台的计
算和数据管理技术最为基础和关键。其优势包括 :
● 安全 :云计算提供了最可靠、最安全的数据存
储中心,用户不用再担心数据丢失、病毒入侵等麻烦 ;
● 方便 :它对用户端的设备要求最低,使用起来
很方便 ;
● 数据共享 :它可以轻松实现不同设备间的数据
与应用共享 ;
● 无限可能 :它为我们使用网络提供了几乎无限
多的可能。
2 云平台的计算模型
MapReduce 是当前云平台中最受欢迎的编程框
架,它支持大规模、密集型数据的分布式并行处理。
MapReduce 框架由 Google 公司提出,其核心思想是:
将大量复杂的计算过程高度抽象为两个函数 Map 和
Reduce,并将其以任务的形式发送给集群中的每个节
点,从而实现并行处理过程(图 1)。
Hadoop 是 MapReduce 编程模型的开源实现,目
前被包括 Yahoo、Amazon、Facebook 等 IT 企业用来
对大规模数据进行处理和分析。Hadoop 作为云平台的
计算模型,具有以下特点:高效性、可扩展性、高容错性,
并且对程序开发人员具有易于开发的特性
3 云平台数据管理
随 着 互 联 网 web2.0 网 站 的 兴 起, 传 统 的 关 系
数据库暴露了很多难以克服的问题,而非关系型的
数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL(Not Only SQL) 数据库适用于非结构化数据和
半结构化数据的存储,并可根据应用场合动态添加列,
其优点主要有 :
● 高性能,对数据库高并发读写 ;
● 海量存储,对海量数据的高效率存储和访问 ;
● 可扩展性,对数据库的高可扩展性和高可用性 ;
● 门槛低,运行在普通的商用 PC 服务器集群上 ;
● 灵活的数据模型,无需事先为要存储的数据建
立列,随时可以添加存储列。
NoSQL 数据库的分类如下表 1 所示 :
表 2 给出了常用的几类 NoSQL 数据库 :
4 云平台的数据挖掘技术
云计算为海量数据处理提供了一个稳定的、可扩
1 汪卫教授现任复旦大学计算机科学技术学院副院长,主要研究方向有数据挖掘、数据库、数据管理等。本文主要根据汪卫教授在 2012 年 7 月份举办的第五期证券信息技术论
坛 1(IsTock)上所做演讲整理而来。
62 63
IsTock 专栏IsTock Column
图 1 MapReduce 计算流程
类型 部分代表 特点
列存储 Hbase、Cassandra 按列存储数据 , 最大的特点是方便存储结构化和半结构化数据,方便做数据压缩
文档存储 MongoDB、CouchDB 存储的内容是文档型的,可对某些字段建立索引,实现关系数据库的某些功能
Key-value 存储 Berkeley DB、MemcacheDB 可以通过 key 快速查询到其 value。一般来说,存储不管 value 的格式,照单全收
图存储 Neo4J、FlockDB 图型关系的最佳存储
对象存储 db4o、Versant 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据
XML 数据库 Berkeley DB XML、BaseX 高效的存储 XML 数据,并支持 XML 的内部查询语法,比如 XQuery, Xpath
表 1 NoSQL 数据库分类
数据库 特点
CouchDB具有 DB 一致性、易于使用的优点。适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需
要提供数据版本支持的应用程序
MongoDB适用于需要动态查询支持 ; 需要使用索引而不是 map/reduce 功能 ; 需要对大数据库有性能要求 ; 需要使用 CouchDB
但因为数据改变太频繁而占满内存的应用程序
Membase 兼容 Memcache,同时兼具持久化,并支持集群。适用于需要低延迟数据访问,高并发支持以及高可用性的应用程序
Neo4j 基于关系的图形数据库,适用于图形一类数据
Cassandra 对大型表格和 Dynamo 支持得最好。适用于写操作多过读操作 ( 例如记录日志 )
Hbase 支持数十亿行 X 上百万列。适用于需要对大数据进行随机、实时访问的场合
表 2 常用的几类 NoSQL 数据库
62 63
IsTock 专栏 IsTock Column
展的、廉价的平台,例如可以考虑基于 Hadoop 平台
的数据挖掘算法。这类算法都面临数据量大、中间结
果大以及数据关联性大的问题。下表 3 对基于云平台
的聚类算法和 PageRank 算法进行了分析设计。
数据挖掘算法很多,这里只对聚类和 PangRank
进行了分析。值得注意的是,同样的算法在不同的应
用场景下是需要做适当的调整,进而达到最优的效果。
同样的,传统的数据挖掘算法应用到云平台上,也需
要结合应用背景做好适当调整。
5 案例分析
通过前面的分析不难发现,在需要进行大规模数
据处理的情况下,基于云平台的数据管理技术能解决
现有的很多难题。
5.1 面向物联网监测数据的管理平台
通过在需要监测的物体上部署传感器,实时监测、
收集数据信息,通过分析对被监测物的实时状态进行
揭示,其主要功能有 :
● 基于 HBase 的海量监测数据管理。其数据规模
较大,有几百个传感器所采集的历史数据 ;且每个传
感器有不同的采集频率 ;其时间跨度三年左右 ;总的
数据量约 1T 左右 ;
● 多备份数据,支持节点损坏造成的数据丢失 ;
● 存储压缩技术。采用 snappy 数据压缩技术,
其压缩速度为 250MB/s,其解压缩速度为 500MB/s ;
● 支持海量数据上的查询处理,包括各种查询函
数,如均值、最大值、最小值、相关系数等 ;
● 支持数据实时处理。采用基于内存的数据实时
处理技术,并支持多序列数据的相关性分析 ;
● 支持数据可视化。显示监测数据的时程曲线,
同时支持时程曲线的实时更新。
5.2 海量音频数据管理与检索系统
近些年来 , 随着网络和数字化技术的迅猛发展,信
息化程度的不断提高,网上多媒体数据量越来越多。
包括文本、图像、视频以及音频等多种形式。传统的
信息检索系统已经无法处理这些数量巨大且迅速增长
的媒体数据 , 人们迫切需要一种新的自动化的方法来处
理、分析和检索网上海量的多媒体数据。而海量音频
数据管理与检索正是为了满足人们对音频数据的查询
管理需求而来,其主要功能有 :
● 海量存储,保存逾 11 万的音频文件,一共达
20T 数据,有 14 个可用 Hadoop 节点 ;
● Top-K 查询,基于内容的查询,提供 10-30s 的
录音查询,达到秒级响应时间,同时还提供在线试听
功能。
如图 2 所示,整个系统包括表示层、查询层、索
引层以及数据层。用户通过表示层提交自己的查询请
求,并通过表示层提前特征,再到查询层进行查询请
求发送,通过索引层找寻合适的匹配,最后映射到数
据层的实际音频数据,并反馈用户即完成了整个查询
过程。
数据挖掘算法 应用背景 面临挑战 主要思路
K-Means 聚类算法用于海量音频数据处理
涉及超过 910 个数据对象
迭代次数多
大量的数据传输
基于采样的方法获得初步结果
传输中心点,以减少数据的传输量
PageRank海量网页和图数据处理
涉及超过 910 个数据对象
迭代次数多
每次迭代产生大量的中间结果
基于 Map/Reduce 计算模型探索基于数据分割的
数据处理方法
调整 Reduce 过程
表 3 基于云平台的数据挖掘算法
图 2 系统架构图
64 65
IsTock 专栏IsTock Column
5.3 基于云计算平台的基因拼接系统
近年基因序列数量剧增,每天可能产生 T 级的基
因数据,需要及时的进行处理,这也使得越来越多的
基于海量计算的技术被应用到了基因序列的研究工作
中去。针对基因序列的主要应用有 :1)序列匹配,将
一个序列匹配到样本上 ;2)序列拼接,拼接新的基因
序列 ;3)序列数据压缩,面向查询的序列压缩。
基因组序列拼接的主流方法将整条序列随机打断
成小片段,然后根据片段间重叠关系连接成长序列。由
于较多噪音存在,算法复杂度高,加之生物数据的海
量增长,序列拼接处理导致巨大的时空开销而无法完
成。而基于云计算平台的基因拼接系统,将整个数据
集通过 MapReduce 的方式分成若干个子集,再分别
高效地处理,完成透明动态的资源管理,大大扩展了
基因拼接计算能力。
6 总结
云数据管理是伴随着云计算发展而诞生的产物,随
着云计算越来越流行,预计会不断产生新的应用场景,
在云数据管理方面也会带来新的挑战。例如,可能会
需要预载的数据集数量会越来越大 ;从私有和公共环
境中获取有用信息引发的问题等等。同时,还需要考
虑如何从结构化、半结构化或非结构的异构数据中提
取出有用信息。虽然,目前还面临很多的技术难题亟
待解决,但也正因为这些问题的存在,使得云计算和
云数据管理技术越来越被人们重视,也可能被越来越
多地应用到各类应用场景中。
64 65