分布式文件存储方案_第1页
分布式文件存储方案_第2页
分布式文件存储方案_第3页
分布式文件存储方案_第4页
分布式文件存储方案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1DFS系统(DFS) 是AFS的一个版本,作为 HYPERLINK /view/770031.htm t _blank 开放软件基金会(OSF)的分布分布式文件系统式计算环境(DCE)中的文件系统部分。如果文件的访问仅限于一个用户,那么分布式文件系统就很容易实现。可惜的是,在许多网络环境中这种限制是不现实的,必须采取 HYPERLINK /view/1672732.htm t _blank 启启启离并发控离制来实现文件的多用户访问,表现为如下几个形式:只读共享 任何客户机只能访问文件,而不能修改它,这实现起来很简单。受控写操作 采用这种方法,可有多个用户打开一个文件,但只有一个用户进行写修改

2、。而该用户所作的修改并不一定出现在其它已打开此文件的用户的屏幕上。并发写操作 这种方法允许多个用户同时读写一个文件。但这需要操作系统作大量的监控工作以防止文件重写,并保证用户能够看到最新信息。这种方法即使实现得很好,许多环境中的处理要求和 HYPERLINK /view/538641.htm t _blank 离离离离离离离离剩剩剩剩剩剩剩剩剩剩剩剩袭袭袭网络通信量也可能使它变得不可接受。NFS和AFS的区别NFS和AFS的区别在于对并发写操作的处理方法上。当一个客户机向服务器请求一个文件(或数据库记录),文件被放 在客户工作站的高速缓存中,若另一个用户也请求同一文件,则它也会被放入那个客户工

3、作站的高速缓存中。当两个客户都对文件进行修改时,从技术上而言就存在 着该文件的三个版本(每个客户机一个,再加上服务器上的一个)。有两种方法可以在这些版本之间保持同步:无状态系统 在这个系统中,服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。这种方法在大 的环境中会产生额外的LAN通信开销,但对小型LAN来说,这是一种令人满意的方法。NFS就是个无状态系统。回呼(Callback)系统 在这种方法中,服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用一种叫回叫应答 (cal

4、lbackpromise)的技术通知其它客户机。这种方法减少了大量网络通信。AFS(及OSFDCE的DFS)就是回叫系统。客户机改变文件 时,持有这些文件拷贝的其它客户机就被回叫并通知这些改变。无状态操作在运行性能上有其长处,但AFS通过保证不会被回叫应答充斥也达到了这一点。方法是在一定时间后取消回叫。客户机检查回叫应答中的时间期限以保证回叫应答是当前有效的。回叫应答的另一个有趣的特征是向用户保证了文件的当前有效性。换句话说,若一个被 HYPERLINK /view/907.htm t _blank 袭袭袭袭责责责责责责责责责责责责言言言言言言言言言言言言狱狱狱狱狱狱狱狱狱狱狱狱绣绣绣绣绣绣绣

5、绣绣绣绣绣只只只只只只缓存的文件有一个回叫应答,则客户机就认为文件是当前有效的,除非服务器呼叫指出服务器上的该文件已改变了。只只只只数据软只件YonghongZ-允Data MartYonghong Data Mart是一款数据存储、数据处理的软件。Yonghong Data Mart采用基于ZDFS的分布式列存储系统,就是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器 成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负 荷,利用位置服务器定位存储信息

6、,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。Yonghong Data Mart的分布式文件存储系统 (ZDFS)是在Hadoop HDFS基础上进行的改造和扩展,将服务器集群内所有节点上存储的文件统一管理和存储。这些节点包括唯一的一个NamingNode,在 ZDFS 内部提供元数据服务;许多MapNode,提供存储块。存储在 ZDFS 中的文件被分成块,然后将这些块复制到多个计算机中(Map Node)。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。Naming Node监控存在服务器集群内所有节点上的文件操作,例如文件创建、删除、移动、

7、重命名等等。Network File System允允允允允允韵韵韵韵韵韵韵韵韵韵韵韵岳依依依依依依依依依依依夷轧轧轧轧轧轧轧轧轧轧轧运墟墟2NFS介绍NFS墟定义(NFS)(Network File System)是个分布式的客户机/服务器文件系统。NFS的实质在于用户间计算机的共享。用户可以联结到共享计算机并像访问本地硬盘一样访问共享计算机上的文件。 HYPERLINK /view/315045.htm t _blank 墟墟墟墟蚤蚤蚤蚤蚤蚤蚤蚤蚤管理员可以建立远程系统上文件的访问,以至于用户感觉不到他们是在访问远程文件。NFS是个到处可用和广泛实现的 HYPERLINK /view/11

8、71987.htm t _blank 蚤蚤夜夜夜夜夜夜夜夜开放式系统。NF夜S设计目标允许用户象访问本地文件一样访问其他系统上的文件。提供对 HYPERLINK /view/51922.htm t _blank 援援援援隅隅隅无隅盘工作站的支持以降低网络开销。简化应用程序对远程文件的访问使得不需要因访问这些文件而调用特殊的过程。使用一次一个服务请求以使系统能从已崩溃的服务器或工作站上恢复。采用安全措施保护文件免遭偷窃与破坏。使NFS协议可移植和简单,以便它们能在许多不同计算机上实现,包括低档的PC机。 HYPERLINK /view/532176.htm t _blank 隅隅椅椅椅椅椅椅椅椅

9、椅椅椅椅徐徐大型徐计算机、 HYPERLINK /view/532177.htm t _blank 徐徐徐徐徐小型计算徐机和 HYPERLINK /view/566090.htm t _blank 徐杖杖杖杖文件服务器运行NFS时,都为多个用户提供了一个文件存储区。工作站只需要运行TCP/IP协议来访问这些系统和位于NFS存储区内的文件。工作站上的NFS通常由TCP/IP软件支持。对DOS用户,一个远程NFS文件存储区看起来是另一个 HYPERLINK /view/325542.htm t _blank 杖杖杖杖杖杖杖须须须须须须须须磁盘驱动器盘符。对Macintosh用户,远程NFS文件存储

10、区就是一个图标。须须须NFS部分功厌能服务器目录共享 服务器广播或通知正在共享的目录,一个共享目录通常叫做出版或出口目录。有关共享目录和谁可访问它们的信息放在一个文件中,由操作系统启动时读取。客户机访问 在共享目录上建立一种链接和访问文件的过程叫做装联(mounting),用户将网络用作一条通信链路来访问远程文件系统。NFS的一个重要组成是 HYPERLINK /view/671797.htm t _blank 厌厌厌厌厌厌厌厌袖袖袖袖袖袖袖袖袖袖虚拟文件系统(VFS),它是应用程序与低层文件系统间的接口。袖烛3VFS操烛作close文件关闭操作create 文件生成操作fsync将改变保存到

11、文件中getattr 取文件属性link 用另一个名字访问一个文件lookup 读目录项mkdir建立新目录open 文件打开操作rdwr 文件读写操作remove 删除一个文件rename 文件改名rmdir删除一目录setattr 设置文件属性烛烛烛烛烛烛蛀欲欲欲欲欲欲4AFS服务器Andrew File System(AFS) HYPERLINK /view/3477785.htm t _blank 欲欲欲欲墟墟墟墟Andrew文件系墟统(AFS)AFS是专门为在大型分布式环境中提供可靠的文件服务而设计的。它通过基于单元的结构生成一种可管理的分布式环境。一个单元是某个独立区域中 HYPE

12、RLINK /view/566090.htm t _blank 墟墟墟墟墟酗酗酗酗酗酗文件服务器和客户机系统的集合,这个独立区域由特定的机构管理。通常代表一个组织的计算资源。用户可以和同一单元中其他用户方便地共享信息,他们也可以和其他单元内的用户共享信息,这取决于那些单元中的机构所授予的访问权限。 HYPERLINK /view/566090.htm t _blank 酗酗酗酗液液液液液液液液液液文件服务器进程 这个进程响应客户工作站对文件服务的请求,维护目录结构,监控文件和目录状态信息,检查用户的访问。基本监察(BOS)服务器进程 这个进程运行于有BOS设定的服务器。它监控和管理运行其他服务

13、的进程并可自动重启服务器进程,而不需人工帮助。卷宗服务器进程 此进程处理与卷宗有关的文件系统操作,如卷宗生成、移动、复制、 HYPERLINK /view/235162.htm t _blank 灿灿灿灿灿灿灿灿灿灿灿灿诚诚诚诚诚诚诚备份和恢复。卷宗定位服务器进程 该进程提供了对文件卷宗的 HYPERLINK /view/3861749.htm t _blank 诚诚诚诚吵吵吵吵位置透明性。即使卷宗被移动了,用户也能访问它而不需要知道卷宗移动了。鉴别服务器进程 此进程通过授权和相互鉴别提供网络安全性。用一个“鉴别服务器”维护一个存有口令和加密密钥的鉴别数据库,此系统是基于Kerberos的。保

14、护服务器进程 此进程基于一个保护数据库中的访问信息,使用户和组获得对文件服务的访问权。更新服务器进程 此进程将AFS的更新和任何配置文件传播到所有AFS服务器。AFS还配有一套用于差错处理,系统备份和AFS分布式文件系统管理的实用工具程序。例如,SCOUT定期探查和收集AFS HYPERLINK /view/566090.htm t _blank 吵吵吵吵膏膏膏膏膏膏膏膏膏膏膏膏感扶扶扶扶扶扶扶扶文扶件服务器的信息。信息在给定格式的屏幕上提供给 HYPERLINK /view/315045.htm t _blank 娟吵吵吵吵吵吵管理员。设置多种阈值向管理者报告一些将发生的问题,如磁盘空间将用

15、完等。另一个工具是USS,可创建基于带有字段常量模板的 HYPERLINK /view/761571.htm t _blank 吵吵吵吵吵匙匙匙匙匙用户帐户。Ubik提供数据库复制和同步服务。一个复制的数据库是一个其信息放于多个位置的系统以便于 HYPERLINK /view/119278.htm t _blank 匙匙匙匙匙匙吵吵吵本地用吵户更方便地访问这些数据信息。同步机制保证所有数据库的信息是一致的。吵吵5KA吵SS分布式文件系统KAS赣S分布式文件系统(Kas赣sFile Syste赣m), 简称KFS,是开赣始软件有限公司自主研发的赣具有业内先进水平的分布式赣文件服务系统。KFS系统

16、赣架构及功能服务类似于Ha赣doop、GFS等分布式赣文件系 统,它通过HTT赣P-WEB为上层应用系统帮(KASS文档管理系统及帮其他各种应用系统)提供底帮层文件服务为企业快速搭建帮云文件服务平台。KFS的核心价值帮为上层IT应用系屯统提供统一的底层文件服务屯平台文件存储服务(分布式屯存储/海量存储/多副本存屯储/ 多版本存储/CDN屯广域网传输加速/断点续传屯)文件处理服务(全文搜索屯/在线预览/格式转换/P屯DF处理/ 图片处理/视破频播放/水印签章等)服务破器集群,系统线性扩展(存破储量/并发性/IO吞吐量破等)KFS为应用系统提供的文件服务破KFS为KASS文档管理系统提供云文件服务

17、馅馅6GFS分布式文件系馅统为保证高可用、高可靠和馅经济性,云计算采用分布式呜存储的方式来存储数据,采呜用冗余存储的方式来保证存呜储数据的可靠性,即为同一呜份数据存储多个副本。另外呜,云计算系统需要同时满足呜大量用户的需求,并行地为呜大量用户提供服务。因此,呜云计算的数据存储技术必须呜具有高吞吐率和高传输率的锑特点。云计算系统由大量服锑务器组成,同时为大量用户锑服务,因此云计算系统采用锑分布式存储的方式存储数据锑,用冗余存储的方式保证数锑据的可靠性。云计算系统中锑广泛使用的数据存储系统是锑Google的GFS和H锑adoop团队开发的GF锑S的开源实现HDFS。G瓤FS即Google文件系瓤统

18、(Google Fil瓤e System),是一瓤个可扩展的分布式文件系统瓤,用于大型的、分布式的对瓤大量数据进行访问的应用。瓤GFS的设计思想不同于传瓤统的文件系统,是针对大规瓤模数据处理和Googl瓤e应用特性而设计的。它运速行于廉价的普通硬件上,但速可以提供容错功能。它可以速给大量的用户提供总体性能速较高的服务。云计算的数据速存储技术未来的发展将集中速在超大规模的数据存储、数速据加密和安全性保障以及继速续提高I/O速率等方面。速GFS是一个管理大型分布速式数据密集型计算的可扩展篱的分布式文件系统,它使用篱廉价的商用硬件搭建系统并篱向大量用户提供容错的高性篱能的服务。GFS和普通的妹分布式

19、文件系统的区别如表泣1所示。表1 GFS与传泣统分布式文件系统的区别G泣FS系统由一个Maste泣r和大量块服务器构成。M泣aster存放文件系统的泣所有元数据包括名字空间、泣存取控制、文件分块信息、泣文件块的位置信息等。GF泣S中的文件切分为64 M泣B的块进行存储。在GFS尿文件系统中,采用冗余存储尿的方式来保证数据的可靠性尿。每份数据在系统中保存3尿个以上的备份。为了保证数尿据的一致性,对于数据的所尿有修改需要在所有的备份上尿进行,并用版本号的方式来尿确保所有备份处于一致的状尿态。客户端不通过Mast宁er读取数据,避免了大量宁读操作使Master成为宁系统瓶颈。客户端从Mas宁ter获

20、取目标数据块的位宁置信息后,直接和块服务器宁交互进行读操作。GFS的宁写操作将写操作控制信号和宁数据流分开,如图1 所示宁。即 客户端在获取Mas宁ter的写授权后,将数据题传输给所有的数据副本,在题所有的数据副本都收到修改题的数据后,客户端才发出写题请求控制信号。在所有的数题据副本 更新完数据后,由题主副本向客户端发出写操作题完成控制信号。当然,云计题算的数据存储技术并不仅仅题只是GFS,其他IT厂商题,包括微软、Hadoop僧开发团队 也在开发相应的僧数据管理工具。其本质上是僧一种分布式的数据存储技术僧,以及与之相关的虚拟化技僧术,对上层屏蔽具体的物理僧存储器的位置、信息等。快僧速的数据定

21、 位、数据安全僧性、数据可靠性以及底层设僧备内存储数据量的均衡等方僧面都需要继续研究完善。7鳃Hadoop分布式文件系鳃统 Hadoop分布式文件系统(鳃HDFS)被设计成适合运行在通用硬 件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高 度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实 现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础

22、架构而开发的。HDFS是Apache Hadoop Core项目的一部分。鳃鳃鳃穷穷穷穷穷穷穷穷穷穷穷穷离离离离离离离前提和设计目标硬件错误硬离件错误是常态而不是异常。离HDFS可能由成百上千的离服务器所构成,每个服务器棱上存储着文件系统的部分数瘤据。我们面对的现实是构成瘤系统的组件数目是巨大的,瘤而且任一组件都有可能失效瘤,这意味着总是有一部分H瘤DFS的组件是不工作的。瘤因此错误检测和快速、自动瘤的恢复是HDFS最核心的瘤架构目标。流式数据访问运瘤行在HDFS上的应用和普立通的应用不同,需要流式访立问它们的数据集。HDFS立的设计中更多的考虑到了数立据批处理,而不是用户交互立处理。比之数据

23、访问的低延立迟问题,更关键的在于数据立访问的高吞吐量。POSI立X标准设置的很多硬性约束立对HDFS应用系统不是必立需的。为了提高数据的吞吐立量,在一些关键方面对PO立SIX的语义做了一些修改泣。大规模数据集运行在HD泣FS上的应用具有很大的数泣据集。HDFS上的一个典泣型文件大小一般都在G字节泣至T字节。因此,HDFS泣被调节以支持大文件存储。泣它应该能提供整体上高的数泣据传输带宽,能在一个集群泣里扩展到数百个节点。一个泣单一的HDFS实例应该能泣支撑数以千万计的文件。简屯单的一致性模型HDFS应屯用需要一个“一次写入多次屯读取”的文件访问模型。一屯个文件经过创建、写入和关屯闭之后就不需要改

24、变。这一识假设简化了数据一致性问题嵌,并且使高吞吐量的数据访嵌问成为可能。Map/Re嵌duce应用或者网络爬虫嵌应用都非常适合这个模型。嵌目前还有计划在将来扩充这嵌个模型,使之支持文件的附嵌加写操作。“移动计算比移嵌动数据更划算”一个应用请嵌求的计算,离它操作的数据嵌越近就越高效,在数据达到瘸海量级别的时候更是如此。瘸因为这样就能降低网络阻塞瘸的影响,提高系统数据的吞瘸吐量。将计算移动到数据附瘸近,比之将数据移动到应用瘸所在显然更好。HDFS为瘸应用提供了将它们自己移动瘸到数据附近的接口。异构软瘸硬件平台间的可移植性HD瘸FS在设计的时候就考虑到瘸平台的可移植性。这种特性啮方便了HDFS作为

25、大规模啮数据应用平台的推广。Na啮menode 和 Dat啮anodeHDFS采用m啮aster/slave架啮构。一个HDFS集群是由啮一个Namenode和一题定数目的Datanode题s组成。Namenode题是一个中心服务器,负责管题理文件系统的名字空间(n题amespace)以及客题户端对文件的访问。集群中题的Datanode一般是题一个节点一个,负责管理它题所在节点上的存储。HDF题S暴露了文件系统的名字空破间,用户能够以文件的形式破在上面存储数据。从内部看破,一个文件其实被分成一个破或多个数据块,这些块存储破在一组Datanode上破。Namenode执行文破件系统的名字空间操作

26、,比破如打开、关闭、重命名文件破或目录。它也负责确定数据破块到具体Datanode填节点的映射。Datano填de负责处理文件系统客户填端的读写请求。在Name填node的统一调度下进行填数据块的创建、删除和复制填。HDFS 架构Name填node和Datanod水e被设计成可以在普通的商水用机器上运行。这些机器一水般运行着GNU/Linu水x操作系统(OS)。HD水FS采用Java语言开发水,因此任何支持Java的水机器都可以部署Namen水ode或Datanode水。由于采用了可移植性极强迂的Java语言,使得HD迂FS可以部署到多种类型的迂机器上。一个典型的部署场迂景是一台机器上只运行一

27、个迂Namenode实例,而迂集群中的其它机器分别运行迂一个Datanode实例迂。这种架构并不排斥在一台迂机器上运行多个Datan有ode,只不过这样的情况许比较少见。集群中单一Na许menode的结构大大简许化了系统的架构。Name许node是所有HDFS元许数据的仲裁者和管理者,这许样,用户数据永远不会流过许Namenode。文件系只统的名字空间 (name只space)HDFS支持只传统的层次型文件组织结构只。用户或者应用程序可以创只建目录,然后将文件保存在只这些目录里。文件系统名字只空间的层次结构和大多数现只有的文件系统类似:用户可只以创建、删除、移动或重命只名文件。当前,HDFS不

28、只支持用户磁盘配额和访问权允限控制,也不支持硬链接和允软链接。但是HDFS架构允并不妨碍实现这些特性。N允amenode负责维护文允件系统的名字空间,任何对允文件系统名字空间或属性的允修改都将被Namenod允e记录下来。应用程序可以鱼设置HDFS保存的文件的鱼副本数目。文件副本的数目鱼称为文件的副本系数,这个鱼信息也是由Namenod鱼e保存的。数据复制HDF鱼S被设计成能够在一个大集鱼群中跨机器可靠地存储超大鱼文件。它将每个文件存储成鱼一系列的数据块,除了最后渝一个,所有的数据块都是同游样大小的。为了容错,文件游的所有数据块都会有副本。游每个文件的数据块大小和副游本系数都是可配置的。应用游

29、程序可以指定某个文件的副游本数目。副本系数可以在文游件创建的时候指定,也可以游在之后改变。HDFS中的游文件都是一次性写入的,并游且严格要求在任何时候只能永有一个写入者。Namen虚ode全权管理数据块的复虚制,它周期性地从集群中的虚每个Datanode接收虚心跳信号和块状态报告(B虚lockreport)。虚接收到心跳信号意味着该D绣atanode节点工作正庸常。块状态报告包含了一个庸该Datanode上所有庸数据块的列表。HDFS庸Datanodes副本存庸放: 最最开始的一步副本庸的存放是HDFS可靠性和庸性能的关键。优化的副本存蛰放策略是HDFS区分于其蛰他大部分分布式文件系统的蛰重要

30、特性。这种特性需要做蛰大量的调优,并需要经验的蛰积累。HDFS采用一种称蛰为机架感知(rack-a蛰ware)的策略来改进数蛰据的可靠性、可用性和网络蛰带宽的利用率。目前实现的蛰副本存放策略只是在这个方蛰向上的第一步。实现这个策蛰略的短期目标是验证它在生艺产环境下的有效性,观察它艺的行为,为实现更先进的策艺略打下测试和研究的基础。艺大型HDFS实例一般运行艺在跨越多个机架的计算机组艺成的集群上,不同机架上的艺两台机器之间的通讯需要经艺过交换机。在大多数情况下艺,同一个机架内的两台机器艺间的带宽会比不同机架的两艺台机器间的带宽大。通过一立个机架感知的过程,Nam立enode可以确定每个D立ata

31、node所属的机架立id。一个简单但没有优化立的策略就是将副本存放在不立同的机架上。这样可以有效立防止当整个机架失效时数据莲的丢失,并且允许读数据的觅时候充分利用多个机架的带觅宽。这种策略设置可以将副觅本均匀分布在集群中,有利觅于当组件失效情况下的负载觅均衡。但是,因为这种策略觅的一个写操作需要传输数据觅块到多个机架,这增加了写觅的代价。在大多数情况下,觅副本系数是3,HDFS的觅存放策略是将一个副本存放茸在本地机架的节点上,一个茸副本放在同一机架的另一个茸节点上,最后一个副本放在茸不同机架的节点上。这种策茸略减少了机架间的数据传输茸,这就提高了写操作的效率茸。机架的错误远远比节点的茸错误少,

32、所以这个策略不会茸影响到数据的可靠性和可用茸性。于此同时,因为数据块茸只放在两个(不是三个)不速同的机架上,所以此策略减速少了读取数据时需要的网络速传输总带宽。在这种策略下速,副本并不是均匀分布在不速同的机架上。三分之一的副速本在一个节点上,三分之二速的副本在一个机架上,其他速副本均匀分布在剩下的机架速中,这一策略在不损害数据速可靠性和读取性能的情况下速改进了写的性能。当前,这添里介绍的默认副本存放策略添正在开发的过程中。副本选添择为了降低整体的带宽消耗添和读取延时,HDFS会尽添量让读取程序读取离它最近添的副本。如果在读取程序的添同一个机架上有一个副本,添那么就读取该副本。如果一添个HDFS

33、集群跨越多个数田据中心,那么客户端也将首龙先读本地数据中心的副本。龙安全模式Namenode破启动后会进入一个称为安全破模式的特殊状态。处于安全破模式的Namenode是破不会进行数据块的复制的。破Namenode从所有的破Datanode接收心破跳信号和块状态报告。块状破态报告包括了某个Data扫node所有的数据块列表扫。每个数据块都有一个指定扫的最小副本数。当Name扫node检测确认某个数据扫块的副本数目达到这个最小扫值,那么该数据块就会被认扫为是副本安全(safel扫y replicated扫)的;在一定百分比(这个扫参数可配置)的数据块被N挝amenode检测确认是挝安全之后(加上

34、一个额外的挝30秒等待时间),Nam挝enode将退出安全模式挝状态。接下来它会确定还有挝哪些数据块的副本没有达到挝指定数目,并将这些数据块挝复制到其他Datanod棉e上。文件系统元数据的持棉久化Namenode上保棉存着HDFS的名字空间。棉对于任何对文件系统元数据屉产生修改的操作,Name屉node都会使用一种称为屉EditLog的事务日志屉记录下来。例如,在HDF屉S中创建一个文件,Nam屉enode就会在Edit屉log中插入一条记录来表泪示;同样地,修改文件的副泪本系数也将往Editlo泪g插入一条记录。Name泪node在本地操作系统的泪文件系统中存储这个Edi泪tlog。整个文

35、件系统的枣名字空间,包括数据块到文枣件的映射、文件的属性等,枣都存储在一个称为FsIm枣age的文件中,这个文件枣也是放在Namenode枣所在的本地文件系统上。N浇amenode在内存中保浇存着整个文件系统的名字空浇间和文件数据块映射(Bl浇ockmap)的映像。这浇个关键的元数据结构设计得浇很紧凑,因而一个有4G内浇存的Namenode足够浇支撑大量的文件和目录。当揪Namenode启动时,揪它从硬盘中读取Editl揪og和FsImage,将揪所有Editlog中的事揪务作用在内存中的FsIm揪age上,并将这个新版本揪的FsImage从内存中法保存到本地磁盘上,然后删法除旧的Editlo

36、g,因法为这个旧的Editlog法的事务都已经作用在FsI法mage上了。这个过程称法为一个检查点(check法point)。在当前实现法中,检查点只发生在Nam拂enode启动时,在不久拂的将来将实现支持周期性的拂检查点。Datanode拂将HDFS数据以文件的形拂式存储在本地的文件系统中拂,它并不知道有关HDFS拂文件的信息。它把每个HD拂FS数据块存储在本地文件拂系统的一个单独的文件中。非Datanode并不在同格一个目录创建所有的文件,格实际上,它用试探的方法来格确定每个目录的最佳文件数格目,并且在适当的时候创建斧子目录。在同一个目录中创斧建所有的本地文件并不是最斧优的选择,这是因为本

37、地文爆件系统可能无法高效地在单爆个目录中支持大量的文件。爆当一个Datanode启爆动时,它会扫描本地文件系爆统,产生一个这些本地文件爆对应的所有HDFS数据块爆的列表,然后作为报告发送爆到Namenode,这个爆报告就是块状态报告。通讯膊协议所有的HDFS通讯协膊议都是建立在TCP/IP膊协议之上。客户端通过一个膊可配置的TCP端口连接到膊Namenode,通过C膊lientProtoco膊l协议与Namenode膊交互。而Datanode尽使用DatanodePr尽otocol协议与Nam尽enode交互。一个远程尽过程调用(RPC)模型被尽抽象出来封装Client尽Protocol和Da

38、t尽anodeprotoco尽l协议。在设计上,Nam款enode不会主动发起R款PC,而是响应来自客户端款或Datanode的款RPC请求。健壮性HDF款S的主要目标就是即使在出款错的情况下也要保证数据存款储的可靠性。常见的三种出款错情况是:Namenod技e出错, Datanod技e出错和网络割裂(net技work partiti技ons)。磁盘数据错误,技心跳检测和重新复制每个D技atanode节点周期性篡地向Namenode发送篡心跳信号。网络割裂可能导篡致一部分Datanode篡跟Namenode失去联篡系。Namenode通过篡心跳信号的缺失来检测这一篡情况,并将这些近期不再发篡送

39、心跳信号Datanod节e标记为宕机,不会再将新节的IO请求发给它们。任何节存储在宕机Datanod节e上的数据将不再有效。D节atanode的宕机可能节会引起一些数据块的副本系节数低于指定值,Namen节ode不断地检测这些需要溅复制的数据块,一旦发现就溅启动复制操作。在下列情况溅下,可能需要重新复制:某溅个Datanode节点失溅效,某个副本遭到损坏,D溅atanode上的硬盘错溅误,或者文件的副本系数增溅大。集群均衡HDFS的架缎构支持数据均衡策略。如果缎某个Datanode节点缎上的空闲空间低于特定的临缎界点,按照均衡策略系统就缎会自动地将数据从这个Da缎tanode移动到其他空缎闲的

40、Datanode。当缎对某个文件的请求突然增加缎,那么也可能启动一个计划娟创建该文件新的副本,并且娟同时重新平衡集群中的其他娟数据。这些均衡策略目前还娟没有实现。数据完整性从某娟个Datanode获取的娟数据块有可能是损坏的,损娟坏可能是由Datanod娟e的存储设备错误、网络错撅误或者软件bug造成的。膊HDFS客户端软件实现了膊对HDFS文件内容的校验膊和(checksum)检膊查。当客户端创建一个新的膊HDFS文件,会计算这个膊文件每个数据块的校验和,膊并将校验和作为一个单独的膊隐藏文件保存在同一个HD膊FS名字空间下。当客户端膊获取文件内容后,它会检验膊从Datanode获取的构数据跟

41、相应的校验和文件中构的校验和是否匹配,如果不构匹配,客户端可以选择从其构他Datanode获取该构数据块的副本。元数据磁盘构错误FsImage和Ed躬itlog是HDFS的核躬心数据结构。如果这些文件躬损坏了,整个HDFS实例躬都将失效。因而,Name躬node可以配置成支持维躬护多个FsImage和E躬ditlog的副本。任何肚对FsImage或者Ed肚itlog的修改,都将同肚步到它们的副本上。这种多肚副本的同步操作可能会降低肚Namenode每秒处理肚的名字空间事务数量。然而肚这个代价是可以接受的,因肚为即使HDFS的应用是数肚据密集的,它们也非元数据肚密集的。当Namenod杜e重启的

42、时候,它会选取最杜近的完整的FsImage杜和Editlog来使用。杜Namenode是HDF杜S集群中的单点故障(si杜ngle point o杜f failure)所在杜。如果Namenode机妨器故障,是需要手工干预的妨。目前,自动重启或在另一妨台机器上做Namenod妨e故障转移的功能还没实现妨。快照快照支持某一特定时妨刻的数据的复制备份。利用妨快照,可以让HDFS在数妨据损坏时恢复到过去一个已非知正确的时间点。HDFS魁目前还不支持快照功能,但魁计划在将来的版本进行支持魁。数据组织数据块HDFS魁被设计成支持大文件,适用魁HDFS的是那些需要处理魁大规模的数据集的应用。这魁些应用都是

43、只写入数据一次魁,但却读取一次或多次,并魁且读取速度应能满足流式读父取的需要。HDFS支持文父件的“一次写入多次读取”父语义。一个典型的数据块大父小是64MB。因而,HD父FS中的文件总是按照64父M被切分成不同的块,每个父块尽可能地存储于不同的D父atanode中。Sta父ging客户端创建文件的蓖请求其实并没有立即发送给蓖Namenode,事实上蓖,在刚开始阶段HDFS客蓖户端会先将文件数据缓存到蓖本地的一个临时文件。应用蓖程序的写操作被透明地重定蓖向到这个临时文件。当这个蓖临时文件累积的数据量超过蓖一个数据块的大小,客户端蓖才会联系Namenode较。Namenode将文件较名插入文件系

44、统的层次结构较中,并且分配一个数据块给较它。然后返回Datano较de的标识符和目标数据块较给客户端。接着客户端将这较块数据从本地临时文件上传较到指定的Datanode较上。当文件关闭时,在临时晶文件中剩余的没有上传的数晶据也会传输到指定的Dat晶anode上。然后客户端晶告诉Namenode文件晶已经关闭。此时Namen晶ode才将文件创建操作提晶交到日志里进行存储。如果晶Namenode在文件关吼闭前宕机了,则该文件将丢吼失。上述方法是对在HDF吼S上运行的目标应用进行认吼真考虑后得到的结果。这些吼应用需要进行文件的流式写吼入。如果不采用客户端缓存吼,由于网络速度和网络堵塞吼会对吞估量造成

45、比较大的影吼响。这种方法并不是没有先尝例的,早期的文件系统,比尝如AFS,就用客户端缓存尝来提高性能。为了达到更高微的数据上传效率,已经放松立了POSIX标准的要求。立流水线复制当客户端向HD立FS文件写入数据的时候,立一开始是写到本地临时文件立中。假设该文件的副本系数立设置为3,当本地临时文件立累积到一个数据块的大小时立,客户端会从Nameno园de获取一个Datano园de列表用于存放副本。然园后客户端开始向第一个Da园tanode传输数据,第园一个Datanode一小园部分一小部分(4 KB)源地接收数据,将每一部分写增入本地仓库,并同时传输该增部分到列表中第二个Dat增anode节点。第二个D增atanode也是这样,增一小部分一小部分地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论