L
L
LearnJava
Search…
Hadoop之HDFS

简介

HDFS是Hadoop的分布式文件系统。它的结构如下:
它的主要组成如下:
  • Block数据块:Block数据块是HDFS的基本存储单位,一般大小为64M,一个文件会被拆分成一个个的块,然后存储在不同的机器,如果一个文件少于一个Block块的大小,那么实际占用空间为其文件的大小,每个块会被复制到多台机器,默认复制3份。
  • NameNode:存储文件的metadata元数据,运行时所有数据保存到内存。一个Block在NameNode中对应一条记录。数据会定时保存到本地磁盘,但不保存Block的位置信息,NameNode失效会导致整个HDFS失效。
  • Secondary NameNode:定时与NameNode同步。
  • DataNode:保存具体的Block数据,负责数据的读写操作和复制操作,DataNode启动时会向NameNode报告当前存储的数据块信息,后续也会定时报告修改信息。DataNode之间会进行通信,复制数据块,保证数据的冗余性。

HDFS的基本操作

写操作

  1. 1.
    Client向NameNode发起文件写入的请求
  2. 2.
    NameNode根据文件大小和文件块配置情况,返回给Client所管理的DataNode的信息。
  3. 3.
    Client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入到每一个DataNode块中。

读操作

  1. 1.
    Client向NameNode发起文件读取的请求。
  2. 2.
    NameNode返回文件存储的DataNode信息。
  3. 3.
    Client读取文件信息。

文件块Block复制

  1. 1.
    NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效。
  2. 2.
    通知DataNode相互复制Block。
  3. 3.
    DataNode开始直接相互复制。
Copy link
On this page
简介
HDFS的基本操作
写操作
读操作
文件块Block复制