Hadoop分布式文件系统-架构和设计要点翻译_第1页
Hadoop分布式文件系统-架构和设计要点翻译_第2页
Hadoop分布式文件系统-架构和设计要点翻译_第3页
Hadoop分布式文件系统-架构和设计要点翻译_第4页
Hadoop分布式文件系统-架构和设计要点翻译_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、Hadoop分布式文件系统:架构和设计要点(翻译一、前提和设计目标1、硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目标。2、跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。3、HDFS以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至T字节,一个单一HDFS实例应该能支撑数以千万计的文件。4、HDFS应用对文件要求的是write-one-read-many访问模型。一个文件经过创建、

2、写,关闭之后就不需要改变。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。典型的如MapReduce框架,或者一个webcrawler应用都很适合这个模型。5、移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近比之将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。6、在异构的软硬件平台间的可移植性。二、Namenod琲口DatanodeHDFS采用master/slav既构。一个HDFS集群是有一个Namenode和一定数目的Datanode组成。Namenode是一个中心服务器,负

3、责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中一般是一个节点一个,负责管理节点上它们附带的存储。在内部,一个文件其实分成一个或多个block,这些block存储在Datanode集合里。Namenode执行文件系统的namespaceft作,例如打开、关闭、重命名文件和目录,同时决定block至I具体Datanode节点的映射。Datanode在Namenode的指挥下进行block的仓建、 删除和复制。Namenode和Datanode都是设计成可以跑在普通的廉价的运行linux的机器上。HDFS采用java语言开发,因此可以部署在很大范围的机器上。一个典型

4、的部署场景是一台机器跑一个单独的Namenode节点,集群中的其他机器各跑一个Datanode实例。这个架构并不排除一台机器上跑多个Datanode不过这比较少见。单一节点的Namenode大大简化了系统的架构。Namenode负责保管和管理所有的HDFS元数据, 因而用户数据就不需要通过Namenode也就是说文件数据的读写是直接在Datanode上。三、文件系统的namespaceHDFS支持传统的层次型文件组织,与大多数其他文件系统类似,用户可以创建目录,并在其间创建、删除、移动和重命名文件。HDFS不支持userquota环口访问权限,也不支持链接(link,不过当前的架构并不排除实现

5、这些特性。真的不掉线吗??、?Namenode维护文件系统的namespaceE何对文件系统namespac等口文件属性的修改都将被Namenode记录下来。应用可以设谿HDFS保存的文件的副本数目,文件副本的数目称为文件的replication因子,这个信息也是由Namenode保存。四、数据复制HDFS被设计成在一个大集群中可以跨机器地可靠地存储海量的文件。它将每个文件存储成block序列,除了最后一个block,所有的block都是同样的大小。文件的所有block为了容错都会被复制。每个文件的block大小和replication因子都是可配谿的。Replication因子可以在文件创建

6、的时候配谿,以后也可以改变。HDFS中的文件是write-one,并且严格要求在任何时候只有一个writer。Namenode全权管理block的复制,它周期性地从集群中的每个Datanode接收心跳包和一个Blockreport0心跳包的接收表示该Datanode节点正常工作,而Blockreport包括了该Datanode上所有的block组成的列表。1、 副本的存放, 副本的存放是HDFS可靠性和性能的关键。HDFS采用一种称为rack-aware的策略来改进数据的可靠性、 有效性和网络带宽的利用。 这个策略实现的短期目标是验证在生产环境下的表现,观察它的行为,构建测试和研究的基础,以便

7、实现更先进的策略。庞大的HDFS实例一般运行在多个机架的计算机形成的集群上,不同机架间的两台机器的通讯需要通过交换机, 显然通常情况下, 同一个机架内的两个节点间的带宽会比不同机架间的两台机器的带宽大。通过一个称为RackAwareness的过程,Namenode决定了每个Datanode所属的rackid。一个简单但没有优化的策略就是将副本存放在单独的机架上。这样可以防止整个机架 (非副本存放失效的情况, 并且允许读数据的时候可以从多个机架读取。 这个简单策略设谿可以将副本分布在集群中,有利于组件失败情况下的负载均衡。但是,这个简单策略加大了写的代价,因为一个写操作需要传输block到多个机

8、架。在大多数情况下,replication因子是3,HDFS的存放策略是将一个副本存放在本地机架上的节点, 一个副本放在同一机架上的另一个节点, 最后一个副本放在不同机架上的一个节点。机架的错误远远比节点的错误少,这个策略不会影响到数据的可靠性和有效性。三分之一的副本在一个节点上,三分之二在一个机架上,其他保存在剩下的机架中,这一策略改进了写的性能。2、副本的选择,为了降低整体的带宽消耗和读延时,HDFS会尽量让reader读最近的副本。如果在reader的同一个机架上有一个副本,那么就读该副本。如果一个HDFS集群跨越多个数据中心,那么reader也将首先尝试读本地数据中心的副本。3、Saf

9、eModeNamenode启动后会进入一个称为SafeMode的特殊状态,处在这个状态的Namenode是不会进行数据块的复制的。Namenode从所有的Datanode接收心跳包和Blockreport。Blockreport包括了某个Datanode所有的数据块歹!J表。每个block者B有指定的最小数目的副本。当Namenode检测确认某个Datanode的数据块副本的最小数目,那么该Datanode就会被认为是安全的;如果一定百分比(这真的不掉线吗??、?个参数可配谿的数据块检测确认是安全的,那么Namenode将退出SafeMode状态,接下来它会确定还有哪些数据块的副本没有达到指定

10、数目,并将这些block复制至U其他Datanode五、文件系统元数据的持久化Namenode存储HDFS的元数据。 对于任何对文件元数据产生修改的操作,Namenode都使用一个称为Editlog的事务日志记录下来。例如,在HDFS中创建一个文件,Namenode就会在Editlog中插入一条记录来表示;同样,修改文件的replication因子也将往Editlog插入一条记录。Namenode在本地OS的文件系统中存储这个Editlog。整个文件系统的namespace,包括block到文件的映射、文件的属性,都存储在称为FsImage的文彳中,这个文件也是放在Namenode所在系统的文

11、件系统上。Namenode在内存中保存着整个文件系统namespaceF口文件Blockmap的映像。这个关键的元数据设计得很紧凑, 因而一个带有4G内存的Namenode足够支撑海量的文件和目录。当Namenode启动时,它从硬盘中读取Ed田og和FsImage将所有Ed田og中的事务作用(apply在内存中的FsImage并将这个新版本的FsImage从内存中flush到硬盘上然后再truncate这个旧的Ed田og,因为这个旧的Ed田og的事务都已经作用在FsImage上了。这个过程称为checkpoint。 在当前实现中,checkpoint只发生在Namenode启动时, 在不久的将

12、来我们将实现支持周期性的checkpoint。Datanode并不知道关于文件的任何东西,除了将文件中的数据保存在本地的文件系统上。它把每个HDFS数据块存储在本地文件系统上隔离的文件中。Datanode并不在同一个目录创建所有的文件,相反,它用启发式地方法来确定每个目录的最佳文件数目,并且在适当的时候创建子目录。在同一个目录创建所有的文件不是最优的选择因为本地文件系统可能无法高效地在单一目录中支持大量的文件。当一个Datanode启动时,它扫描本地文件系统,对这些本地文件产生相应的一个所有HDFS数据块的列表然后发送报告到Namenode这个报告就是Blockreport0六、通讯协议所有的

13、HDFS通讯协议都是构建在TCP/IP协议上。客户端通过一个可配谿的端口连接到Namenode通过ClientProtocol与Namenode交互。而Datanode是使用DatanodeProtocol与Namenode交互。从ClientProtocol和Datanodeprotocol抽象出一个远程调用(RPC,在设计上,Namenode不会主动发起RPC,而是是响应来自客户端和Datanode的RPC请求。七、健壮性HDFS的主要目标就是实现在失败情况下的数据存储可靠性。常见的三种失败:Namenodefailures,Datanodefailure4口网络分割(networkpar

14、titions01、硬盘数据错误、心跳检测和重新复制每个Datanode节点都向Namenode周期性地发送心跳包。网络切割可能导致一部分Datanode跟Namenode失去联系。Namenode通过心跳包的缺失检测到这一情况,并将这些Datanode标记为dead不会将新的IO请求发给它们。寄存真的不掉线吗??、?在deadDatanodek的任何数据将不再有效。Datanode的死亡可能引起一些block的副本数目低于指定值,Namenode不断地跟踪需要复制的block,在任何需要的情况下启动复制。在下列情况可能需要重新复制:某个Datanode节点失效,某个副本遭到损坏,Datano

15、de上的硬盘错误,或者文件的replication因子增大。2、集群均衡HDFS支持数据的均衡计划,如果某个Datanode节点上的空闲空间低于特定的临界点,那么就会启动一个计划自动地将数据从一个Datanode搬移到空闲的Datanode当对某个文件白4n青求突然增加, 那么也可能启动一个计划创建该文件新的副本,并分布到集群中以满足应用的要求。这些均衡计划目前还没有实现。3、数据完整性从某个Datanode获取的数据块有可能是损坏的, 这个损坏可能是由于Datanode的存储设备错误、网络错误或者软件bug造成的。HDFS客户端软彳实现了HDFS文件内容的校验和。当某个客户端创建一个新的HD

16、FS文件,会计算这个文件每个block的校验和,并作为一个单独的隐藏文件保存这些校验和在同一个HDFSnamespaceF。当客户端中索文件内容,它会确认从Datanode获取的数据跟相应的校验和文件中的校验和是否匹配,如果不匹配,客户端可以选择从其他Datanode获取该block的副本。4、元数据磁盘错误FsImage和Editlog是HDFS的核心数据结构。这些文件如果损坏了,整个HDFS实例都将失效。因而,Namenode可以配谿成支持维护多个FsImage和Editlog的拷贝。任何对FsImage或者Editlog的修改,都将同步到它们的副本上。这个同步操作可能会降低Namenod

17、e每秒能支才J处理的namespace事务。这个代价是可以接受的,因为HDFS是数据密集的,而非元数据密集。当Namenode重启的时候,它总是选取最近的一致的FsImage和Editlog使用。Namenode在HDFS是单点存在,如果Namenode所在的机器错误,手工的干预是必须的。目前,在另一台机器上重启因故障而停止服务的Namenode这个功能还没实现。5、快照快照支持某个时间的数据拷贝,当HDFS数据损坏的时候,可以恢复到过去一个已知正确的时间点。HDFS目前还不支持快照功能。八、数据组织1、数据块兼容HDFS的应用都是处理大数据集合的。这些应用都是写数据一次,读却是一次到多次,并

18、且读的速度要满足流式读。HDFS支持文件的write-once-read-many义。 一个典型的block大小是64MB,因而,文件总是按照64M切分成chunk,每个chunk存储于不同的Datanode2、步骤某个客户端创建文件的请求其实并没有立即发给Namenode事实上,HDFS客户端会将文件数据缓存到本地的一个临时文件。应用的写被透明地重定向到这个临时文件。当这个临时文件累积的数据超过一个block的大小(默认64M,真的不掉线吗??、?客户端才会联系NamenodeNamenode将文件名插入文件系统的层次结构中,并真的不掉线吗??、?且分配一个数据块给它, 然后返回Datano

19、de的标识符和目标数据块给客户端。 客户端将本地临时文件flush到指定的Datanode上。 当文件关闭时, 在临时文件中剩余的没有flush的数据也会传输到指定的Datanode然后客户端告诉Namenode文件已经关闭。此时Namenode才将文件创建操作提交到持久存储。如果Namenode在文件关闭前挂了,该文件将丢失。上述方法是对通过对HDFS上运行的目标应用认真考虑的结果。如果不采用客户端缓存,由于网络速度和网络堵塞会对吞估量造成比较大的影响。3、流水线复制当某个客户端向HDFS文件写数据的时候,一开始是写入本地临时文件,假设该文件的replication因子设谿为3,那么客户端会

20、从Namenode获取一张Datanode歹!J表来存放副本。然后客户端开始向第一个Datanode传输数据,第一个Datanode一小部分一小部分(4kb地接收数据,将每个部分写入本地仓库,并且同时传输该部分到第二个Datanode节点。第二个Datanode也是这样,边收边传,一小部分一小部分地收,存储在本地仓库,同时传给第三个Datanode第三个Datanode就仅仅是接收并存储了。这就是流水线式的复制。九、可访问性HDFS给应用提供了多种访问方式, 可以通过DFSShell通过命令行与HDFS数据进行交互,可以通过javaAPI调用, 也可以通过C语言的封装API访问, 并且提供了浏

21、览器访问的方式。正在开发通过WebDav协议访问的方式。具体使用参考文档。十、空间的回收1、文件的删除和恢复用户或者应用删除某个文件,这个文件并没有立刻从HDFS中删除。相反,HDFS将这个文件重命名,并转移到/trash目录。 当文件还在/trash目录时, 该文件可以被迅速地恢复。 文件在/trash中保存的时间是可配谿的,当超过这个时间,Namenode就会将该文件从namespac#删除。文件的删除,也将释放关联该文件的数据块。注意到,在文件被用户删除和HDFS空闲空间的增加之间会有一个等待时间延迟。当被删除的文件还保留在/trash目录中的时候,如果用户想恢复这个文件,可以检索浏览/

22、trash目录并检索该文件。/trash目录仅仅保存被删除文件的最近一次拷贝。/trash目录与其他文件目录没有什么不同,除了一点:HDFS在该目录上应用了一个特殊的策略来自动删除文件,目前的默认策略是删除保留超过6小时的文件,这个策略以后会定义成可配谿的接口。2、Replication因子的减小当某个文件的replication因子减小,Namenode会选择要删除的过剩的副本。下次心跳检测就将该信息传递给Datanode,Datanodelft会移除相应的block并释放空问,同样,在调用setReplication方法和集群中的空闲空间增加之间会有一个时间延迟。参考资料:HDFSJava

23、API:/core/docs/current/api/HDFSsourcecode:/core/version_control.html真的不掉线吗??、???八年级上册词组M1-M3Module11、weleback欢迎回来2、writeitdown写下来3、inclass在课堂上4、nextto紧邻着5、whatelse处有什么6、listentotheradio听收音机7、eachother彼止匕,互相8、helpsb.withsth.帮助某人做某事9、helpsb.(todosth.帮助某人做某

24、事10、askfor寻求11、thenumberof的数量12、takeadeepbreath8呼吸13、makeyoushy使你害羞14、allthetime一直15、Bestwishes.良好的祝愿。17、makealist列个清单18、themeaningof的意思19.advisesb.todostht议某人做某事20、thebestwaytodosth.做的最好方法21、enjoyoneself玩得愉快22、showsb.aroun姗领某人参观23、makefriends结交朋友24、thinkabout考虑25、thinkof想出26、Britishaccents英国口音27、tr

25、ytodosth.尽力做28、trynottodosth.尽量不去做某事trydoingsth尝试着做某事29、 makemistakes错误30、givesbsomeadviceonsth给某人一些建议31、 Itsagoodideatodlo.st做某事是个好的主意32、Ho真的不掉线吗??、?waboutdoingsth?做某事怎么样?33、Sbshoulddosth谋人应该做某事。34、Writeemailtoeachother:相互写电子邮件35、meetsb:接某人,和某人会面36、sendsbemailmessages给某人寄电子邮件37、send-to发送给38、Languag

26、eDoctor言博士39、improveEnglish提高英语40、basicquestionsi要问题41、realEnglish地道的英语42、takealongtime花费长时间43、guessthemeaningofthenewwords!生词含义44、aforeignteacheL个外国教师45、 startaconversation始对话47、placetheminyourbedroom放谿它们在你卧室48、counttheEnglishwords数英语单词49、getbetter变得更好50、invitesbtodosth/aplaced请某人干某事/到某地51、leavemyh

27、omeworkathome把我的作业忘在了家里Module21 .travelaroundtheworld周游世界2 .thepriceof的价格3 .todaysnewspaPeS的报纸4 .takeoff飞机起飞5 .enterapetition参力口竞赛6 .ontelevision在电视上7.innewspape在报纸上8.etrue成为现实9.invitesbtodo邀请某人干某事10.dreamabout/ofdoing梦见做某事11 .alloverChina全中国12.trywesternfood品尝西餐真的不掉线吗??、?13.giveconcernt举办音乐会14.sell

28、out卖光15.pickupsb/sth接上某人/捡起某物16.sincethen自从那时17.againandagairr次又一次18.Itsoundsbrilliant.听起来好极了19.liveinanothercountry居住在另一个国家Module31 .Whatareyouupto?你正在干什么?2 .Dontparic紧张。3 .ontheradio通过收音机4 .onTV通过电视5.hearabout听说6.thereandbac往返7.showsthtosb/showsbsth合某人看某物8.onbusinissft出差9.inspaced太空10.apartof一部分11

29、 .atnight在晚上12.inthelastthereyears在最近的三年里13.finishdoingsth完成做某事14.asgooda#口一样好15.asksbforsth向某人寻求某物16.besure确信17.sofar到目前为止18.expecttodosthW望做某事takeoff起飞,脱下衣服M1-3教材重点句子Module11.你何不把正确的拼写和语法写在出错的地方?Andwhydontyouwritedowthecorrectspellingandgrammarnexttothemistakes?2.还有什么吗?Whatelse?3.许多人在讲英语时不好意思,所以,在

30、开口前,深吸一口气,笑一笑。真的不掉线吗??、?ManypeopleareshywhentheyspeakEnglish,sobeforeyoubegin,takeadeepbreathandsmile.4.微笑总能起作用的。Smilingalwayshelps.5.每天查看你的单词本是个好主意。Itsagoodideatocheckyourvocabularynotebookeveryday.6.用英语听收音机或读报纸如何呢?HowaboutlisteningtotheradioorreadinganewspaperinEnglish?7.尽量不要翻译每个词。Trynottotranslat

31、eeveryword.8.她可以帮助我做作业。Shecanhelpmewithmyhomework.9.许多学生征求提高英语水平的建议。ManystudentsaskforadviceaboutimprovingtheirEnglish.10.把它们写在纸上,贴在你的卧室。Writethemonpiecesofpaperandplacetheminyourbedroom.11.这花费很长时间Ittakesalongtime.12.她在她的学校的乐队演奏,而且他们要在中国开一些音乐会。SheplaysinherschoOorchestra,andtheyredoingsomeconcertsin

32、China.13.这是学习英语的好方法。ThisisagreatwaytolearnEnglish.14.我认为每一个应该有个笔友,并互相写电子邮件信息。Ithinkeveryoneshouldhaveapenfriendandwriteemailmessagestoeachother.15.当你购物时,总计下英语单词,或者说出你看到的每件东西的英文名如何呢?Whenyouareshopping,howaboutcountingtheEnglishwords,orsayingtheEnglishnamesforeverythingyousee?16和你的朋友谈论电影或歌曲,并猜新单词的意思。T

33、alkaboutthefilmorsongwithyourfriends,andguessthemeaningofthenewwords.Module21.啊哈,你猜怎么着!Well,guesswhat!2.头等奖是你梦想的到英国度假。ThefirstprizeistheholidayofyourdreamsinEngland.3.韩力曾经去过美国的旧金山。HanLihasbeentoSanFranciscoinUSA.4.你梦寐以求的假期。Theholidayatyourdreams.5.你觉得怎么样?真的不掉线吗??、???Whatdoyoureckon?6.他在全国各地举办音乐会,音乐会

34、的票总是销售一空。HesgivenconcertsalloverChinaandtheticketshavealwayssoldout.7.听起来好极了。Itsoundsbrilliant.8.我期望有一天能环游世界。Iexpecttotravelaroundtheworld.9.你曾经有梦想实现”吗?Haveyoueverhada“dreametrue”?10.Sally邀请我去英国和她一起呆一天。SallyhasinvitedmetostaywithherinEnglandoneday.11.王明与2000多名观众一起去参加过在北京举行的刘欢音乐会。WangMinghasbeentoLiu

35、HuanconcertinBeijingwithmorethan2000people.12.北京以其烤鸭而著名。Beijingisfamousforitsroastducks.13.客舱内是禁止吸烟的。Smokingisnotallowedinthecabin.14.因为大雾原因,飞机不能起飞。Theplanecanttakeoffbecauseofthethickfog.15.春节是中国的传统节日。TheSpringFestivalistraditionalfestivalinChina.Module31.你在干什么?Whatareyouupto?2.地球是行星,它绕着太阳转。还有八颗行星也

36、围绕着太阳转TheEarthisaplanetanditgoesaroundtheSun.Eightotherplanetsalsogoaround.3.宇宙中有这么多的恒星,我们是孤独的吗?太空中还有其他的生命吗?Withsomanystarsintheuniverse,arewealone,oristherelifeoutthereinspace.4.把它给给我的家人看看Toshowittomyfamily.5.花了几个月的时间才到那里Ithastakenseveralmonthstogetthere.6.大明有什么作业吗?WhathomeworkhasDaminggot?7.你认为大明的

37、行为怎么样?WhatdothinkofDamingsaction?8.科学家们认为数百年以前地球上已经生命存在。真的不掉线吗??、???ScientiststhinkthattherehasbeenlifeonEarthformillionsofyears.9.北京是中最大的城市之一BeijingisoneofthebiggestcitiesinChina10.房间里没有人Nooneisintheroom.11.我们班大多数学生骑自行车上学。Mostofthestudentsinourclassgotoschoolbyschool.12.茶跟咖啡你更喜欢哪一样?Whichdoyouprefer

38、,teaorcoffee?13他们用其他的太空船做了什么?Whathavetheymadewiththeotherspacecraft?14.它将与明年返回地球。ItsibacktoEarthnextyear.15.我在学校刚读完了一本极好的书Ivejustfinishedreadingagreatbookatschool.16.汤姆写的和玛丽写的一样好TomwritesascarefullyasMary.17.这河水太深,孩子们不能在河里游泳。Theriverissodeepthatthechildrencantswiminit.Theriveristoodeepforthechildren

39、toswimin18他对英语表现出了极厚的兴趣HeshowsmuchinterestinEnglish.M1-3句子考试练习你为什么不每天晚饭后出去散步?Whydontyougooutforawalkaftersuppereveryday?每天早晨大声朗读英语是件好主意。ItsagoodideatoreadEnglishloudlyeveryday.这学期我要在北京见我的笔友。ImgoingtomeetmpenfriendinBeijingthisterm.我讲给你们一些学英语的建议ImgoingtogivesomeadviceaboutlearningEnglish听英语广播或者读英文报纸怎么样?HowaboutlisteningtotheradioorreadinganewspaperinEnglish?不要试图翻译每一个单词Trynottotranslateeveryword.昨天你们玩得开心吗

温馨提示

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

评论

0/150

提交评论