花钱的年华

--今天开始成为主站

用户操作
[即时聊天] [发私信] [加为好友]
江南白衣ID:calvinxiu
691226次访问,排名53好友0人,关注者38
calvinxiu的文章
原创 161 篇
翻译 0 篇
转载 0 篇
评论 646 篇
江南白衣的公告

肖桦,江南白衣,
开源项目SpringSide
春天的旁边
发起者

最近评论
calvinxiu:
发版本最痛苦的事情,就是刚发完之后忽然又有了一个比较重要的更新。

推荐大家下载3.0.3.1 (2mb)

1.简化了目录结构,感觉又清爽了不少。
2.消除了最后一块需要逐个Class写配置文件的地方(applicationContext.xml中的sessionFactory的mapping class)。
dreaming:恭喜~
hongyi:还是一头雾水,郁闷,为啥有这么多东东,叫人头大
suncheng_hong:用过appfuse,但springside还没有尝试过。
suncheng_hong:很想尝试一下。
文章分类
    收藏
      相册
      Blog用图
      Friends
      @_@
      Anders小明
      buaawhl
      cac
      canonical
      cctvx1
      david.turing
      femto
      g9
      JohnsonQu
      Michael Chen
      Raimundox
      robbin
      SimonLei
      totodo
      wuyu
      周爱民
      孟岩
      差沙
      庄表伟
      落魄的程序员
      透明
      郁也风
      铁手
      银狐999
      飞云小侠
      存档
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 免费的晚餐--Google技术学习收藏

      新一篇: Hadoop-- 海量文件的分布式计算处理方案 | 旧一篇: 开发人员行走Unix的随身四艺

       作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/01/31/1498597.aspx,转载请保留出处。

         如果说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的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。

      三. 小结:

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

      发表于 @ 2007年01月31日 09:40:00|评论(loading...)|编辑

      新一篇: Hadoop-- 海量文件的分布式计算处理方案 | 旧一篇: 开发人员行走Unix的随身四艺

      评论

      #javaoaout 发表于2007-01-31 10:50:49  IP: 218.94.131.*
      唉,知识真是多啊
      #terry915 发表于2007-01-31 11:02:29  IP: 219.233.248.*
      知识?太难懂
      #zhaojiang 发表于2007-01-31 21:54:08  IP: 219.234.121.*
      好文,想起Google,汗,再看看微软,BS.
      #HuDon 发表于2007-02-01 09:15:10  IP: 219.142.193.*
      非常不错啊,google搜索引擎技术架构做的不错,扩展性极强,不过入门有点难度了,推荐开源的luence
      #bingobird 发表于2007-02-01 09:35:28  IP: 60.191.53.*
      TO:zhaojiang
      Google技术确实不错,但微软的技术还没到让人BS的程度。
      保持一份理智~o~
      #zzfjfhwfnhti 发表于2007-02-01 12:29:11  IP: 220.231.153.*
      是要好好学学了
      #smile6688 发表于2007-02-02 09:24:05  IP: 222.76.172.*
      高深啊
      #clin003 发表于2007-02-03 13:38:50  IP: 222.85.2.*
      不错,等博客后台好啦,我就转过去,呵呵
      #hpib@mail.com 发表于2007-09-02 03:13:36  IP: 58.71.1.*
      hkibt ndtpwzc swlzmp oslb wbhlzgyvx ysrwaof zhoxekqm
      #zwnk@mail.com 发表于2007-09-02 03:13:48  IP: 88.208.234.*
      syragwom bmxjykg ayzijstr vyihtsa dmbg mgaqjhid femcgyjx http://www.hrslj.snrwboxv.com
      #bprhnlqit@mail.com 发表于2007-09-02 03:14:17  IP: 127.0.0.1, 83.*
      karjli gjxpvc mjhfiguao nhzatw mtioc lixvkz piax hdbrnep cgpbe
      #明日达人 发表于2008-01-09 11:31:08  IP: 211.137.35.*
      TO:Myself
      Google技术确实不错,但微软的技术还没到让人BS的程度。
      保持一份理智~o~

      看了吧,某人跟我有差距
      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © 江南白衣