田春峰ID:accesine960
742300次访问,排名47好友15人,关注者93
请用一段话来描述您自己,如性格、爱好、生活态度、工作情况、受教育状况等。让大家更了解你,不要超过1000个汉字
accesine960的文章
原创 245 篇
翻译 10 篇
转载 33 篇
评论 544 篇
田春峰的公告

天天多么乐

田春峰

accesine's Rapleaf Score

关于我的信息链接

Donews Blog

Subscribe with Bloglines

my qq number
最近评论
sap99:http://www.sap99.com/
,SAP免费资料下载
SAP99资料多多

http://www.sap99.com

有很多的学习资料,推荐一下,
秒大刀:这有个免费的中文分词系统,貌似还不错,而且官方提供免费更新
http://dev.8jiao.com/index.php/Wb_cws_index
Kevinsh:认同jiaomeng的观点, 错误 != 误差. 个人认为误差是测量值和实际值之间的差别, 和机械加工中偏差有点像, 应该在可接受的范围内. 错误的值完全不同于实际值,比如一个球的颜色是实际值正红色(0xFF0000), 0xFF0001认为是误差,而0x00FF00就是错误了. Bloom Filter中的错误概率比较低时, 比如<0.001%, 认为是可接受的, 错误忽略. 还有个……
chan ming:B to B SERACHENGINE PARTNER WANTED

搜索引擎技术总监 兼職亦可 賣軟件亦可 按件計外包 亦可

提供 “大事业、大学校、大家庭”的平台为每一位员工造就了人生与事业的舞台,让员工与企业共同发展。

共圖大業亦可 本公司有殺着 本公司高超生意頭腦 必能為相方帶來成功感, ……
irplay:C#失去的不仅仅是CPU和内存,更多的失去了客户.
MS的商业策略可以抹杀.net程序员的成功...足以致命.
文章分类
收藏
相册
Computer Pic
domolo
life
lucene
MsnRobot DingDang
searchengine
search-engine
seo
个人信息
其他
.net
C++
os
sp
工作流
开发工具
名人连接
数据库相关
搜索引擎
网络开发
我的好朋友
移动开发
组件
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

翻译 Google's BigTable 原理 (翻译)收藏

新一篇: 如何获得 当天 Donews 最热点的blog 列表? | 旧一篇: 2006-02-06 分析百度新闻来源

Google's BigTable 原理 (翻译)

    题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。

                                                  ------ 编者

官方的 Google Reader blog 中有对BigTable 的解释。这是Google 内部开发的一个用来处理大数据量的系统。这种系统适合处理半结构化的数据比如 RSS 数据源。 以下发言  Andrew Hitchcock  在 2005 年10月18号 基于: Google 的工程师 Jeff Dean 在华盛顿大学的一次谈话 (Creative Commons License).

 


首先,BigTable 从 2004 年初就开始研发了,到现在为止已经用了将近8个月。(2005年2月)目前大概有100个左右的服务使用BigTable,比如: Print,Search History,Maps和 Orkut。根据Google的一贯做法,内部开发的BigTable是为跑在廉价的PC机上设计的。BigTable 让Google在提供新服务时的运行成本降低,最大限度地利用了计算能力。BigTable 是建立在 GFS ,Scheduler ,Lock Service 和 MapReduce 之上的。

每个Table都是一个多维的稀疏图 sparse map。Table 由行和列组成,并且每个存储单元 cell 都有一个时间戳。在不同的时间对同一个存储单元cell有多份拷贝,这样就可以记录数据的变动情况。在他的例子中,行是URLs ,列可以定义一个名字,比如:contents。Contents 字段就可以存储文件的数据。或者列名是:”language”,可以存储一个“EN”的语言代码字符串。

为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有 100-200 MB,每个机器存储100个左右的 Tablets。底层的架构是:GFS。由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。

Tablets在系统中的存储方式是不可修改的 immutable 的SSTables,一台机器一个日志文件。当系统的内存满后,系统会压缩一些Tablets。由于Jeff在论述这点的时候说的很快,所以我没有时间把听到的都记录下来,因此下面是一个大概的说明:

压缩分为:主要和次要的两部分。次要的压缩仅仅包括几个Tablets,而主要的压缩时关于整个系统的压缩。主压缩有回收硬盘空间的功能。Tablets的位置实际上是存储在几个特殊的BigTable的存储单元cell中。看起来这是一个三层的系统。

客户端有一个指向METAO的Tablets的指针。如果METAO的Tablets被频繁使用,那个这台机器就会放弃其他的tablets专门支持METAO这个Tablets。METAO tablets 保持着所有的META1的tablets的记录。这些tablets中包含着查找tablets的实际位置。(老实说翻译到这里,我也不太明白。)在这个系统中不存在大的瓶颈,因为被频繁调用的数据已经被提前获得并进行了缓存。

    现在我们返回到对 列的说明:列是类似下面的形式: family:optional_qualifier。在他的例子中,行:www.search-analysis.com  也许有列:”contents:其中包含html页面的代码。 “ anchor:cnn.com/news” 中包含着 相对应的url,”anchor:www.search-analysis.com/” 包含着链接的文字部分。列中包含着类型信息。

    (翻译到这里我要插一句,以前我看过一个关于万能数据库的文章,当时很激动,就联系了作者,现在回想起来,或许google的 bigtable 才是更好的方案,切不说分布式的特性,就是这种建华的表结构就很有用处。)

    注意这里说的是列信息,而不是列类型。列的信息是如下信息,一般是:属性/规则。 比如:保存n份数据的拷贝 或者 保存数据n天长等等。当 tablets 重新建立的时候,就运用上面的规则,剔出不符合条件的记录。由于设计上的原因,列本身的创建是很容易的,但是跟列相关的功能确实非常复杂的,比如上文提到的 类型和规则信息等。为了优化读取速度,列的功能被分割然后以组的方式存储在所建索引的机器上。这些被分割后的组作用于 列 ,然后被分割成不同的 SSTables。这种方式可以提高系统的性能,因为小的,频繁读取的列可以被单独存储,和那些大的不经常访问的列隔离开来。

在一台机器上的所有的 tablets 共享一个log,在一个包含1亿的tablets的集群中,这将会导致非常多的文件被打开和写操作。新的log块经常被创建,一般是64M大小,这个GFS的块大小相等。当一个机器down掉后,控制机器就会重新发布他的log块到其他机器上继续进行处理。这台机器重建tablets然后询问控制机器处理结构的存储位置,然后直接对重建后的数据进行处理。

这个系统中有很多冗余数据,因此在系统中大量使用了压缩技术。

    Dean 对压缩的部分说的很快,我没有完全记下来,所以我还是说个大概吧:压缩前先寻找相似的 行,列,和时间 数据。

    他们使用不同版本的: BMDiff 和 Zippy 技术。

   BMDiff 提供给他们非常快的写速度: 100MB/s 1000MB/s 。Zippy 是和 LZW 类似的。Zippy 并不像 LZW 或者 gzip 那样压缩比高,但是他处理速度非常快。

    Dean 还给了一个关于压缩 web 蜘蛛数据的例子。这个例子的蜘蛛 包含 2.1B 的页面,行按照以下的方式命名:“com.cnn.www/index.html:http”.在未压缩前的web page 页面大小是:45.1 TB ,压缩后的大小是:4.2 TB , 只是原来的 9.2%。Links 数据压缩到原来的 13.9% , 链接文本数据压缩到原来的 12.7%。

Google 还有很多没有添加但是已经考虑的功能。

    1.  数据操作表达式,这样可以把脚本发送到客户端来提供修改数据的功能。
    2. 多行数据的事物支持。
    3.  提高大数据存储单元的效率。
    4. BigTable 作为服务运行。
    好像:每个服务比如: maps 和 search history 历史搜索记录都有他们自己的集群运行 BigTable。
    他们还考虑运行一个全局的 BigTable 系统,但这需要比较公平的分割资源和计算时间。

原文地址:
http://blog.csdn.net/accesine960/archive/2006/02/09/595628.aspx

http://blog.outer-court.com/archive/2005-10-23-n61.html




 

发表于 @ 2006年02月09日 22:02:00|评论(loading...)|编辑

新一篇: 如何获得 当天 Donews 最热点的blog 列表? | 旧一篇: 2006-02-06 分析百度新闻来源

评论

#曾登高 发表于2006-02-13 19:07:00  IP: 211.100.21.*
TrackBack来自《春节技术关注:Atlas CTP版本推出》

Atlas一月份CTP版推出,主要作者Nikhil Kothari对该版本的功能做了总结:--对异时PostBack时的重新定向和错误报告的支持--新的控件atlas:UpdateProgress对进程指示的支持--Atlas控件对真实PostBack的支持--UpdatePanel控件的自动和有条件的更新
#Soker's Weblog 发表于2006-02-13 19:35:00  IP: 168.160.191.*
TrackBack来自《Jeff Dean介绍Bigtable的中文翻译》

首先,BigTable 从 2004 年初就开始研发了,到现在为止已经用了将近8个月。(2005年2月)目前大概有100个左右的服务使用BigTable,比如: Print,Search History,Maps和 Orkut。根据Google的一贯做法,内部开发的BigTable是为跑在廉价的PC机上设计的。BigTable 让Google在提供新服务时的运行成本降低,最大限度地利用了计算能力。BigTable 是建立在 GFS ,Scheduler ,Lock Service 和 MapReduce 之上的。..........................
#joyfire 发表于2006-02-16 01:01:00  IP: 61.51.122.*
TrackBack来自《》

BigTable和生物信息
#notmsn 发表于2006-02-19 22:20:00  IP: 218.108.12.*
TrackBack来自《》

乱翻:system biology及其他
#花纯春 发表于2006-03-18 09:55:00  IP: 211.100.21.*
TrackBack来自《无限存储,无限带宽,无限运算能力》

无限存储,无限带宽,无限运算能力
#searchtech 发表于2006-03-29 22:01:00  IP: 219.146.57.*
TrackBack来自《Google's BigTable ԭ 룩》

Google's BigTable ԭ 룩<BR/>oBlog3.1 Created
#good 发表于2006-02-11 11:20:00  IP: 211.161.61.*
good
#Alex Left 发表于2006-02-13 09:11:00  IP: 221.4.218.*
google里面工作的的科学家啊。。。
#真心好汉 发表于2006-02-13 14:22:00  IP: 219.136.154.*
学习.....
http://www.wopos.com/default.aspx
#danpan 发表于2006-02-14 08:44:00  IP: 211.97.216.*
好!
http://www.leisures.cn
静逸堂
#水手 发表于2006-03-05 03:25:00  IP: 61.153.55.*
我的见识太少了
#ipiggg 发表于2006-04-23 15:28:00  IP: 159.226.5.*
客户端有一个指向METAO的Tablets的指针。如果METAO的Tablets被频繁使用,那个这台机器就会放弃其他的tablets专门支持METAO这个Tablets。METAO tablets 保持着所有的META1的tablets的记录。这些tablets中包含着查找tablets的实际位置。(老实说翻译到这里,我也不太明白。)

我觉得和 Linux的2级索引差不多
->索引的索引->索引->数据
#豆豆 发表于2006-07-12 10:22:00  IP: 61.50.219.*
我对bigtable很感兴趣,我想问问。BigTable 是建立在 GFS ,Scheduler ,Lock Service 和 MapReduce 之上的。其中GFS,MapReduce 我有点明白,不过Scheduler ,Lock Service一点不知道还有我查不到google关于这两方面的 有用资料,各位高手能否给我这初学者点宝贵意见

#陈帮铭 发表于2008-06-19 15:14:36  IP: 203.86.92.*
呵呵,打扰各位的讨论了。我不是做技术的人。我是chinahr的招聘顾问。目前正负责bigtable这个职位招聘的工作。看到各位都在哲理讨论。我也就进来凑个热闹。如果这里面有这方面的高手想了解下我这边的职位情况。可以直接与我联系。希望没有打扰到各位的雅兴。:)
陈帮铭

项目执行部 招聘咨询顾问

Tel: (010) 58289000 - 1529

Office E-mail:chenbangming@corp.chinahr.com

Mobile: 13520093079

Msn:cbmpipi@163.com

Address: 北京市朝阳区建国门外大街19号国际大厦B座4层 100020

Fax: (8610) 8526 1110

Website: http:// www.ChinaHR.com


#陈帮铭 发表于2008-06-19 15:18:34  IP: 203.86.92.*
顺便向此博客主人表示歉意,没有经过您的允许在您博客里发了一个招聘广告。希望敬请谅解。如果有机会的话非常希望能与您成为朋友可以互相交流一下。:)
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 田春峰