Hadoop分布式文件系统详解

开发 架构 分布式 Hadoop
Hadoop相信大家应该有所了解,这里向大家介绍一下Hadoop分布式文件系统,相信通过本文的介绍大家对Hadoop分布式文件系统有一定的认识。

在学习Hadoop的过程中,你可能遇到Hadoop分布式文件系统方面的内容,本节就向大家介绍一下,欢迎大家一起来学习Hadoop分布式文件系统方面的知识。下面是具体介绍。

Hadoop分布式文件系统

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为ApacheNutch搜索引擎项目的基础架构而开发的。HDFS是ApacheHadoopCore项目的一部分。这个项目的地址是http://hadoop.apache.org/core/。

前提和设计目标

硬件错误
硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分HDFS的组件是不工作的。因此错误检测和快速、自动的恢复是HDFS最核心的架构目标。

流式数据访问
运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。

大规模数据集
运行在Hadoop分布式文件系统HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。

简单的一致性模型
HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。Map/Reduce应用或者网络爬虫应用都非常适合这个模型。目前还有计划在将来扩充这个模型,使之支持文件的附加写操作。

“移动计算比移动数据更划算”
一个应用请求的计算,离它操作的数据越近就越高效,在数据达到海量级别的时候更是如此。因为这样就能降低网络阻塞的影响,提高系统数据的吞吐量。将计算移动到数据附近,比之将数据移动到应用所在显然更好。HDFS为应用提供了将它们自己移动到数据附近的接口。

异构软硬件平台间的可移植性
HDFS在设计的时候就考虑到平台的可移植性。这种特性方便了HDFS作为大规模数据应用平台的推广。

Namenode和Datanode
Hadoop分布式文件系统HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。

Namenode和Datanode被设计成可以在普通的商用机器上运行。这些机器一般运行着GNU/Linux操作系统(OS)。HDFS采用Java语言开发,因此任何支持Java的机器都可以部署Namenode或Datanode。由于采用了可移植性极强的Java语言,使得HDFS可以部署到多种类型的机器上。一个典型的部署场景是一台机器上只运行一个Namenode实例,而集群中的其它机器分别运行一个Datanode实例。这种架构并不排斥在一台机器上运行多个Datanode,只不过这样的情况比较少见。
集群中单一Namenode的结构大大简化了系统的架构。Namenode是所有HDFS元数据的仲裁者和管理者,这样,用户数据永远不会流过Namenode。本节关于Hadoop分布式文件系统方面的介绍到这里。
 

【编辑推荐】

  1. Hadoop集群搭建过程中相关环境配置详解
  2. Hadoop完全分布模式安装实现详解
  3. 专家讲解 Hadoop:HBASE松散数据存储设计
  4. 两种模式运行Hadoop分布式并行程序
  5. Hadoop应用之Hadoop安装篇

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2011-07-15 17:48:27

Platform

2018-07-06 09:16:22

HadoopRAID文件系统

2010-11-01 05:50:46

分布式文件系统

2018-03-01 16:26:30

HDFSHadoop系统

2016-09-14 23:51:23

2018-08-14 10:44:58

HadoopHDFS命令

2017-10-17 08:33:31

存储系统分布式

2010-11-15 13:24:07

分布式文件系统

2013-01-07 10:29:31

大数据

2013-06-18 14:00:59

HDFS分布式文件系统

2012-08-31 16:04:11

HDFS分布式文件系统

2012-09-19 15:05:24

MogileFS分布式文件系统

2012-09-19 13:43:13

OpenAFS分布式文件系统

2013-05-27 14:46:06

文件系统分布式文件系统

2018-01-18 17:14:58

分布式文件系统FastDFS

2012-05-10 14:04:07

分布式文件系统架构

2012-05-10 15:23:53

分布式文件系统测试

2012-10-09 16:43:47

FastDFS分布式文件系统

2020-01-03 08:33:57

Ceph硬件系统

2023-05-05 08:16:56

SeaweedFS分布式文件
点赞
收藏

51CTO技术栈公众号