|
锁定老贴子 主题:google的技术基石(转)
该帖已经被评为隐藏帖
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-05-21
如果说Google的搜索引擎是免费的早餐,Gmail们是免费的午餐的话,
http://labs.google.com/papers/ 就是Google给开发人员们的一份免费的晚餐。 不过,咋看着一桌饭菜可能不知道从哪吃起,在自己不熟悉的领域啃英文也不是一件愉快的事情。 一、一份PPT与四份中文翻译幸好,有一位面试google不第的老兄,自我爆发搞了一份Google Interal的PPT: http://cbcg.net/talks/googleinternals/index.html,大家鼠标点点就能跟着他匆匆过一遍google的内部架构。 然后又有崮崮山路上走9遍(http://sharp838.mblogger.cn)与美人他爹(http://my.donews.com/eraera/),翻译了其中最重要的四份论文:
二、Google帝国的技术基石Google帝国,便建立在大约45万台的Server上,其中大部分都是"cheap x86 boxes"。而这45万台Server,则建立于下面的key infrastructure: 1.GFS(Google File System):GFS是适用于大规模分布式数据处理应用的分布式文件系统,是Google一切的基础,它基于普通的硬件设备,实现了容错的设计与极高的性能。 李开复说:Google最厉害的技术是它的storage。我认为学计算机的学生都应该看看这篇文章(再次感谢翻译的兄弟)。 它以64M为一个Chunk(Block),每个Chunk至少存在于三台机器上,交互的简单过程见: 2.MapReduce MapReduce是一个分布式处理海量数据集的编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。像Grep-style job,日志分析等都可以考虑采用它。 我自己接触MapReduce是Lucene->Nutch->Hadoop的路线。 3.BigTable BigTable 是Google Style的数据库,使用结构化的文件来存储数据。 BigTable是一个稀疏的,多维的,排序的Map,每个Cell由行关键字,列关键字和时间戳三维定位.Cell的内容是一个不解释的字符串。 为了并发读写,热区,HA等考虑,BigTable当然不会存在逗号分割的文本文件中,,是存储在一种叫SSTable的数据库结构上,并有BMDiff和Zippy两种不同侧重点的压缩算法。 4.SawzallSawzall是一种建立在MapReduce基础上的领域语言,可以被认为是分布式的awk。它的程序控制结构(if,while)与C语言无异,但它的领域语言语义使它完成相同功能的代码与MapReduce的C++代码相比简化了10倍不止。 1 proto "cvsstat.proto"
2 submits: table sum[hour: int] of count: int; 3 log: ChangelistLog = input; 4 hour: int = hourof(log.time) 5 emit submits[hour] <- 1; 我们这次是统计在每天24小时里CVS提交的次数。 1:引入cvsstat.proto协议描述,作用见后。 居然读懂了,其中1、2步是准备与定义,3、4步是Map,第5步是Reduce。 三. 小结: 本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节..... 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-05-15
没想到这样的好贴可以坐沙发,谢谢cutesource兄的推荐了,这些技术文章,可以伴我度过这个月的闲暇时光了。
google确实很强,这样的东西都敢于公开,虽然不是细节的全部,但是能够把自己公司的技术精华的概貌,分享与广大技术人员,这份胸怀确实难能可贵了。 |
|
| 返回顶楼 | |
|
最后更新时间:2007-05-15
这是江南白衣的一篇blog
免费的晚餐--Google技术学习 http://calvin.javaeye.com/blog/59296 原文出处: http://blog.csdn.net/calvinxiu/archive/2007/01/31/1498597.aspx,转载请保留出处。 |
|
| 返回顶楼 | |
浏览 1026 次








