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的关系好像!!
分享到:
相关推荐
HDFS本身是Doug Cutting根据Google的论文(简称为GFS)来实现的,因此早期的HDFS和GFS除了实现语言不同以外,其他的操作和原理基本上一致。 HDFS本身是一个典型的主从结构,主要进程:NameNode(主进程),DataNode(从...
Google GFS架构分析.docx
google三大论文 gfs bigtable mapreduce hadoop hdfs hbase原型,学hadoop 必看
HDFS是由Doug Cutting基于Google公司2003年10月开源的论文GFS做的开源实现,发展到目前为止,HDFS的运用非常广泛,基本上很多大数据平台大部分都会选用HDFS(或者类似HDFS)这样的分布式文件系统、来作为海量数据...
人工智能-hdfs
Google的三篇论文之一 google-file-system这是Google文件系统GFS的原理,也是HDFS的实现原理。
Hadoop正是基于谷歌的mapreduce-osdi04和gfs-sosp2003这两篇论文构建起来的。
这是谷歌三驾马车之一的gfs(google file system), 非常经典的一份设计文档, 现在hadoop 的hdfs就是基于此设计的.中文版有多翻译可能曲解了原文的意思,可以英文版和中文版一起看比较好.
google filesystem 文献,非常有用的文档
简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Go
点评了HDFS/GFS,minio等技术,方便大家技术选型
6.1 Hadoop概述 6.2 HDFS 6.2.1 HDFS文件系统的原型GFS 6.2.2 HDFS文件的基本结构 6.2.3 HDFS的存储过程 6.3 MapReduce编程框架 6.3.1 MapReduce的发展历史 ...6.5.7 在Hadoop系统上运行测试程序WordCount
这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。 3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格...
BigTable:发表于2006,介绍了建立在GFS 之上的结构化数据存储系统,该系统 也是NoSql 的。Hadoop 中与之对应的是HBase Chubby:发表于2006 年,分布式锁服务系统,利用了很多现有的思想,尤其是 分布式系统中的很多...
源自Google GFS,BigTable,MapReduce 论文。 == HDFS == HDFS (Hadoop Distributed File System),Hadoop 分布式文件系统。 NameNode,HDFS命名服务器,负责与DataNode文件元信息保存。 DataNode,HDFS数据节点,负责存储...
文件系统定义:文件系统是一种存储和组织计算机数据...HDFS是Hadoop技术框架中的分布式文件系统,对部署在多台独立物理机器上的文件进行管理。可用于多种场景,如:网站用户行为数据存储。生态系统数据存储。气象数据存
HDFS是Google File System(GFS)的开源实现。 MapReduce是Google MapReduce的开源实现。 HBase是Google BigTable的开源实现。 这个分布式框架很有创造性,而且有极大的扩展性,使得Google在系统吞吐量上有很大的...
而且在不同的计算机上有很多文件服务器。 客户 CLI是否可以使用文件名称空间并获取,放置,删除(附加?)文件。 具有带有用户设置的本地文件。 老师 具有有关文件(命名空间:chunk uuid)和chunk (chunk uuid:...
Hadoop实际上就是谷歌三宝的开源实现,HadoopMapReduce对应GoogleMapReduce,HBase对应BigTable,HDFS对应GFS。HDFS(或GFS)为上层提供高效的非结构化存储服务,HBase(或BigTable)是提供结构化数据服务的分布式...
分而治之 大数据处理实现技术 —— 分布式储存系统GFS / HDFS 谷歌文件系统(GFS) 解决方案 大数据处理技术简介全文共52页,当前为第16页。 …….. 10G 1分30秒 100M/S 大数据处理实现技术 —— 分布式储存系统GFS...