HDFS原理和体系结构_第1页
HDFS原理和体系结构_第2页
HDFS原理和体系结构_第3页
HDFS原理和体系结构_第4页
HDFS原理和体系结构_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

HDFS产生背景数据量巨大随着数据量越来越大,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。分布式文件系统分布式文件系统是一种允许文件通过网络在多台主机上分享的文件的系统,可让多机器上的多用户分享文件和存储空间。分布式文件管理系统很多,hdfsHDFS只是其中一种。适用于一次写入、多次查询的情况,不支持并发写情况,小文件不合适。因为小文件也占用一个块,小文件越多(1000个1k文件)块越多,NameNode压力越大。海量数据元化数据块磁盘块磁盘块磁盘块磁盘块标记后什么是HDFS

HDFS是Hadoop使用的标准存储系统,是基于网络环境下的分布式文件系统。它是基于流数据模式访问和处理超大文件的需求开发的,可以运行于廉价的商用服务器上。实际上,这并不是什么新颖的事情,80年代左右就已经有人这么去实现了。基于流数据模式访问高容错、高吞吐

它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(LargeDataSet)的应用处理带来了很多便利。数据分块,多副本

存储在HDFS上的数据文件首先进行分块,每个分块创建多个副本,并存储在集群的不同节点上,HadoopMapReduce程序可以在所有节点上处理这些数据。HDFS特点HDFS设计目标大文件存储:支持TB-PB级的数据量高容错:运行在商业硬件上,而商业硬件并不可靠高吞吐量:为大量数据访问的应用提供高吞吐量支持简单一致性模型(一次写,多次读)大规模数据集

典型文件大小GB-TB级别关注横向现行扩展流式数据访问批量读而非随机读关注吞吐量而非相应时间

适应场景大文件访问流式数据访问不适合的场景存储大量小文件随机读取,低延迟读取硬件错误是常态副本冗余机制HDFS设计理念HDFS特点高容错性数据自动保存多个副本。某一个副本丢失以后,它可以自动恢复HDFS内部机制实现的适合批处理通过移动计算而不是移动数据。会把数据位置暴露给计算框架。适合大数据处理处理数据达到GB、TB、甚至PB级别的数据。能够处理百万规模以上的文件数量,数量相当之大。能够处理10K节点的规模。它能保证数据的一致性。不适合低延时数据访问场景比如毫秒级以内读取数据,对HDFS存储来说很难做到的。不适合存储大量小文件占用NameNode大量的内存来存储文件、目录和块信息违反HDFS的设计目标。不支持并发写入文件只能有一个写,不允许多个线程同时写。不支持随机修改文件仅支持数据append(追加),不支持文件的随机修改。3HDFS新功能和特性4HDFS实验2HDFS原理和体系架构1HDFS简介目录HDFS架构HDFS

采用Master/Slave的架构,主要由四个部分组成。HDFS

Client文件切分;与NameNode交互,获取文件的位置信息;与DataNode交互,读取或者写入数据;Client提供一些命令来管理HDFSNameNode作为master管理HDFS的名称空间管理数据块(Block)映射信息配置副本策略处理客户端读写请求。DataNode作为Slave存储实际的数据块执行数据块的读/写操作SecondaryNameNode辅助NameNode定期合并fsimage和fsedits,并推送NameNode在紧急情况下,可辅助恢复NameNode文件包括:

fsimage(文件系统镜像):元数据镜像文件。存储某一时段NameNode内存元数据信息。

edits:操作日志文件。fstime:保存最近一次checkpoint的时间是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。文件操作,NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,数据流不经过NameNode,只会询问它跟哪个DataNode联系。NameNodeDatanode是文件系统的工作节点根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。集群中的每个服务器都运行一个DataNode后台程序,负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读/写某个数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通信,并且对相关的数据块进行读/写操作。

DataNodeSecondaryNameNodeSecondaryNameNode作用1、对HDFS元数据的冷备份,预防NameNode出现故障丢失数据。2、解决EditLog增大的问题。

SecondaryNameNode的处理,是将fsimage和edits文件周期的合并,不会造成NameNode重启时造成长时间不可访问的情况。HDFS数据写入流程解析HDFS数据读取流程解析HDFS可靠性所有数据块都有副本可以在hdfs-site.xml中设置复制因子指定副本数量DataNode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表(blockport)汇报给namenode副本冗余HDFS可靠性集群一般放在不同机架上,机架间带宽要比机架内带宽要小;HDFS具有“机架感知”能力,它能自动实现在本机架上存放一个副本,然后在其它机架再存放另一副本,可以防止机架失效时数据丢失,同时提高带宽利用率。机架策略Namenode周期性从datanode接收心跳信号和块报告Namenode根据块报告验证元数据心跳机制HDFS可靠性HDFS可靠性Namenode启动时会先经过一个“安全模式”阶段,安全模式阶段不会产生数据写;在安全模式阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的;在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束;当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数。安全模式HDFS可靠性在文件建立时,每个数据块都产生校验和,校验和保存在.meta文件内;客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏;如果正在读取的数据块损坏,则可以继续读取其它副本。校验和HDFS可靠性删除文件时,文件放入回收站/trash,回收站里的文件可以快速恢复;通过设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块。回收站/trashfiles超过周期HDFS可靠性映像文件和事务日志是Namenode的核心数据,可以配置为拥有多个副本;副本会降低Namenode的处理速度,但增加安全性。元数据保护快照机制支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态;3HDFS新功能和特性4HDFS实验2HDFS原理和体系架构1HDFS简介目录HDFS新功能和特性

Erasurecoding纠删码技术简称EC;通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性.在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复;EC技术可以防止数据丢失,又可以解决HDFS存储空间翻倍的问题;创建文件时,将从最近的祖先目录继承EC策略,以确定其块如何存储。与3路复制相比,默认的EC策略可以节省50%的存储空间,同时还可以承受更多的存储故障。支持HDFS中的擦除编码ErasureEncoding基于HDFS路由器的联合HDFS基于路由器的联合会添加一个RPC路由层,提供多个HDFS命名空间的联合视图。简化了对现有HDFS客户端的联合集群的访问。HDFS新功能和特性支持多个NameNode允许用户运行多个备用NameNode;一个NameNode是Active,其它为Standby;StandbyNN会不断与JN同步,保证自己获取最新的editlog,并将edits同步到自己维护的image中去,这样便可以实现热备,在发生failover的时候,立马切换成active状态,对外提供服务;JN只允

温馨提示

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

评论

0/150

提交评论