简易分布式存储系统项目准备3|青训营笔记

146 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第4天 这是青训营课程小组将要涉及的项目。

在了解 HDFS 的整体架构前我们先来理解一下 HDFS 里的一些小知识。

(1)数据块

HDFS 默认最基本的存储单位是 64MB 的数据块(在 2.x 版本中是 128MB),大小通过配置可调。对于存储空间未达到数据块大小的文件,不会占用整个数据块的存储空间。

(2)元数据节点(NameNode)

元数据节点算是 HDFS 中非常重要的一个概念,用于管理文件系统的命令空间,将所有文件和文件夹的元数据保存在文件系统树中,通过在硬盘保存避免丢失,采用文件命名空间镜像(fs image)及修改日志(edit log)方式保存。

(3)数据节点(DataNode)

数据节点即是真正数据存储的地方。

(4)从元数据节点(Secondary NameNode)

从字面来看像是元数据节点的备用节点,但实际不然,它和元数据节点负责不同的事情,主要负责将命名空间镜像与修改日志文件周期性合并,避免文件过大,合并过后文件会同步至元数据节点,同时本地保存一份,以便在出现故障时恢复。

在架构图中,除了我们上述介绍的几种节点,还有一个 Client,即客户端。

·        客户端是我们平时用来和 HDFS 服务进行交互的部分,客户端中内置了一套文件操作命令来帮助我们访问 HDFS 服务,比如说我们上传文件、下载文件;

·        同时客户端还负责把我们上传的文件按前面说的数据块进行切分,以方便后续的存储;

·        因此,客户端当然也负责与 NameNode 和 DataNode 进行交互以获取文件位置或者读写文件操作等。

HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。HDFS提供一个统一的抽象目录树,客户端可通过路径来访问文件,如hdfs://namenode:port/dir-a/a.data。HDFS集群分为两大角色:Namenode、Datanode(非HA模式会存在Secondary Namenode)