Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

云核算(cloud computing),由坐落网络上的一组服务器把其核算、存储、数据等资源以服务的办法供给给恳求者以完结信息处理使命的办法和进程。在此进程中被服务者仅仅供给需求并获取服务成果,关于需求被服务的进程并不知情。一起服务者以***运用的办法动态地把资源分配给许多的服务恳求者,以求到达***效益。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第1张

Hadoop分布式文件体系(HDFS)被规划成合适运行在通用硬件(commodity hardware)上的分布式文件体系。它和现有的分布式文件体系有许多共同点。但一起,它和其他的分布式文件体系的差异也是很明显的。HDFS是一个高度容错性的体系,合适布置在廉价的机器上。HDFS能供给高吞吐量的数据拜访,十分合适大规模数据集上的运用。

一 条件和规划方针

1 Hadoop和云核算的联络

云核算由坐落网络上的一组服务器把其核算、存储、数据等资源以服务的办法供给给恳求者以完结信息处理使命的办法和进程。针对海量文本数据处理,为完成快速文本处理呼应,缩短海量数据为辅佐决议方案供给服务的时刻,根据Hadoop云核算渠道,树立HDFS分布式文件体系存储海量文本数据集,经过文本词频运用MapReduce原理树立分布式索引,以分布式数据库HBase存储要害词索引,并供给实时检索,完成对海量文本数据的分布式并行处理.试验成果表明,Hadoop框架为大规模数据的分布式并行处理供给了很好的解决方案。

2 流式数据拜访

运行在HDFS上的运用和一般的运用不同,需求流式拜访它们的数据集。HDFS的规划中更多的考虑到了数据批处理,而不是用户交互处理。比之数据拜访的低推迟问题,更要害的在于数据拜访的高吞吐量。

3 大规模数据集

运行在HDFS上的运用具有很大的数据集。HDFS上的一个典型文件巨细一般都在G字节至T字节。因此,HDFS被调理以支撑大文件存储。它应该能供给全体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。

4 简略的一致性模型

HDFS 运用需求一个“一次写入屡次读取”的文件拜访模型。一个文件经过创立、写入和封闭之后就不需求改动。这一假定简化了数据一致性问题,而且使高吞吐量的数据拜访成为或许。Map/Reduce运用或许网络爬虫运用都十分合适这个模型。现在还有方案在将来扩大这个模型,使之支撑文件的附加写操作。

5 异构软硬件渠道间的可移植性

HDFS在规划的时分就考虑到渠道的可移植性。这种特性方便了HDFS作为大规模数据运用渠道的推行。

6 硬件过错

硬件过错是常态而不是反常。HDFS或许由成百上千的服务器所构成,每个服务器上存储着文件体系的部分数据。咱们面临的现实是构成体系的组件数目是巨大的,而且任一组件都有或许失效,这意味着总是有一部分HDFS的组件是不作业的。因此过错检测和快速、主动的康复是HDFS最中心的架构方针。

#p#

二 HDFS重要名词解释

HDFS 选用master/slave架构。一个HDFS集群是由一个Namenode和一定数意图Datanodes组成。Namenode是一个中心服务器,担任办理文件体系的姓名空间(namespace)以及客户端对文件的拜访。集群中的Datanode一般是一个节点一个,担任办理它地点节点上的存储。 HDFS暴露了文件体系的姓名空间,用户能够以文件的办法在上面存储数据。从内部看,一个文件其实被分红一个或多个数据块,这些块存储在一组 Datanode上。Namenode履行文件体系的姓名空间操作,比方翻开、封闭、重命名文件或目录。它也担任确认数据块到详细Datanode节点的映射。Datanode担任处理文件体系客户端的读写恳求。在Namenode的一致调度下进行数据块的创立、删去和仿制。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第2张

集群中单一Namenode的结构大大简化了体系的架构。Namenode是一切HDFS元数据的仲裁者和办理者,这样,用户数据永久不会流过Namenode。

1 Namenode

(1)HDFS的看护程序。

(2)记载文件时怎么切开成数据块的,以及这些数据块被存数到那些借点上。

(3)对内存和I/O进行会集办理

(4)namenode是单个节点,产生毛病将使集群溃散。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第3张

2 secondary Namenode

(1)监控HDFS状况的辅佐后台程序

(2)secondary Namenode与namenode通讯,定时保存HDFS元数据快照。

(3)当namenode毛病时分,secondary Namenode能够作为备用namenode运用。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第4张

3 Datanode

Datanode将HDFS数据以文件的办法存储在本地的文件体系中,它并不知道有关HDFS文件的信息。它把每个 HDFS数据块存储在本地文件体系的一个独自的文件中。Datanode并不在同一个目录创立一切的文件,实际上,它用打听的办法来确认每个目录的***文件数目,而且在恰当的时分创立子目录。

4 jobTracker

(1)用于处理作业的后台程序

(2)决议有哪些文件参加处理,然后切开task并分配节点

(3)监控task,重启失利的task

(4)每个集群只要仅有一个jobTracker,坐落Master。

5 TaskTracker

(1)坐落slave节点上,与datanode结合

(2)办理各自节点上的task(由jobTracker分配)

(3)每个节点只要一个tasktracker,但一个tasktracker能够发动多个JVM,

(4)与jobtracker交互

#p#

三 HDFS数据存储

1 HDFS数据存储特色

(1)HDFS被规划成能够在一个大集群中跨机器可靠地存储超大文件。

(2)它将每个文件存储成一系列的数据块,除了***一个,一切的数据块都是相同巨细的,数据块的巨细是能够装备的。

(3)文件的一切数据块都会有副本。每个副本系数都是可装备的。 (4)运用程序能够指定某个文件的副本数目。

(5)HDFS中的文件都是一次性写入的,而且严格要求在任何时分只能有一个写入者。

2 心跳机制

Namenode全权办理数据块的仿制,它周期性地从集群中的每个Datanode接纳心跳信号和块状况陈述(Blockreport)。接纳到心跳信号意味着该Datanode节点作业正常。块状况陈述包含了一个该Datanode上一切数据块的列表。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第5张

3 副本寄存

副本的寄存是HDFS可靠性和功用的要害。HDFS选用一种称为机架感知(rack-aware)的战略来改善数据的可靠性、可用性和网络带宽的运用率。

4 副本挑选

为了下降全体的带宽耗费和读取延时,HDFS会尽量让读取程序读取离它最近的副本。假如在读取程序的同一个机架上有一个副本,那么就读取该副本。假如一个HDFS集群跨过多个数据中心,那么客户端也将首要读本地数据中心的副本。

5 安全形式

Namenode发动后会进入一个称为安全形式的特别状况。处于安全形式的Namenode是不会进行数据块的仿制的。Namenode从一切的 Datanode接纳心跳信号和块状况陈述。

#p#

四 HDFS数据健壮性

HDFS的首要方针便是即便在犯错的状况下也要确保数据存储的可靠性。常见的三种犯错状况是:Namenode犯错, Datanode犯错和网络分裂(network partitions)。

从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)  Hadoop 云计算 HDFS 分布式 第6张

1 磁盘数据过错,心跳检测和从头仿制

每个Datanode节点周期性地向Namenode发送心跳信号。网络分裂或许导致一部分Datanode跟Namenode失掉联络。Namenode 经过心跳信号的缺失来检测这一状况,并将这些近期不再发送心跳信号Datanode标记为宕机,不会再将新的IO恳求发给它们。任何存储在宕机 Datanode上的数据将不再有用。Datanode的宕机或许会引起一些数据块的副本系数低于指定值,Namenode不断地检测这些需求仿制的数据块,一旦发现就发动仿制操作。在下列状况下,或许需求从头仿制:某个Datanode节点失效,某个副本遭到损坏,Datanode上的硬盘过错,或许文件的副本系数增大。

2 集群均衡

HDFS的架构支撑数据均衡战略。假如某个Datanode节点上的闲暇空间低于特定的临界点,依照均衡战略体系就会主动地将数据从这个Datanode移动到其他闲暇的Datanode。当对某个文件的恳求忽然添加,那么也或许发动一个方案创立该文件新的副本,而且一起从头平衡集群中的其他数据。这些均衡战略现在还没有完成。

3 数据完好性

从某个Datanode获取的数据块有或许是损坏的,损坏或许是由Datanode的存储设备过错、网络过错或许软件bug形成的。HDFS客户端软件完成了对HDFS文件内容的校验和 (checksum)查看。当客户端创立一个新的HDFS文件,会核算这个文件每个数据块的校验和,并将校验和作为一个独自的躲藏文件保存在同一个 HDFS姓名空间下。当客户端获取文件内容后,它会查验从Datanode获取的数据跟相应的校验和文件中的校验和是否匹配,假如不匹配,客户端能够挑选从其他Datanode获取该数据块的副本。

4 元数据磁盘过错

FsImage和Editlog是HDFS的中心数据结构。假如这些文件损坏了,整个HDFS实例都将失效。因此,Namenode能够装备成支撑保护多个FsImage和Editlog的副本。任何对FsImage或许 Editlog的修正,都将同步到它们的副本上。这种多副本的同步操作或许会下降Namenode每秒处理的姓名空间业务数量。但是这个价值是能够承受的,由于即便HDFS的运用是数据密布的,它们也非元数据密布的。当Namenode重启的时分,它会选取最近的完好的FsImage和Editlog来运用。

Namenode是HDFS集群中的单点毛病(single point of failure)地点。假如Namenode机器毛病,是需求手艺干涉的。现在,主动重启或在另一台机器上做Namenode毛病搬运的功用还没完成。

5 快照

快照支撑某一特定时刻的数据的仿制备份。运用快照,能够让HDFS在数据损坏时康复到曩昔一个已知正确的时刻点。HDFS现在还不支撑快照功用,但方案在将来的版别进行支撑。

博文出处:http://www.cnblogs.com/Rainbow-G/articles/4282572.html

转载请说明出处
知优网 » 从HDFS架构和规划看Hadoop和云核算的联系(在hadoop项目结构中hdfs指的是什么)

发表评论

您需要后才能发表评论