首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

免费的晚餐--google技术学习 - 花钱的年华 - CSDNBlog


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的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。

我自己接触MapReduce是Lucene->Nutch->Hadoop的路线。
Hadoop是Lucene之父Doug Cutting的又一力作,是Java版本的分布式文件系统与Map/Reduce实现。
Hadoop的文档并不详细,再看一遍Google这篇中文版的论文,一切清晰很多(又一次感谢翻译的兄弟)。

孟岩也有一篇很清晰的博客:Map Reduce - the Free Lunch is not over?

3.BigTable
BigTable 是Google Style的数据库,使用结构化的文件来存储数据。
虽然不支持关系型数据查询,但却是建立GFS/MapReduce基础上的,分布式存储大规模结构化数据的方案。

BigTable是一个稀疏的,多维的,排序的Map,每个Cell由行关键字,列关键字和时间戳三维定位.Cell的内容是一个不解释的字符串。
比如下表存储每个网站的内容与被其他网站的反向连接的文本。
反向的URL com.cnn.www(www.cnn.com)是行的关键字;contents列存储网页内容,每个内容有一个时间戳;因为有两个反向连接,所以archor列族有两列:anchor:cnnsi.com和anchhor:my.look.ca,列族的概念,使得表可以横向扩展,archor的列数并不固定。



为了并发读写,热区,HA等考虑,BigTable当然不会存在逗号分割的文本文件中,,是存储在一种叫SSTable的数据库结构上,并有BMDiff和Zippy两种不同侧重点的压缩算法。

4.Sawzall
Sawzall是一种建立在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提交的次数。
首先它的变量定义类似Pascal (i:int=0; 即定义变量i,类型为int,初始值为0)

1:引入cvsstat.proto协议描述,作用见后。
2:定义int数组submits 存放统计结果,用hour作下标。
3.循环的将文件输入转换为ChangelistLog 类型,存储在log变量里,类型及转换方法在前面的cvsstat.proto描述。
4.取出changlog中的提交时间log.time的hour值。
5.emit聚合,在sumits结果数组里,为该hour的提交数加1,然后自动循环下一个输入。

居然读懂了,其中1、2步是准备与定义,3、4步是Map,第5步是Reduce。


5. 小结:
本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....




他们设置了哪些标签:


cvsstat Feeling google google技术 google技术学习 java Learing MapReduce Net Technology 编程思想 谷歌 免费 免费的晚餐--google技术学习 搜索技术

谁收藏了这个网址:


dollyhao收录

时间:2007-1-31 10:55:09 | 相关网摘

jwqu收录

时间:2007-1-31 12:47:24 | 相关网摘

cole2295收录

时间:2007-1-31 13:34:12 | 相关网摘

thefirstwind收录

时间:2007-1-31 14:56:30 | 相关网摘

chopin407收录

时间:2007-1-31 17:33:33 | 相关网摘

neuseven收录

时间:2007-1-31 19:43:21 | 相关网摘

zdg收录

使用标签:google, 搜索技术,时间:2007-1-31 20:43:26 | 相关网摘

本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....

LHCluster收录

时间:2007-1-31 21:06:19 | 相关网摘

yangqizhong收录

时间:2007-1-31 22:42:10 | 相关网摘

nowaywolf_cs收录

使用标签:google技术学习,时间:2007-2-1 11:05:21 | 相关网摘

gamefast收录

使用标签:编程思想,时间:2007-2-1 11:19:03 | 相关网摘

免费的晚餐--google技术学习

zf718收录

时间:2007-2-1 11:24:48 | 相关网摘

sunrat收录

时间:2007-2-1 14:12:07 | 相关网摘

gzmsd061收录

使用标签:Google,时间:2007-2-1 14:59:11 | 相关网摘

Google技术

simon_186收录

时间:2007-2-1 15:04:42 | 相关网摘

villa123收录

使用标签:Java,时间:2007-2-1 15:46:34 | 相关网摘

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的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。

我自己接触MapReduce是Lucene->Nutch->Hadoop的路线。
Hadoop是Lucene之父Doug Cutting的又一力作,是Java版本的分布式文件系统与Map/Reduce实现。
Hadoop的文档并不详细,再看一遍Google这篇中文版的论文,一切清晰很多(又一次感谢翻译的兄弟)。

孟岩也有一篇很清晰的博客:Map Reduce - the Free Lunch is not over?

3.BigTable
BigTable 是Google Style的数据库,使用结构化的文件来存储数据。
虽然不支持关系型数据查询,但却是建立GFS/MapReduce基础上的,分布式存储大规模结构化数据的方案。

BigTable是一个稀疏的,多维的,排序的Map,每个Cell由行关键字,列关键字和时间戳三维定位.Cell的内容是一个不解释的字符串。
比如下表存储每个网站的内容与被其他网站的反向连接的文本。
反向的URL com.cnn.www(www.cnn.com)是行的关键字;contents列存储网页内容,每个内容有一个时间戳;因为有两个反向连接,所以archor列族有两列:anchor:cnnsi.com和anchhor:my.look.ca,列族的概念,使得表可以横向扩展,archor的列数并不固定。



为了并发读写,热区,HA等考虑,BigTable当然不会存在逗号分割的文本文件中,,是存储在一种叫SSTable的数据库结构上,并有BMDiff和Zippy两种不同侧重点的压缩算法。

4.Sawzall
Sawzall是一种建立在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提交的次数。
首先它的变量定义类似Pascal (i:int=0; 即定义变量i,类型为int,初始值为0)

1:引入cvsstat.proto协议描述,作用见后。
2:定义int数组submits 存放统计结果,用hour作下标。
3.循环的将文件输入转换为ChangelistLog 类型,存储在log变量里,类型及转换方法在前面的cvsstat.proto描述。
4.取出changlog中的提交时间log.time的hour值。
5.emit聚合,在sumits结果数组里,为该hour的提交数加1,然后自动循环下一个输入。

居然读懂了,其中1、2步是准备与定义,3、4步是Map,第5步是Reduce。


5. 小结:
本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....

ynyjl收录

使用标签:Java,时间:2007-2-1 15:52:54 | 相关网摘

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的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。

我自己接触MapReduce是Lucene->Nutch->Hadoop的路线。
Hadoop是Lucene之父Doug Cutting的又一力作,是Java版本的分布式文件系统与Map/Reduce实现。
Hadoop的文档并不详细,再看一遍Google这篇中文版的论文,一切清晰很多(又一次感谢翻译的兄弟)。

孟岩也有一篇很清晰的博客:Map Reduce - the Free Lunch is not over?

3.BigTable
BigTable 是Google Style的数据库,使用结构化的文件来存储数据。
虽然不支持关系型数据查询,但却是建立GFS/MapReduce基础上的,分布式存储大规模结构化数据的方案。

BigTable是一个稀疏的,多维的,排序的Map,每个Cell由行关键字,列关键字和时间戳三维定位.Cell的内容是一个不解释的字符串。
比如下表存储每个网站的内容与被其他网站的反向连接的文本。
反向的URL com.cnn.www(www.cnn.com)是行的关键字;contents列存储网页内容,每个内容有一个时间戳;因为有两个反向连接,所以archor列族有两列:anchor:cnnsi.com和anchhor:my.look.ca,列族的概念,使得表可以横向扩展,archor的列数并不固定。



为了并发读写,热区,HA等考虑,BigTable当然不会存在逗号分割的文本文件中,,是存储在一种叫SSTable的数据库结构上,并有BMDiff和Zippy两种不同侧重点的压缩算法。

4.Sawzall
Sawzall是一种建立在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提交的次数。
首先它的变量定义类似Pascal (i:int=0; 即定义变量i,类型为int,初始值为0)

1:引入cvsstat.proto协议描述,作用见后。
2:定义int数组submits 存放统计结果,用hour作下标。
3.循环的将文件输入转换为ChangelistLog 类型,存储在log变量里,类型及转换方法在前面的cvsstat.proto描述。
4.取出changlog中的提交时间log.time的hour值。
5.emit聚合,在sumits结果数组里,为该hour的提交数加1,然后自动循环下一个输入。

居然读懂了,其中1、2步是准备与定义,3、4步是Map,第5步是Reduce。


5. 小结:
本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....

wxdsunny收录

使用标签:Learing,时间:2007-2-1 16:08:54 | 相关网摘

wqf363收录

时间:2007-2-1 19:13:22 | 相关网摘

luhl收录

时间:2007-2-1 23:51:18 | 相关网摘

免费的晚餐--google技术学习

bryanliu1982收录

时间:2007-2-2 16:50:34 | 相关网摘

lovekatherine收录

使用标签:google,时间:2007-2-2 20:38:16 | 相关网摘

lmwzm收录

使用标签:google,时间:2007-2-2 21:49:37 | 相关网摘

lanfn收录

使用标签:Technology,时间:2007-2-3 9:17:30 | 相关网摘

zyjyhrzb收录

时间:2007-2-3 15:39:27 | 相关网摘

midi13收录

时间:2007-2-3 19:41:40 | 相关网摘

zyplanke收录

时间:2007-2-3 21:15:03 | 相关网摘

chen_520987收录

使用标签:net, google, 谷歌, 免费, mapreduce, cvsstat,时间:2007-2-4 3:48:51 | 相关网摘

Google帝国,便建立在大约45万台的Server上,其中大部分都是"cheap x86 boxes"。而这45万台Server,则建立于下面的key infrastructure:

farmerye收录

使用标签:google,时间:2007-2-4 15:46:28 | 相关网摘

免费的晚餐--google技术学习

ego收录

使用标签:google,时间:2007-2-6 13:04:38 | 相关网摘

fredyj收录

时间:2007-2-8 11:35:58 | 相关网摘

jiangguan收录

使用标签:google技术,时间:2007-2-9 12:35:38 | 相关网摘

gentlelotus收录

时间:2007-2-21 11:05:49 | 相关网摘

viewtifuljoey收录

时间:2007-2-26 11:58:13 | 相关网摘

zhangwujian收录

时间:2007-3-4 23:09:52 | 相关网摘

tojoykorea收录

使用标签:Google,时间:2007-3-5 4:54:50 | 相关网摘

bshawk收录

时间:2007-3-12 12:21:58 | 相关网摘

TravisLi4891收录

使用标签:Feeling,时间:2007-3-30 20:28:48 | 相关网摘

tonywjd收录

使用标签:google,时间:2007-9-18 19:09:30 | 相关网摘

jouwei收录

时间:2008-1-9 10:15:05 | 相关网摘

taozhiyaoyao_0324收录

使用标签:google, 搜索技术,时间:2008-1-27 9:51:14 | 相关网摘

本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....

gotowqj收录

使用标签:google, 搜索技术,时间:2008-8-25 0:44:39 | 相关网摘

本文只是简单的介绍Google的技术概貌,大家知道以后除了可作谈资外没有任何作用,我们真正要学习的骨血,是论文里如何解决高并发,高可靠性等的设计思路和细节.....

网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
Copyright © 2000-2008, CSDN.NET, All Rights Reserved