Google的背后藏了什么?

最近在研究搜索引擎的一些相关技术,并且也阅读了一些Google的相关文章,对Google的神秘感也消退了一些,不过也深为google对技术运用的技巧所折服。在这接下来的几篇文章中,我想总结一下我对Google后台架构和技术的认识,如果见解上有什么差错,请大家指正。

1. Google的背后究竟有什么?

    Google这个搜索巨人,有人评价说,其互联网的技术至少领先微软2年,但这个自然不得为证,但是在研究过它后台的相关技术,我们的确不得不承认,google在技术上的利用和创新上的确是一个王者。Google的后台,总的来说,有几个大部头。

1)GFS

    这是google自己开发的分布式文件系统。鉴于自己要处理海量的数据,而且轻则GB,TB的数量级别,所以,采用数据库显然是非常昂贵的开销,google针对自己的需要的特点,专门有目的性地开发了这个文件系统。这个文件系统,是Google所有存储相关的基础。

    GFS简单来说,有两个部分,一个是Master,一个是ChunServer。Master可以理解为一个总控主机,而ChunServer,则是一系列的主机,存储实际上的数据,并且接收Master的监控。所以,这是一个(1:many)的关系

    在GFS系统中,一个基本理念是:尽量处理大块数据,并且尽量优化大块数据的处理(这是由Google自身的特点所决定的,它的这个系统,根本就是度身定做的),而不去优化小块数据的处理。所以,一个基本的处理单位,是64MB,这就是文件块(Chunk)的概念。一个ChunkServer上面会有很多的Chunk(数据块),这些数据块都是64MB大小,由ChunkServer负责读写。

     从职能上来说,Master维护的信息,就好像是普通pc机的目录表,它记录了所有的chunk块的位置(即对应的chunk Server的地址,如IP:PORT),这样做的基础,是每一个chunk块由一个全局性的GUID,着同样是由Master在创建这个文件块的时候分配的。所以,当用户需要进行操作的时候,会先去Master主机获取对应的目录信息,得到对应的ChunkServer,然后,真正向ChunkServer读写数据。

     那么,master是如何管理这些chunkServer的呢?google的做法非常简单直接。master不会存储chunkserver的信息,而是在每一次启动的时候,向cluster中的所有chunkserver发送指令,由所有的chunkserver自动汇报自己的信息,包括自己有的数据块对应的GUID等,运行状态等,这些数据将会存放到master的内存中(不是硬盘),而master在启动之后,内存中不久就会有所有chunkserver的数据,之后,它会定期去发送消息到chunkserver,以确保这个chunkserver还处于工作状态,通过这种方式,能够及时发现down掉的机器,并且执行容错处理(下面还会细讲)。而当加入新的机器上,只需到master注册一下,新的机器立刻可以加入cluster开始工作,这就是其可扩展性的伟大之处。

    那么GFS是如何容错的呢?实际上,每一个chunk数据块有3份拷贝,一份down掉,则GFS会立刻通过另外两份快速进行恢复。通过这种方式,可以把出错的几率降低到一个几乎可以忽略的程度。

    另外,值得一提的是,GFS的客户端,它和master通信的数据,只是传递控制信息,比如获取目录即chunkserver地址,但是数据传输不会经过master,而是直接和chunkserver通信,这种方式,可以大大降低master的负载,并且容易做到全局负载均衡。

    而google的GFS与普通的DFS或者NFS有什么不同呢?我想,主要有下面几个点:

   1. GFS针对特定的应用,特别是数据块方式的文件存储,特别适用于大量数据读操作的环境。

   2. GFS吞吐率是放在第一位的,即使GFS整体吞吐率最大,但是并不一定兼顾到单次访问的延迟时间。

 

  今天先把GFS介绍到这里,改天继续会和大家谈MapReduce和Bigtable, 以及Google的后台整体框架等。:)

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值