HDFS基本介绍

HDFS 是Hadoop分布式文件系统。是Hadoop核心组件之一,作为最底层的分布式存储服务而存在。

HDFS使用Master和Slave结构对集群进行管理,一般一个HDFS集群只有一个Namenode和一定数目的Datanode组成,Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。

NameNode(Master)管理者 - 只负责管理,管理集群内各个节点。

SecondaryNameNode 辅助管理 – 只负责辅助NameNode管理工作。

DataNode(Slave) 工作者,是负责工作,周期向NameNode汇报,进行读写数据。

NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。

DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。

Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。最主要作用是辅助namenode管理元数据信息

HDFS存储是将文件抽象成block块进行存储,将所有文件一视同仁的以block块统一大小形式进行存储,一个block块大小为128M

也可以通过hdfs-site.xml进行修改。

    <name>dfs.block.size</name>

    <value>块大小 以字节为单位</value>//只写数值就可以

</property>

一个文件大小100M,上传到HDFS占用几个block块,多余的28M怎么办?

事实上,128只是个数字,数据超过128M,便进行切分,如果没有超过128M,就不用切分,有多少算多少,不足128M的也是一个快。这个快的大小就是100M,没有剩余28M这个概念。

HDFS抽象成块的好处:

一个文件有可能大于集群中任意一个磁盘
20T/128 = xxx块,这些block块属于一个文件
使用块抽象而不是文件,可以简化存储子系统。
块非常适合用于数据备份进而提供数据容错能力和可用性
HDFS副本机制

HDFS视硬件错误为常态,硬件服务器随时有可能发生故障。为了容错,文件的所有 block 都会有副本,一般默认为一个

在hdfs-site.xml当中修改以下配置属性,即可更改文件的副本数

  <name>dfs.replication</name>

  <value>3</value>

猜你喜欢

转载自blog.csdn.net/Dreamy_zsy/article/details/103016777