- Hadoop DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是海量数据存储解决方案。
- HDFS的设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常所说的流式数据访问,特点就是一次写入多次读取;再有就是它运行在普通的硬件之上的,即使硬件故障,也就通过容错来保证数据的高可用。
- 分布式文件管理系统很多,hdfs只是其中一种。适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适。
- HDFS的相关概念:
(1)Block:大文件的存储会被分割为多个block进行存储。默认为64MB,每一个blok会在多个datanode上存储多份副本,默认为3份。[其默认配置可更改]
(2)Namenode:主要负责存储一些metadata信息,主要包括文件目录、block和文件对应关系,以及block和datanote的对应关系。
(3)Datanode:负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现的。 - 主从结构:
主节点,只有一个 : namenode
从节点,有很多个 :datanodes- namenode负责:
· 接收用户请求操作
· 维护文件信息系统的目录结构
· 管理文件与block之间的关系,block与datanade之间的关系
注意:namenode归根结底要放在磁盘上的以保证数据的持久性,但是为了提高效率,一般在hadoop运行时时放在内存中的
- namenode负责:
- datanode负责:
· 存储文件
·文件被分成block存储字磁盘上
·为保证数据安全,文件会有多个副本
- HDFS的四大优点让其成为数据存储的主流选择
(1)高吞吐量:
HDFS的每个block分布在不同的rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同的rack上都有备份
,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。
(2)高容错性:
上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。HDFS通过多方面保证数据的可靠
性,多分复制并且分布到物理位置的不同服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。
(3)容量扩充:
因为HDFS的block信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况
下做扩充,不需要人工干预。
(4)低成本:
可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。