hadoop分布式文件资料系统:架构和设计

hadoop分布式文件资料系统:架构和设计

ID:34464808

大小:120.82 KB

页数:13页

时间:2019-03-06

hadoop分布式文件资料系统:架构和设计_第1页
hadoop分布式文件资料系统:架构和设计_第2页
hadoop分布式文件资料系统:架构和设计_第3页
hadoop分布式文件资料系统:架构和设计_第4页
hadoop分布式文件资料系统:架构和设计_第5页
资源描述:

《hadoop分布式文件资料系统:架构和设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、目录一、引言1二、前提和设计目标12.1硬件错误12.2流式数据访问12.3大规模数据集12.4简单的一致性模型22.5“移动计算比移动数据更划算”22.5异构软硬件平台间的可移植性2三、Namenode和Datanode2四、文件系统的名字空间(namespace)3五、数据复制45.1副本存放:最最开始的一步45.2副本选择55.3安全模式5六、文件系统元数据的持久化6七、通讯协议7八、健壮性78.1磁盘数据错误、心跳检测和重新复制78.2集群均衡78.3数据完整性88.4元数据磁盘错误88.5快照8九、数据组织99.1数据块99.2Staging99.3流水线复制9十、可访问性101

2、0.1DFSShell1010.2DFSAdmin1010.3浏览器接口11十一、存储空间回收1111.1文件的删除和恢复1111.2减少副本系数11十二、参考资料1212一、引言Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开

3、始是作为ApacheNutch搜索引擎项目的基础架构而开发的。HDFS是ApacheHadoopCore项目的一部分。这个项目的地址是http://hadoop.apache.org/core/。二、前提和设计目标2.1硬件错误硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分HDFS的组件是不工作的。因此错误检测和快速、自动的恢复是HDFS最核心的架构目标。2.2流式数据访问运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS

4、的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。2.3大规模数据集12运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。2.4简单的一致性模型HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文

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

6、S作为大规模数据应用平台的推广。三、Namenode和DatanodeHDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。

7、它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。12Namenode和Datanode被设计成可以在普通的商用机器上运行。这些机器一般运行着GNU/Linux操作系统(OS)。HDFS采用Java语言开发,因此任何支持Java的机器都可以部署Namenode或Datanode。由于采用了可移植性极强的Java

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。