资源描述
One Column Text Page,One Column Text Page,One Column Text Page,One Column Text Page,One Column Text Page,其他开源云计算系统,提 纲,简介,Cassandra,Hive,VoltDB,Cassandra,Cassandra,一套高度可扩展、最终一致、分布式的结构化键值存储系统,结合了,Dynamo,的分布技术和,Google,的,BigTable,数据模型,更好满足了海量数据存储需求,解决了应用与关系数据库模型之间存在的非依赖关系,设计目标,高可用性,最终一致性,动态可伸缩,动态调整一致性,/,持久性与延时,节点管理要保持低开销,最小化管理开销,Cassandra,Cassandra,突出特点,3,2,1,模式灵活,真正的可扩展性,多数据中心识别,6,5,范围查询,列表数据结构,分布式写操作,4,Hive,Hive,-,起源于,Facebook,,是一个基于,Hadoop,的数据仓库工具,同时也是,Hadoop,的一个主要子项目,-,提供了一系列的工具,可以用来进行数据的提取、转换和加载(,ETL,),同时可以实现对,Hadoop,中大规模数据存储、查询和分析,Hive,已经增加和将要增加的一些新特性,(,1,)增加了用于收集分区和列的水平统计数值的命令,(,2,)支持在,Partition,级别去更改,Bucket,的数量,(,3,)在,Hive,中实现检索,(,4,)为,Hive,增加并发模型,(,5,)支持在两个或两个以上列中的差别选择,(,6,)利用,bloom,过滤器提高连接的效果,(,7,)建立,Hive,的授权结构和认证结构,(,8,)在,Hive,中使用位图检索,VoltDB,VoltDB,-Mike Stonebraker,(,Postgres,和,Ingres,的联合创始人)领导团队开发的下一代开源数据库管理系统,-,在,VoltDB,内部,采用并行单线程从而保证了事务一致性和高效率,优点,可达到几乎线性的扩展,满足,ACID,特性,提供相比传统数据库好很多的性能,SQL,作为数据库接口,限制,不支持动态修改,Schema,增加节点需要停止服务,不支持,xDBC,Adhoc,查询性能不优化,Enomaly ECP,Enomaly ECP,是一个开放源代码项目,提供了一个功能类似于,EC2,的云计算框架,Enomaly ECP,特性,(,1,)自动供应,(,2,)灵活性,(,3,)可扩展性,(,4,)整合现有基础设施,Enomaly ECP,两个版本,-,免费的社区版,-,提供全方位技术支持的服务提供商版,Nimbus,Nimbus,是一个开源的工具集,它可以把集群部署到,IaaS,云中。通过一整套的工具来提供,IaaS,形式的云计算解决方案,Nimbus,特点,(,1,)两套,Web,服务接口(,Amazon EC2 WSDL,和,WSRF,规范接口),(,2,)可以执行基于,Xen,管理程序,(,3,)可以使用如,PBS,或,SGE,调度器去调度虚拟机,(,4,)定义了一个可扩展架构,用户可以根据项目的需求进行定制,(,1,)标准客户端(,Reference Client,):以命令行的方式访问服务,全面支持,WSRF,前台的各种特性,(,2,),WSRF,:,Web Services Resource Framework,,即,Web,服务资源框架,(,3,),RM API,:也就是资源管理,(,4,)工作区(,Workspace,):实际上就是一个计算节点,Sector and Sphere,Sector and Sphere,-Sector,是部署在广域网上的分布式存储系统,-Sphere,是建立在,Sector,之上的计算服务,Sector,架构,Sphere,的基本数据处理模型,具体流程,(,1,)当主服务器接收到,Sphere,数据处理的客户端请求,主服务器向客户端发送一个可用的从节点列表,(,2,)客户端选择一些或者所有从节点,让,SPE,在其上运行,(,3,)客户端与,SPE,建立,UDT,连接,(,4,)流处理函数被发送给每个,SPE,,并储存在从节点上,(,5,),SPE,打开动态库并获得各种处理函数,Sector and Sphere,第一阶段,采用哈希函数扫描全部的数据流,把每个元素放置到相应的桶中,使用两个,Sphere,过程执行分布式排序的过程,第二个阶段,使用,SPE,对每个桶排序,abiquo,Abiquo,帮助用户在各种复杂环境下高效地构建公有、私有或混合云。这套方案主要包括三个部分:,abiCloud,、,abiNtense,和,abiData,-abiCloud,是,abiquo,可以创建管理资源并且可以按需扩展。该工具能够以快速、简单和可扩展的方式创建和管理大型、复杂的,IT,基础设施,-abiCloud,目前主要有三个版本:,社区版,(,Community Version,)、,企业版,(,Enterprise Version,)和,ISP,版,(,ISP Version,,,ISP,表示互联网服务提供商),abiquo,abiCloud,基本构架,abiCloud_WS,虚拟工厂,主要负责管理各种虚拟化技术,abiCloud_VMS,用来监控虚拟化设备的运行状态,MongoDB,MongoDB,由,10gen,公司支持的一项开源计划。,10gen,云平台可用于创建私有云,,,目标是构建一个基于分布式文件存储系统的数据库,MongoDB,主要特性,(,1,)易存储对象类型的数据,(,2,)高性能,特别适合“高容量、值较低”的数据类型,(,3,)支持动态查询,(,4,)支持复制和故障恢复,(,5,)自动处理碎片以支持云计算层次上的扩展性,(,6,)使用高效的二进制数据存储方式,可以存储包括视频在内的大型数据,MongoDB,MongoDB,的架构,主流存储方案对比,提 纲,简介,Cassandra,Hive,VoltDB,体系结构,(,1,),核心层,主要提供一些底层服务包括用户的信息服务、基于,DHT,的分区策略、复制策略及,Gossip,失败检测策略等,(,2,),中间层,主要融合了,BigTable,存储系统的架构技术,同样采用了,CommitLog,日志记录,,Memtable/SStable,存储模型,以及合并压缩,SStable,所使用的压缩技术,(,3,),顶层,主要提供,API,(应用,API,和工具,API,),监控工具,以及一些针对一致性问题的策略(读修复技术,),数据模型,Column,Name,:,“,ID”,Value,:,“,92938493”,Timestamp,:,2450016708,1,)列,-,最小的数据单元,它是一个三元组,包含名称(,Name,)、值(,Value,)和时间戳(,Timestamp,),2,)超级列,-,名称和值的元组,它并不包含列中的时间戳。列和超级列最大的不同,:,列的值是一个“,String”,,而超级列的值是许多列的,Map,3,)列族,-,包含了许多行的结构,列族三个元素,:,名称、类型和排序方式,-Standard,类型 包含许多列(而不是超级列),-Super,类型 包含一系列超级列,SuperColumn,Column1,Column2,Column3,ColumnN,数据模型,4,)行,-,以,key,为表示,一个,key,对应的数据可以分布在多个列族中,5,)键值空间,-,数据最外层,键值空间是,Cassandra,哈希表的第一维,是列族的容器,Row,ColumnFamily 1,ColumnFamily 2,ColumnFamily N,两级索引,第一级索引,用一个,Row-Key,和,CF-Name,可以定位一个列族,第二级索引,通过一个,Column-Name,可在一个列族中定位一个列,存储机制,优势,-,随机,IO,写变成顺序,IO,写,降低了大量的写操作对于存储系统所带来的压力,Bloom Filter,算法,-,通过多个哈希函数将,Key,映射到一个位图中来快速判断这个,Key,属于哪个,SSTable,数据存储目录三种类型文件,-SSTable,数据文件,-,映射文件,-,索引文件,存储机制,存储机制,:三个列族的,Key,值先记录在,Commitlog,中,,Commitlog,保存在独立磁盘上,-Memtable,满足一定条件后批量刷新到磁盘上,存储为,SSTable,-,利用,Bloom Filter,算法定位,Key,所属块,读,/,写删过程,Cassandra,写入过程,(,1,)客户端向,Cassandra,集群中单一随机节点发出写请求,(,2,)此节点将作为代理节点,并根据复制放置策略(,Replication Placement Strategy,)将写请求发送到,N,个不同节点,(,3,)这,N,个节点以“,RowMutation,”,消息的形式接收到此写请求,节点会执行以下两个操作:一是消息追加到,CommitLog,中以满足事务性目的;二是将数据写入到,Memtable,(,4,)代理节点必须等待这,N,个不同节点中的某些节点写响应的返回,才能将写操作成功的消息告诉客户端,读,/,写删过程,Cassandra,的写一致性水平(假设副本个数:,n,)分为三种情况,(,1,),ONE,:确保写入到至少一个节点中的,Commitlog,和,Memtable,(,2,),QUORUM,:确保至少写入到,n,/2+1,个节点上,(,3,),ALL,:确保写入到,n,个节点上,节点数据复制策略:,确保单点故障不会导致整个集群不可用,Cassandra,的写具有以下几个特性,(,1,)关键路径上无任何锁,(,2,)表现出类似于写入式缓存(,Write through cache,),快速高效,(,3,)顺序磁盘访问,(,4,)只有,Append,操作,没有额外的读开销,(,5,)即使出现节点故障时也都总是可写,(,6,)只保证基于列族的原子性,读,/,写删过程,2.Cassadra,读取过程,(,1,)客户端发送一个读请求到,Cassandra,集群中的单一随机节点(即存储代理节点,Storage Proxy,),(,2,)该节点根据复制放置策略将读请求发送到,N,个不同节点,(,3,)收到读请求的节点都要合并读取,SSTable,和,Memtable,(,4,)代理节点必须等待这,N,个不同节点中的某些节点读响应的返回,才能将读操作成功的消息告诉客户端,Cassadra,的读一致性水平(假设副本个数为,n,)分为以下三种情况,(,a,),ONE,:返回第一个响应的节点上面的数据,但不保证数据是最新的,通过读修复和一致性检查可保证后续的调用能够读取最新的数据,(,b,),QUORUM,:查询,n,个节点,返回至少,n,/2+1,个节点上的最新数据,(,c,),ALL,:查询,n,个节点,返回,n,个节点中的最新数据,一个节点失效将导致读失败,。,读,/,写删过程,3.Cassadra,删除过程,分布式数据库在删除方面存问题:,一个删除操作不可能一次性将数据立即删除掉,解决方案:,-,删除标记称为,墓碑,(,Tombstone,)、常量,GCGraceSeconds,Cassandra,真正删除数据的过程是:当客户端从,Cassandra,中读取数据的时候,节点在返回数据之前都会主动检查是否该数据被设置了删除标记,并且该删除标志的添加时长已经大于,GCGraceSeconds,,则要先删除该节点的数据再返回,提 纲,简介,Cassandra,Hive,VoltDB,整体构架,(,1,)用户界面(,UI,):用户通过用户界面提交查询及其他操作,(,2,)驱动器(,Driver,):接收用户的查询请求,(,3,)编译器(,Compiler,):用来解析
展开阅读全文