HDFS的相关概念和特性

HDFS是分布式文件系统,英文全称是Hadoop Distributed File System,是一个用Java实现分布式的可扩展的文件系统。

HDFS的主要功能是做存储用的,把每一份数据创建多个副本、做复制,默认的副本数是3份

整体设计思路

  • 大文件被切割为小文件,使用分而治之的思想让很多服务器对同一个文件进行联合管理
  • 每个小文件做冗余备份,并且分散到不同的服务器中,做到高可靠不丢失。

在HDFS的架构中,主要有三个角色:NameNode(元数据节点,NN)、DataNode(从数据节点,DN)、SecondaryNameNode(从数据节点,snn)。

架构中三个角色的作用

1. NameNode:是Master节点,集群老大
(1)管理文件系统中文件的元数据信息;
(2)维护文件到块、块到节点的对应关系;
(3)维护用户对文件的操作信息(增删改查)。

2. DataNode:Slave节点
(1)负责存储客户端(client)发来的数据块block;
(2)执行数据块的读写操作。

3.SecondaryNameNode:严格来说并不是NameNode备份节点,主要给NameNode分担压力
(1)周期性的将元数据节点的fsimage(文件系统目录树)和fsedits(文件系统元数据操作日志)合并,以防止日志文件过大。
(2)合并后的fsimage在从元数据节点保存了一份,以防止元数据节点失败时恢复。

特性

  • HDFS中的文件在物理分块上是分块存储(block),配置参数dfs.blocksize在Hadoop2.x版本中默认128M,而老版本为64M;
  • HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件。形如:hdfs://hadoop01:9000/software/hadoop-2.6.5-centOS-6.7.tar.gz
  • 目录结构及文件分块位置信息(元数据)的管理由NameNode节点分担;
  • 文件的各个block块的存储管理由DataNode节点承担。副本数参数设置:dfs.replication(默认是3份)
  • 适应一次写入、多次写出的场景,且不支持文件的修改。

优缺点

  1. 优点
    (1)可构建在廉价机器上;
    (2)高容错性;
    (3)适合批处理;
    (4)适合大数据处理;
    (5)流式文件访问。

  2. 缺点
    (1)不适用于低延时数据访问;
    (2)不适用小文件存取;
    (3)不适用并发写入、文件随机修改。

#### 补充:
为什么HDFS不适合存储小文件:
(1)所有的元数据都是存储在NameNode内存中的,而一个NameNode节点的内存是有限的;
(2)小文件的存取占用了大量的NameNode内存,导致寻道时间超过了读取时间;
(3)NameNode存储block数目是有限的。
一个block元信息消耗大约150byte内存,加入存储一亿个block,则大约需要20GB内存。如果一个文件大小为10KB,则一亿个文件大小仅为1TB,但NameNode就要消耗20GB内存。

你可能感兴趣的:(HDFS)