百科问答小站 logo
百科问答小站 font logo



Bigtable 具体是怎样一个东西?和 MapReduce, GFS 之间的关系是什么? 第1页

  

user avatar   proflin 网友的相关建议: 
      

Hadoop是很多组件的集合,主要包括但不限于MapReduce,HDFS,HBase,ZooKeeper。MapReduce模仿了Google MapReduce,HDFS模仿了Google File System,HBase模仿了Google BigTable,ZooKeeper或多或少模仿了Google Chubby(没有前3个出名),所以下文就只提MapReduce、HDFS、HBase、ZooKeeper吧。


简单来讲,

  • HDFS和HBase是依靠外存(即硬盘)的分布式文件存储实现和分布式表存储实现。HDFS是一个分布式的“云存储”文件系统,它会把一个文件分块并分别保存,取用时分别再取出、合并。重要的是,这些分块通常会在3个节点(即集群内的服务器)上各有1个备份,因此即使出现少数节点的失效(如硬盘损坏、掉电等),文件也不会失效。如果说HDFS是文件级别的存储,那HBase则是表级别的存储。HBase是表模型,但比SQL数据库的表要简单的多,没有连接、聚集等功能。HBase的表是物理存储到HDFS的,比如把一个表分成4个HDFS文件并存储。由于HDFS级会做备份,所以HBase级不再备份。
  • MapReduce则是一个计算模型,而不是存储模型;MapReduce通常与HDFS紧密配合。举个例子:假设你的手机通话信息保存在一个HDFS的文件callList.txt中,你想找到你与同事A的所有通话记录并排序。因为HDFS会把callLst.txt分成几块分别存,比如说5块,那么对应的Map过程就是找到这5块所在的5个节点,让它们分别找自己存的那块中关于同事A的通话记录,对应的Reduce过程就是把5个节点过滤后的通话记录合并在一块并按时间排序。MapReduce的计算模型通常把HDFS作为数据来源,很少会用到其它数据来源比如HBase。
  • ZooKeeper本身是一个非常牢靠的记事本,用于记录一些概要信息。Hadoop依靠这个记事本来记录当前哪些节点正在用,哪些已掉线,哪些是备用等,以此来管理机群。

相比较而言,

  • Storm本身主要是一个分布式环境下的实时数据计算模型,没有外存存储部分。Storm的应用场景是,数据来的特别快、并且要求随来随处理。比如Twitter服务器自身每秒收到来自全世界的推能达几千条,并且要求收到后还需立即索引,以供查询。这用传统的方法乃至Hadoop都是比较难的,因为外存的使用会带来较大的延迟,这时可以用Storm。Storm节点对内存中的数据进行操作,然后流出数据到下一个节点,以此来维系节点间的协作、达到高速协同处理。
  • Storm有一个总的控制节点Nimbus来与ZooKeeper交流、进行集群管理。
  • Storm还没有做到数据备份,这是它的不足(2013年Update: 较新的Storm已引入了类事务的概念,会有重做的操作来保证数据的处理)。

所以,Hadoop和Storm都是分布式环境下的计算平台,不过前者依赖外存,适应批处理情形,后者依赖内存,适应实时处理、超低延迟、无需大量存储数据情形。前类出现的时间较早(03年GFS的论文),后类出现的时间较晚(10年Yahoo! S4的论文)。我不大赞同“Storm改进了Hadoop的缺点”的说法——这种说法有点像“轮船改进了汽车的哪些缺点”——因为它们本身即不太同类。Storm和Hadoop有很多相似也有很多区别,适用的场景是不一样的,主要取决于使用者自己的需求。

*上面很多叙述方法是为了读者的更好理解,不尽完全准确,比如HBase是有内存缓冲机制的,并非只依赖外存,再比如Nimbus实质上是某个节点上的守护进程,而非节点本身。

最终,关于这几者各自具体是什么,我的建议是读下列论文:

  • 2003 The Google file system
  • 2005 MapReduce: Simplified data processing on large clusters
  • 2008 TheBigtable: A distributed storage system for structured data Google file system
  • 2010 S4: distributed stream computing platform
  • 2011 Fast Crash Recovery in RAMCloud

和Storm的主页:

nathanmarz/storm · GitHub

中wiki的Rational页。




  

相关话题

  在中国大陆访问速度最快、最稳定的境外web服务器是什么? 
  大学生适合购买阿里云服务器哪个产品? 
  如何看待沈逸对 Cloudflare 发表的争议性言论? 
  云主机商 会不会偷我的代码? 
  Bigtable 具体是怎样一个东西?和 MapReduce, GFS 之间的关系是什么? 
  Bigtable 具体是怎样一个东西?和 MapReduce, GFS 之间的关系是什么? 
  阿里云、腾讯云、百度云、京东云、华为云、盛大云、ucloud他们之间优势分别是? 
  闲置的云服务器能用来干什么? 
  如何充分利用腾讯云的1元学生服务器? 
  Bigtable 具体是怎样一个东西?和 MapReduce, GFS 之间的关系是什么? 

前一个讨论
如果只把有用的基因拼接起来,会变成什么样?
下一个讨论
美国黑奴与西藏农奴谁过得更加民主,更加自由?





© 2025-04-26 - tinynew.org. All Rights Reserved.
© 2025-04-26 - tinynew.org. 保留所有权利