【分布式计算】DFS && BigTable

简介: 1.背景分布式计算的发迹应该是google在2003年发表的三篇paper,分别是GFS、MapReduce、BigTable。其中MapReduce大家都很熟悉了,不懂的同学也可以看看我之前写的文章【分布式计算】MapReduce的替代者-Parameter Server为什么google会搞分布式计算这件事儿呢,因为在那个年代每天会产生几个T的日志,但是当时的磁盘只允许存储几


1.背景



分布式计算的发迹应该是google在2003年发表的三篇paper,分别是GFS、MapReduce、BigTable。其中MapReduce大家都很熟悉了,不懂的同学也可以看看我之前写的文章 【分布式计算】MapReduce的替代者-Parameter Server

为什么google会搞分布式计算这件事儿呢,因为在那个年代每天会产生几个T的日志,但是当时的磁盘只允许存储几百G的文件,07年之前淘宝的所有数据都是用完就删除的,因为没地方存。后来,人们认识到数据是值钱的,所以需要一种存储策略来存储大数据,于是google就用了分布式存储系统。

这里主要介绍下GFS和BigTable。

2.DFS(对应hadoop的HDFS)



DFS是一种分布式文件存储系统。常规的文件系统是树状结构存储的,每个文件有一个指针指到磁盘上的某个区域。
早期的DFS是单点结构的,有一个master节点负责管理每个文件的namespace(文件存储在哪个机器的哪个磁盘上,如s3/dick2)。要存储一个很大的数据,比方说一个10P的数据,首先是切片,比如说按照64M切片,每个block存在某一个机器的某个磁盘上。整体的结构如下:


这里面就会衍生出三个问题,
       第一个是master节点如果挂了,整个文件系统就不能work了,这个是单点的一个缺陷。
       第二个问题是,一但slave中的某个磁盘破损了,磁盘破损率在2%左右,也就是每天都有破损的。这里有一个冗余机制,就是每个block会分配到多个磁盘上备份~
       第三个问题是,磁盘是不停的被读写的,master是如何获得每个磁盘的信息的,这个功能依赖于一种叫做heart-beat的机制,每隔几秒钟,master就要遍历每个slave得到它们的最新状况。


3.BigTable(对应Hadoop的HBase)



如果说DFS是磁盘级别的分布式存储,那么BigTable就是内存级别的分布式存储。BigTable的存储结构是HashTable,以key-value的形式存储。应用场景是一些在线的service。比方说GoogleEarth,每个地名(key)会对应一系列的meta(value),世界上有无数个地名,这是一个很大的文件。如果从磁盘中拿,比方说输入一个巷子的名字,过10分钟用户才能拿到结果,这是不能接受的,我们需要将这些key-value做成cache缓存在内存中。显然单机内存的极限,比方说300G也是无法缓存这么大的文件的。这就需要多个机器一起缓存,这个策略就是BigTable。

但是,一但一个机器出现failover的情况,整个缓存就出现了gap,BigTable有一个机制就是,不断地将文件underfile到DFS中,防止文件丢失。




/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/





目录
相关文章
|
7月前
|
存储 Windows
DFS(分布式文件系统)与 DFSR(分布式文件系统复制)的区别
DFS(分布式文件系统)提供了一个逻辑上的命名空间,将不同物理位置的文件夹整合在一起便于集中访问;而DFSR(分布式文件系统复制)是DFS的一部分,负责在多台服务器之间同步和复制共享文件夹的内容以实现数据冗余和一致性。
228 1
|
存储 C# 数据库
【C#编程最佳实践 九】DFS分布式文件系统
【C#编程最佳实践 九】DFS分布式文件系统
134 0
|
存储 消息中间件 监控
分布式系统工程实现:GFS&Bigtable设计的优势,互联网营销
  目前,知名度比较高的通用存储系统包括:Google GFS&Bigtable,Amazon Dynamo,Microsoft Azure存储系统及Yahoo PNUTS。其中,GFS&Bigtable,Azure存储系统及Yahoo PNUTS都有总控节点,Amazon Dynamo采用去中心化的P2P设计。
1234 0

热门文章

最新文章