突然发现的HDFS与GFS在实现上的一些不同

zz/2024/5/23 0:59:19

GFS:Google File System


HDFS:Hadoop Distribute File System

 

首先,有一点要确认的是,作为GFS的一个最重要的实现,HDFS设计目标和GFS是高度一致的。在架构、块大小、元数据等的实现上,HDFS与GFS大致一致。但是,在某些地方,HDFS与GFS又有些不同。如:

 


 

1、 快照(Snapshot):

GFS中的快照功能是非常强大的,可以非常快的对文件或者目录进行拷贝,并且不影响当前操作(读/写/复制)。GFS中生成快照的方式叫copy-on-write。也就是说,文件的备份在某些时候只是将快照文件指向原chunk,增加对chunk的引用计数而已,等到chunk上进行了写操作时,Chunk Server才会拷贝chunk块,后续的修改操作落到新生成的chunk上。

而HDFS暂时并不支持快照功能,而是运用最基础的复制来完成。想象一下,当HBase上的数据在进行重新划分时(过程类似于hash平衡),HDFS需要对其中的所有数据(P/T级的)进行复制迁移,而GFS只需要快照,多不方便!




2、 记录追加操作(append):

 

在数据一致性方面,GFS在理论上相对HDFS更加完善。

 

a) GFS提供了一个相对宽松的一致性模型。GFS同时支持写和记录追加操作。写操作使得我们可以随机写文件。记录追加操作使得并行操作更加安全可靠。

 

b) HDFS对于写操作的数据流和GFS的功能一样。但是,HDFS并不支持记录追加和并行写操作。NameNode用INodeFileUnderConstruction属性标记正在进行操作的文件块,而不关注是读还是写。DataNode甚至看不到租约!一个文件一旦创建、写入、关闭之后就不需要修改了。这样的简单模型适合于Map/Reduce编程。



3、 垃圾回收(GC)

 

a) GFS垃圾回收采用惰性回收策略,即master并不会立即回收程序所删除的文件资源。 GFS选择以一种特定的形式标记删除文件(通常是将文件名改为一个包含时间信息的隐藏名字),这样的文件不再被普通用户所访问。Master会定期对文件的命名空间进行检查,并删除一段时间前的隐藏文件(默认3天)。

 

b) HDFS并没有采用这样的垃圾回收机制,而是采取了一种更加简单但是更容易实现的直接删除方式。

 

c) 应该说延迟回收和直接删除各有优势。延迟回收为那些“不小心“的删除操作留了后路。同时,回收资源的具体操作时在Master结点空闲时候完成,对GFS的性能有很好的提高。但是延迟回收会占用很大的存储空间,假如某些可恶的用户无聊了一直创建删除文件怎么办?



 


试分析下这种不同。有人说,GFS在功能上非常完善,非常强大,而HDFS在策略上较之简单些,主要是为了有利于实现。但实际上,GFS作为存储平台早已经被广泛的部署在Google内部,存储Google服务产生或者要处理的数据,同时用于大规模数据集的研究与开发工作。因此GFS并不仅仅是理论上的研究,而是具体实现。作为GFS的后辈与开源实现,HDFS在技术上应该是更加成熟的,不可能为了“偷懒”而简化功能。因此,简化说应该是不成立的。


个人认为,GFS与HDFS的不同是由于“专”与“通”的区别。众所周知,Hadoop是一个开源软件/框架,在设计之初就考虑到了用户(面向世界上的所有个人、企业)在需求上的差异,比如数据密集型(如淘宝的数据存储)、计算密集型(百度的PR算法)、混合型等等。而GFS在设计之初就对目标比较明确,都是Google的嘛,因此GFS可以对其主要功能进行性能上的优化。

 


说到这里,突然想起了某件事。曾经某个公司的Boss吹牛B:“我不关心J2EE,实际上在大公司里面用J2EE的很少,都有自己的一些框架。测试过了,我们在用自己开发的框架时候性能就是以前用J2EE的时候的7倍左右。”唬的我一跳一跳的,好牛啊!!后来想了一下,其实不是这个公司技术比SUN要强,而是J2EE是一个开源框架,其应用范围非常广,因此不能做到面面俱到。而他们公司自己开发的框架肯定是对其主要业务逻辑方面做了专门的优化和改进,甚至删除了或者弱化了许多对他们来说作用不大的模块。


貌似这个和GFS与HDFS的关系好像!!




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://www.ngui.cc/zz/2727407.html

相关文章

在SP公司打工,服务器端技术很重要

所以,既然要做点事情,先从Tomcat开始:) 新手,不知道怎么写blog,大家看了多包涵,自己努力ing

[FW:] Writing big files to ServletOutputStream

Problem when writing big files to ServletOutputStream 转自: http://www.theserverside.com/discussions/thread.tss?thread_id29261 Posted By: Anand Rajagopal on October 06, 2004 10:18 AM I am using the following code to write files to servlet outp…

创建动态菜单的JSP自定义标签(A Custom JSP Tag Library for Dynamic Menus)

转自: http://www.onjava.com/pub/a/onjava/2003/04/09/dynamic_taglib.html

对收藏夹中AspectJ和Spring结合使用例子(What the teacher said (using AspectJ with Spring part II). )的补充

config.xml简化为&#xff1a;<?xml version"1.0" encoding"UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id"…

疑似遭到攻击,各位老大帮忙看看,手机网址之间(www.mobi123.cn)

从凌晨开始&#xff0c;来自218.5.2.250的大量奇怪的访问&#xff0c;各位老大帮忙看看是怎么回事&#xff1f; 查了一下这个ip&#xff0c;是“福建省福州市 榕基软件开发有限公司”&#xff0c;不知道是不是这个 公司自己的服务器被人黑了。 218.5.2.250 - - [05/Sep/2006:…

得罪台湾同胞的内地搜索引擎

转自&#xff1a; http://yblog.org/archive/print.php?5862 爬虫一览表&#xff1a; 没办法啊&#xff0c;不加入搜索引擎么不好&#xff0c;加入么狂搜啊&#xff0c;google也是这样。昨天晚上它扫了我一晚~郁闷&#xff0c;流量啦&#xff0c;IIS连接数什么的。还好我的…

Alexa排名新高-升4,021位(手机网址之家,www.mobi123.cn)

很多朋友越来越关注本站&#xff0c;特别是大家通过本站来玩空中 网的《异三国.Online》游戏&#xff0c;以及联通WAP上的“香艳江 湖”游戏&#xff0c;觉得做得很成功&#xff0c;也是我不断改进本站的动力。 也有一些困难&#xff0c;比如有的WAP网站觉得这样对自己的内容…

Alexa排名新高-升776位(手机网址之家,www.mobi123.cn)

很多朋友越来越关注本站&#xff0c;特别是大家通过本站来玩空中 网的《异三国.Online》游戏&#xff0c;以及联通WAP上的“香艳江 湖”游戏&#xff0c;很多网友通过悟空搜索搜到了自己喜欢的铃音 &#xff0c;这些觉得做得很成功&#xff0c;也是我不断改进本站的动力。 也…

DotNetNuke 5.1.x升级简单方便

1、下载upgrade升级包 2、讲升级包覆盖以前的安装包&#xff0c;我使用了beyond compare进行仔细比较覆盖 3、访问/install/index.aspx&#xff0c;dnn会自动升级 很方便吧。

MSN 9.0 同时登陆多个账号

From:http://kevinzhou.org/2009/01/23/msn-90-%E5%90%8C%E6%97%B6%E7%99%BB%E9%99%86%E5%A4%9A%E4%B8%AA%E8%B4%A6%E5%8F%B7/ 最近升级了MSN9.0&#xff0c;但是以前用的MSN Shell和Messenger Plus等支持多个账号登陆的第三方软件都不支持9.0。网上试了很多方法都不行&#xf…