【分布式计算】DFS && BigTable

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 20:57:57

【分布式计算】DFS && BigTable的相关文章

【分布式计算】DFS && BigTable

1.背景 分布式计算的发迹应该是google在2003年发表的三篇paper.各自是GFS.MapReduce.BigTable. 当中MapReduce大家都非常熟悉了.不懂的同学也能够看看我之前写的文章[分布式计算]MapReduce的替代者-Parameter Server 为什么google会搞分布式计算这件事儿呢,由于在那个年代每天会产生几个T的日志,可是当时的磁盘仅仅同意存储几百G的文件,07年之前淘宝的全部数据都是用完就删除的,由于没地方存.后来,人们认识到数据是值钱的,所以须要一

Hadoop_day01

Hadoop7天课程 课程体系 Day01>>>>>>>>>>>>>>>>>>>> hadoop项目简介 hadoop简介 hadoop前景 apache的开源项目 解决问题:(核心) 海量数据的存储(HDFS) ---Hadoop分布式文件系统,解决机器怎么存储 海量数据的分析(MapReduce) ----分布的计算模型,解决机器怎么干活,区分主从 资源管理调度(YARN) ---另

Google MapReduce/GFS/BigTable三大技术的论文中译版

今天查找分布式计算的有关资料,发现Google的三大核心技术MapReduce.GFS和BigTable的论文都已经被翻译成高质量的中文,更巧的是,这三篇中译版的原发地都是CSDN的Blog.其中最新的一篇是张凌云在一个月之前发表的MapReduce论文,最早的一篇是Xu Lei发表于2005年11月的GFS论文.         这三篇论文翻译质量相当高,三位译者作出了非常了不起的.实实在在的贡献,真是应该好好感谢他们! 为了方便大家整理,我把三篇论文的地址统一列在这里: MapReduce:

hadoop分布式存储&&分布式计算

Hadoop是Lucene创始人Doug Cutting,根据Google的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统,其中包含MapReduce程序,hdfs系统等. 网方网站:http://hadoop.apache.org/ Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 下载: http://hadoop.apache.org/releases.html hadoop基于java开发的. Hadoop包括两大核心,分布式存储系统和分布式计算

大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce. mapreduce其实就是一个移动式的基于key-value形式的分布式计算框架. 其计算分为两个阶段,map阶段和reduce阶段,都是对数据的处理,由于其入门非常简单,但是若想理解其中各个环节及实现细节还是有一定程度的困难,因此我计划在本文中只是挑几个mapreduce的核心来进行分析讲解. 1.MapReduce驱动程序默认值 编写mapred

Google分布式系统三驾马车: GFS,mapreduce,Bigtable

谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]. 虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文.而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Hadoop对应Mapreduce, Hadoop Distributed File System (HDFS)对应Google fs,Hbase对应Bigtable.不过在性能上Hadoop比Google要差很多,参见

分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable

分布式系统学习必读文章!!!! 原文:http://blog.sina.com.cn/s/blog_4ed630e801000bi3.html 分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable 谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]. 虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文.而且,Yahoo资助的Hadoop也有按照这三篇论文的

[MapReduce] Google三驾马车:GFS,MapReduce和Bigtable

声明:此文转载自博客开发团队的博客,尊重原创工作.该文适合学分布式系统之前,作为背景介绍来读. 谈到分布式系统,就不得不提Google的三驾马车:Google FS[1],MapReduce[2],Bigtable[3]. 虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文.而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Hadoop对应MapReduce, Hadoop Distributed File System (HDFS)对应Goog

Google三驾马车:GFS、MapReduce和Bigtable

谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]. 虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文.而且,Yahoo资助的Hadoop也有按照这三篇论文的开源Java实现:Hadoop对应Mapreduce, Hadoop Distributed File System (HDFS)对应Google fs,Hbase对应Bigtable.不过在性能上Hadoop比Google要差很多,参见