Bigtable test buy具体是怎样的一个东西

HBase与BigTable的比较_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
HBase与BigTable的比较
&&开源HBASE与google bigtable的功能比较
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢数据库NoSQL之Bigtable
  Bigtable的主要特点是其高度的可扩展性,可以在上千台服务器上存储上PB的数据。其它特点包括应用范围广,高性能,高可用性。谷歌内部很多项目都在使用Bigtable存储数据。
  Bigtable使用了很多的建造方式,但又有其自己的不同之处。
  Bigtable使用map数据结构来检索数据。key包含了三条信息:行(row),列(column),时间(timestamp)。value则是一列字节(an uninterpreted array of bytes)。一条记录可以表示成:(row:string, column:string, time:int64) && string
  我们举一个例子来帮助我们理解下文的详细分析。比如说我们要存储网页信息,那么URL是row key,每一行会有很多列(column),其中几列用来记录网页内容,其它几列用来记录带有该网页的超级链接的网页地址。网页内容在不同时间又不同,所以在每一列中又会出现时间(timestamps)不同的好几个网页版本。
  row key的类型是字符串(string),具有以下特点:
1. 数据读写的最小单位是一行,意思是说在某一行上的所有数据处理要么全部完成,要么全部失败,
2. 列的排序方式遵循字典排序,
3. 所有的列被分成几部分,每一部分叫做一个&片&。分布式中每一个节点装载了一个片的数据。这样做的好处是用户可以将数据进行适当的归类存储,使得后续的数据分析进行得更加高效。
  很多数据类型相同的列被分配到了不同的集合,这些集合组成了列群(column family)。但创建数据的时候,实际上是先制定列群,然后才能使用每一个群集合里头的column key来引导存储数据。column key的格式是:family:qualifier。
  每一条数据在不同时间存在不同版本,这些不同的版本通过时间来区分存储。时间是用一个64比特的整数来表示。最新的数据版本会被排在最前面以保证新的数据能更快被读取。用户可以限定版本数量,或者限定时间来控制每一条数据应该保留多久以前的数据。
  Bigtable API可以用来创建,搜索,修改,删除数据。
Bigtable构造
  Bigtable使用谷歌文件系统(GFS)来存储日志和数据文件,同时可以在一个非专用集群上与其他程序共同运行。至于map的具体结构则使用了谷歌的SSTable。SSTable实际上是一个专门为Bigtable设计的一个map,并且这个map还配上了一个类似于B-树的一个检索结构以便于数据抽取。
  Bigtable还用了一个叫做Chubby的服务来提供分布式系统中的数据锁(distributed lock)。Chubby在里面的用途很广,比如存储数据概要(schema),控制访问。Bigtable的正常运行依赖于Chubby。
  Bigtable由三部分组成:语料库(library),一个调度服务器(master server),许多数据运算服务器(tablet server)。运算服务器数量是可变的。和大多数构造类似的分布式系统一样,用户是直接和运算服务器进行数据传输的,不会经过调度服务器。
数据片位置信息
  数据片(tablet)的位置信息是通过一个树状结构来存储的。在这个结构中,首先存在一个根节点(root tablet),这个节点里存放了一个记录所有数据位置的元数据表(metadata table),元数据表里的每一个元数据片(metadata tablet)记录了一个组的数据片位置。
数据片的存放
  由于各种各样的原因(比如某一节点从集群中移除),数据片需要从一个节点转移到另一个节点,这就是调度服务器的工作了,调度服务器主要是用来分配跟移动整个集群中的数据片,使得整个集群在任何时候都能正常运行。君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
_侯凯_Bigtable:一个存储结构化数据的分布式系统
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口bigtable总结
基于GFS的一个数据库引擎
一.bigtable理解
&本质上说,Bigtable是一个键值(key-value)映射。按作者的说法,Bigtable是一个稀疏的,分布式的,持久化的,多维的排序&映射。
A Bigtable is a sparse, distributed, persistent multidimensional
sorted map.
The map is
indexed by a row key, column key, each value in
the map is an uninterpreted array of bytes.
好文:/wiki/index.php?title=Understanding_Hbase_and_BigTable
映射:类似MAP,JSOH的一种映射。
&&持久化:就是持久化
&&分布式:因为它的底层存储基于GFS,所以是分布式。
有序:在hbase和bigtable中,索引都是严格字母排序的。相似的KEY在空间上是相近的。对于域名是采用倒排,比如
-&&com.jimbojw.www,这样可以保证相似域名是在空间上相近。
多维:一个行有多个列族(Column
Families),列族不可修改,但是列族里面的列数量可以随意扩展。请求数据的时候要带着行key和列族key。&
each row may have any number of different columns, there's no
built-in way to query for a list of all columns in all rows. To
get that information, you'd have to do a full table scan.
You&can&however
query for a list of all column families since these are immutable
(more-or-less).
&时间戳key。当不提供时间戳返回最新的,否则返回小于等于时间戳的数据。
稀疏:一个给定的行可以在每列族中的任何数量的列,或根本没有。另一种类型的稀疏性是基于行的间隙,这仅仅意味着有可能键之间的间隙。
二.bigtable架构
Bigtable依赖于google的几项技术。用GFS来存储日志和数据文件;按SSTable文件格式存储数据;用Chubby管理元数据。支持最终一致性,NOSQL。
Bigtable集群包括三个主要部分:一个供客户端使用的库,一个主服务器(master
server),许多片服务器(tablet
server)。
片服务器并不真实存储数据,而相当于一个连接Bigtable和GFS的代理,客户端的一些数据操作都通过片服务器代理间接访问GFS。每个片服务器负责一定量的片,处理对其片的读写请求,以及片的分裂或合并。片服务器可以根据负载随时添加和删除。
主服务器负责将片分配给片服务器,监控片服务器的添加和删除,平衡片服务器的负载,处理表和列族的创建等。注意,主服务器不存储任何片,不提供任何数据服务,也不提供片的定位信息。
客户端需要读写数据时,直接与片服务器联系。因为客户端并不需要从主服务器获取片的位置信息,所以大多数客户端从来不需要访问主服务器,主服务器的负载一般很轻。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。中国领先的IT技术网站
51CTO旗下网站
详解BigTable(1)
《自己动手写网络爬虫》第2章分布式爬虫,本章介绍分布式爬虫的基本原理以及开源分布式爬虫Nutch的实现。主要内容包括当前比较流行的开源分布式架构:Map/Reduce+BigTable+GFS以及负载平衡的ConsistentsHash算法。最后,分析开源分布式爬虫架构Nutch的实现。本节为大家介绍BigTable。
作者:罗刚/王振东来源:清华大学出版社| 12:57
2.4& Google网页存储秘诀--BigTable
在前面的章节里,提到过分布式系统通常都采用key/value的形式存储数据。比如爬虫抓取页面后,页面的存储就是采用key/value形式。针对这一特点,Google在GFS文件系统的基础上,设计了一种名为BigTable的key/value型分布式数据库系统。应用程序通常都不会直接操作GFS文件系统,而直接操作它的上一级存储结构--BigTable。这正如一般文件系统和关系数据库的道理一样。这一节,我们将详细讲述BigTable的相关知识。
2.4.1& 详解BigTable(1)
Bigtable(下文中简称BT)是用来存储大规模结构化数据的,它最多可以存储250个字节,分布在几千个普通的服务器上。Google的很多项目都使用BT存储数据,包括网页查询、Google 地图和Google金融。这些应用对BT的要求各不相同:数据大小(从URL到网页到卫星图像)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的项目需求,BT都提供了灵活高效的服务。
设计BT的目标是建立一个可以广泛应用的、高度扩缩的、高可靠性和高可用性的分布式数据库系统。现在,Google至少有60多个产品和应用都采用BT作为存储结构。下面我们从几个方面介绍BT。
1. BT与关系数据库
BT在很多地方和关系数据库类似:它采用了许多关系数据库的实现策略。但和它们不同的是,BT采用了不同的用户接口。BT不支持完全的关系数据模型,而是为客户提供了简单的数据模型,让客户来动态控制数据的分布和格式(就是只存储字符串,格式由客户来解释),这样能大幅度地提高访问速度。数据的下标是行和列的名字,数据本身可以是任意字符串。BT的数据是字符串,没有具体的类型。客户会把各种结构化或者半结构化的数据(比如说日期串)序列化成字符串。最后,可以使用配置文件来控制数据是放在内存里还是在硬盘上。
2. BT逻辑存储结构
BT的本质是一个稀疏的、分布式的、长期存储的、多维度的和排序的Map。Map的key是行关键字(Row)、列关键字(Column)和时间戳(Timestamp)。Value是一个普通的bytes数组。如下所示:(row:string,&column:string,time:int64)-string&
图2.11是BT存储网页的底层数据结构示意图(webtable)。其中,每个网页的内容与相关信息作为一行,无论它有多少列。
如图2.11所示,以反转的URL作为Row,列关键字是"contents"、"anchor:my.look.ca"和"",时间戳是t3, t5, t6, t8, t9等。如果要查询t5时间URL为的页面内容,可以使用{n.www,contents,t5}作为key去BT中查询相应的value。
(点击查看大图)图2.11& BT存储示意图
表中的行(Row)可以是任意长度的字符串(目前最多支持64KB,多数情况下10~100个字节就足够了)。在同一行下的每一个读写操作都是原子操作(不管读写这一行里多少个不同列),这使得在对同一行进行并发操作时,用户对于系统行为更容易理解和掌控。
BT通过行关键字在字典中的顺序来维护数据。一张表可以动态划分成多个连续"子表"(tablet)。这些"子表"由一些连续行组成,它是数据分布和负载均衡的单位。这使得读取较少的连续行比较有效率,通常只需要少量机器之间的通信即可。用户可以利用这个属性来选择行关键字,从而达到较好的数据访问"局部性"。举例来说,在webtable中,通过反转URL中主机名的方式,可以把同一个域名下的网页组织成连续行。具体而言,可以把站点/index.html中的数据存放在关键字com.google.maps/index.html所对应的数据中。这种存放方式可以让基于主机和基于域名的分析更加有效。
一组列关键字组成了"列族"(column famliy),这是访问控制的基本单位。同一列族下存放的所有数据通常都是同一类型的。"列族"必须先创建,然后才能在其中的"列关键字"下存放数据。"列族"创建后,其中任何一个"列关键字"都可使用。
"列关键字"用如下语法命名:"列族":限定词。"列族"名必须是看得懂的字符串,而限定词可以是任意字符串。比如,webtable可以有个"列族"叫language,存放撰写网页的语言。我们在language"列族"中只用一个"列关键字",用来存放网页的语言标识符。该表的另一个有用的"列族"是anchor。"列族"的每一个"列关键字"代表一个锚链接,访问控制、磁盘使用统计和内存使用统计,均可在"列族"这个层面进行。在图2.11的例子中,可以使用这些功能来管理不同应用:有的应用添加新的基本数据,有的读取基本数据并创建引申的"列族",有的则只能浏览数据(甚至可能因为隐私权的原因不能浏览所有数据)。
BT表中的每一个表项都可以包含同一数据的多个版本,由时间戳来索引。BT的时间戳是64位整型,表示准确到毫秒的"实时"。需要避免冲突的应用程序必须自己产生具有唯一性的时间戳。不同版本的表项内容按时间戳倒序排列,即最新的排在前面。在图2.11中,"contents:"列存放一个网页被抓取的时间戳。
BT使用Google分布式文件系统(GFS)来存储日志和数据文件。一个BT集群通常在一个共享的机器池中工作,池中的机器还运行着其他分布式应用,BT和其他程序共享机器(BT的瓶颈是I/O内存,可以和CPU要求高的程序并存)。BT依赖集群管理系统来安排工作,在共享的机器上管理资源,处理失效机器并监视机器状态。
【责任编辑: TEL:(010)】&&&&&&
大家都在看猜你喜欢
热点热点头条头条热点
24H热文一周话题本月最赞
讲师:428785人学习过
讲师:131588人学习过
讲师:15599人学习过
精选博文论坛热帖下载排行
本书全面介绍了Linux编程相关的知识,内容涵盖Linux基本知识、如何建立Linux开发环境、Linux开发工具、Linux文件系统、文件I/O操作、设备文...
订阅51CTO邮刊

我要回帖

更多关于 鬼最怕什么东西具体点 的文章

 

随机推荐