HDFS 核心原理

正文转自:http://www.cnblogs.com/hegezhou\_hot/archive/2010/09/18/1830306.html

HDFS 核心原理

2016-01-11 杜亦舒

HDFS(Hadoop Distribute File System)是一个分布式文件系统

文件系统是操作系统提供的磁盘空间管理服务,只待我们指定将文件放到哪里,从哪个路径读取文件句可以了,不用关心文件在磁盘上是什么样存放的

当文件所要空间大于本机磁盘空间时,如何处理为?

同样凡是加磁盘,但加到自然水准就是生限定了

次凡加机器,用长途共享目录的方式提供网络化的贮存,这种方法可以理解呢分布式文件系统的雏形,可以管不同文件放入不同之机械中,空间不足了足持续加机器,突破了仓储空间的克

但以此方法产生多单问题

(1)单机负载可能不过高

诸如有文件是香,很多用户时时读取这个文件,就如这个文件所在机器的访压力最高

(2)数据未安全

若是某个文件所在的机出现故障,这个文件就无可知顾了,可靠性很不同

(3)文件整理困难

像想管有些文件的存储位置展开调整,就用看目标机器的长空是否足够用,并且需要好维护文件位置,如果机器坏多,操作就颇为错综复杂

HDFS的解决思路

 

HDFS是独抽象层,底层依赖很多独的服务器,对外提供统一的文件管理力量,对于用户来讲,感觉就想以操作一雅机器,感受不至HDFS下面的多台服务器

像用户访问HDFS中的 /a/b/c.mpg
这个文件,HDFS负责从底层相应服务器中读取,然后返回给用户,这样用户只待与HDFS打交道,不关注这文件是怎存储的

图片 1
描绘文件示例

 

诸如用户需要保留一个文书 /a/b/xxx.avi 

HDFS首先会管这个文件进行划分,例如分为4块,然后分别放到不同服务器上

图片 2

这般做生只好处,不怕文件太要命,并且读文件之压力不会见都集中在同等宝服务器上

而是如若某台服务器坏了,文件就读不统了

HDFS为保险文件可靠性,会把每个文件块进行多只备份

块1 : A B C 
块2 : A B D
块3 : B C D 

块4 : A C D

图片 3
如此文件之可靠性就大大加强了,即使有服务器坏了,也得完全读取文件

还要还带动一个雅死之补益,就是增加了文件的产出访问能力,比如多个用户读取这个文件时,都要读块1,HDFS可以因服务器的繁忙程度,选择打哪台服务器读块1

元数据的管理

HDFS中满怀了安文件?

文本于分成了哪些块?

每个片给放在哪台服务器上?

……

这些都受做元数据,这些元数据为架空为一个目录树,记录了这些复杂的应和关系

这些元数据由一个独门的模块进行管制,这个模块叫做 NameNode

寄存文件块的真正服务器叫做 DataNode

因而用户访问HDFS的长河可以掌握呢:

用户 -> HDFS -> NameNode -> DataNode

HDFS 优点

(1)容量可以线性扩展

(2)有副本机制,存储可靠性高,吞吐量增大

(3)有矣NameNode后,用户访问文件就需要点名HDFS上的门路

平、上章回顾

      
在齐篇被我们上课了几乎近似UML2.0言语新生产的建模图形,总体来说通过这些图能再详实的将某类信息表达出来。在这里我们简要回顾上篇讲解的情节。

       图片 4

      
上图备受就略介绍了上章讲述的始末,具体内容请看:网架构师-基础到企业应用架构-系统建模[下篇]。

二、摘要

      
本章将第一的大概介绍在系统架构中之设计模式及相应标准轨道。并结相应的代码来说明如何按照系统架构中的有基本的设计规范及轨道。而我辈用当照文介

绍几类似常用之设计规范,我们先来探结构化设计的第二单为主尺度:

       图片 5

      
当然既然提出了主导的规则,那么我们怎样来满足则为,并且能够重好之规划也?我们得以经过如下手段来齐如此的求:

       图片 6 当然图中示范了职能分别的国策,通过把需要按不同之成效详细的划分开来,每个功能还是独

的,当然我们这里为得以变成是关注点。下面我们以针对这些规则进行详细的讲授。

其三、本章内容

       1、上章回顾。

       2、摘要。

       3、本章内容。

       4、设计规范及标准。

       5、如何满足设计要求。

       6、本章总结。

       7、系列进度。

       8、下篇预告。

季、设计规范及轨道。

      1、高内聚

       
首先我们来探视内聚的意义:软件含义达成之内聚其实是于化学中的分子的内聚演变过来的,化学中的成员中的作用力,作用力强则显现为内聚程度高。在软件中内

聚程度的音量,标识着软件设计的上下。

       
我们当展开架构设计时的内聚高低是负,设计之一模块或者关注点时,模块或关注点内部的同等密密麻麻有关功能的连带程度之高低。

        例如:下单模块:

        图片 7 一般情况下,下单模块都见面出如下的消息,订单的消息,产品之信息以及谁下之光(买家信息)。这是位

依照之,那么我们规划的时刻将要把有关的作用内聚到一头。当然就是自很效力(下单管理)上来说,当然这些模块还足以更细化分成产品、订单、会员等子模块。

        例如我们当统筹数据库操作辅助类提供的道发生:

        图片 8 通过如此的措施,那么是组件只负责数据库操作。这样带的好处呢是有目共睹的。高内

聚提供了重新好的可维护性和而复用性。而小内聚的模块则表名模块直接的凭程度高,那么一旦修改了拖欠模块依赖的靶子则无法用该模块,必须也进展对应的改动才

好继承采用。

       
低内聚的模块设计的坏处有:首先模块的力量未单一,模块的天职不鲜明,比较松散,更有甚者是做到无相干的效应。这样的计划性反复是不可取之。可以经还

构来完善。

       
下面我们吧下大内聚的粗略说明:什么样的模块算是高内聚,并且能够在系受老好之采取。

        图片 9

        那么我们于设计之长河中安去得高内聚呢?

        图片 10

       
以上多讲述了高内聚的补益,并且阐述了如何促成高内聚的步子和极。下面我们的话说或者大内聚带来的坏处。

       
高内聚有时候也未是说有的景象都使这样的尺度,当然高内聚还是要适当的,下面来举例说明:例如内聚性要求大之讲话就是比如Windows32中网提供的

API,里面的函数太多了,都位居一个Dll中,那么每个函数完成一个效益。这样强劲的效力,会比较复杂,所以并无是全的赛内集聚越强越好,还是要扣押其实的待。

本维护起来也未是特意之有益。

      2、低耦合

        
首先我们来探视小耦合的概念:低耦合是因此来度量模块和模块直接的仗关系。耦合当然也可以这样简单的明亮,我思念清楚电脑的应当还了解,CPU以及主板之间的

涉嫌,CPU如果是殊之CPU必须动异乎寻常的主板来支持,那么要说这CPU不唯因唯一主板,那么就算觉得此CPU与主板的关系是亚耦合的涉。

         下面我们来举例说明低耦合的设计及高耦合的设计:

          图片 11 这是一个简练的低位耦合的计划,电器与插座之间是低耦合的干,就算是我替换了不同的支座,电器依

然可以健康的办事。因此简单的叙述如下,就是A模块和B模块存在因关系,那么当B发生改变时,A模块仍然可以正常办事,那么即便以为A与B是不如耦合的。

         图片 12

         1、笔记本接音响得健康的行使。

         2、笔记本接专配耳机正常的用。       

        
对应一般的响动来说,笔记本是通用的,音响和笔记本直接的干是小耦合的,但是笔记本和耳机却是大耦合的,只有专配的耳机才会及笔记本互联使用,而不

是通用的,所以说笔记本及专配耳机存在正在比强的指关系。当然最好简便的计尽管是笔记本提供合的耳机接口,可以满足日常的求。

         下面我们前分析哪些构建低耦合的宏图。

         图片 13

        总结

         
上面我们早就教了小耦合和高内聚的亚个条件,通过这2个条件我们清楚,满足当下2单原则是权一个架构设计好坏之一个参考标准。下面我们前上课通过

意义分别的计来满足上面的2只极。

五、如何满足设计要求

       1、如何以效益进行模块化的分离。

       我们当拿一个体系进行力量区划时,我们一般只要下来进行:

       首先、我们先行将效益职责分开成独立的单元。

       例如现在发出只B2C系统,那么我们按照B2C的需要,如下分析:

       图片 14 我们这里大概的分析下B2C应该拥有的功能模块,当然这些模块的剪切中,有些模

片还可以继续的分别,当然我这边只是实例分析下。

      2、对分离出来的模块化进行抽象,例如我们盖开也例。

          图片 15 这里通过开发接口向外提供服务。那么外界模块不体贴支付系统模块的浮动,只待调用接口

即可,如果实际的支付办法,比如支付宝的不二法门有转移,在调用支付劳动的模块中为未待举行其他的修改就足以正常的提供服务。显然这样的办法是科学的贯彻正

式。

      
通常情况下我们于系统分离式只是以接口的方提供服务,供其他的模块进行动。在模块内部发生大量的音讯是无须往外部暴露的,所以模块于筹划时访问域的肯定

义就要划分好,防止因访问域的概念而针对性模块的音信造成损坏。

       下面我们来拘禁下功能分离在不同之宏图意见下还是什么样的变现:

       图片 16

      
上面只是实体性的剖析了成效分别之补和下的广度,当然我们在后续会结实例来教学如何来贯彻这样的软件设计模式。当然就才是软件之架构设计,那么要

果细化到现实的兑现啊?我们安错过设计每个功能点为?这虽是产节我们如果教的始末了,那么本文先排有二种普遍的方式。

        图片 17

       
下篇我们用对准设计规范被的贯彻方式,进行详尽的解析与具象实现进行举例讲解,希望大家基本上提意见。

六、本章总结。

        本章中重要性概括的描述了软件设计的第二单核心的正式与原则:

        
1、高内聚:描述了模块内部的同一文山会海功能的有关程度,对于功能中互相关度不高要根本没相关性的职能包含在模块中之做法是不可取的。

        
2、低耦合:描述了模块直接的倚重、感知程度,耦合的衡量标准是于没有至高,一般的话耦合度越小越好。

        
当然有些异样状况下,可能及时第二个条件吗出矛盾的地方,当然我们还是如依据项目之莫过于得以及气象进行精选,当然就第二独规格是以设计供更好的扩展性、

可读性、可维护性、极高之不过复用性,所以要求我们在筹划时尽量去满足这第二只主导规则。而赞助自己错过达到这第二独准则的路就通过功能分别与细化来实现这样的照

虽然。下同样首我们将深入之解析以及举例来证明实现即时第二单尺码的各种正规与轨道。

七、系列进度

      前篇

     
1、网架构师-基础到企业应用架构系列的–开卷有益

     
2、系架构师-基础到企业应用架构-系统建模[上篇]

     
3、网架构师-基础到企业应用架构-系统建模[中篇](上)

     
4、系统架构师-基础到企业应用架构-系统建模[中篇](下)

     
5、网架构师-基础到企业应用架构-系统建模[下篇]

     
6、系统架构师-基础到企业应用架构-系统设计规范与标准[上篇]

      7、系统架构师-基础到企业应用架构-系统设计规范与规则[下篇]

      8、系统架构师-基础到企业应用架构-设计模式[上篇]

      9、系统架构师-基础到企业应用架构-设计模式[中篇]

      10、系统架构师-基础到企业应用架构-设计模式[下篇]

     中篇

      11、系统架构师-基础到企业应用架构-企业应用架构

      12、系统架构师-基础到企业应用架构-分层[上篇]

      13、系统架构师-基础到企业应用架构-分层[中篇]

      14、系统架构师-基础到企业应用架构-分层[下篇]

      15、系统架构师-基础到企业应用架构-表现层

      16、系统架构师-基础到企业应用架构-服务层

      17、系统架构师-基础到企业应用架构-业务逻辑层

      18、系统架构师-基础到企业应用架构-数据访问层

      19、系统架构师-基础到企业应用架构-组件服务

      20、系统架构师-基础到企业应用架构-安全体制

     后篇

      21、单机应用、客户端/服务器、多服务、企业数总线全分析

      22、系统架构师-基础到企业应用架构-单机应用(实例及demo)

      23、系统架构师-基础到企业应用架构-客户端/服务器(实例及demo)

      24、系统架构师-基础到企业应用架构-多服务(实例及demo)

      25、系统架构师-基础到企业应用架构-企业数目总线(实例及demo)

      26、系统架构师-基础到企业应用架构-性能优化(架构瓶颈)

      27、系统架构师-基础到企业应用架构-完整的架构方案实例[上篇]

      28、系统架构师-基础到企业应用架构-完整的架方案实例[中篇]

      29、系统架构师-基础到企业应用架构-完整的架方案实例[下篇]

      30、系统架构师-基础到企业应用架构-总结暨后续

八、下篇预告。

      
下一样首用会一度我们将深入之讲课功能分别的计划则和实现方式,如何当设计被采取设计模式来构建满足大内聚、低耦合的功能模块等等。将经过实例化的章程对

每种原则与落实模式进行剖析及举例。如果大家产生好之观和建议足以马上汇报,谢谢君的宝贵意见。

后语

      
希望看了本段的情人可以从本篇中学至对应的软件设计规范,懂的人口可以温习下相应计划则,本篇希望能够抛砖引玉,希望大家能多提出宝贵意见。由于是遵照

人平时做事屡遭之懂得以及总结,不足之处再所难免,还伸手大家批评指出!如果你有什么意见或建议,请多提出!大家之支持即是本人的无限老动力!

发表评论

电子邮件地址不会被公开。 必填项已用*标注