hdfs是hadoop开源项目的一部分,实际上是google分布式文件系统GFS的开源实现。
一、hdfs的主要特点
1、
硬件错误是常态,而非异常情况,
HDFS
可能是有成百上千的
server
组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是
HDFS
的核心架构目标。
2、
跑在
HDFS
上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。
3、
HDFS
以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至
T
字节,一个单一
HDFS
实例应该能支撑数以千万计的文件。
4、
HDFS
应用对文件要求的是
write-one-read-many
访问模型。一个文件经过创建、写,关闭之后就不需要改变。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。典型的如
MapReduce
框架,或者一个
web crawler
应用都很适合这个模型。
5、
移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好,
HDFS
提供给应用这样的接口。
二、hdfs的架构组织
整体架构图如下:
一个
HDFS
集群是有一个
Namenode
和一定数目的
Datanode
组成。
Namenode
是一个中心服务器,负责管理文件系统的
namespace