hdfs基本介绍

一、hdfs概述

HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称,它的设计目标是把超大数据集存储到网络中的多台普通计算机上,并提供高可靠性和高吞吐率的服务。

HDFS的优点:
高容错性:数据自动保存多个副本,hdfs默认的副本数量是3
适合处理大数据:能够处理GB、TP甚至BP级别的数据,能够处理百万规模以上的文件数量
可构建在廉价机器上

HDFS的缺点:
不适合低延迟的数据访问:hdfs无法实现毫秒级别的数据存储和访问,hdfs提供高吞吐量但无法提供低延迟数据访问
无法高效处理大量的小文件:大量小文件会占用namenode大量的内存来存储元数据,且会导致寻址时间过长
不支持并发写入和随机修改:一个文件只能有一个写,不允许多个线程同时写;仅支持数据追加append,不支持随机修改

 

二、hdfs组织和架构

hdfs主要有3个组间构成,分别是NameNode、SecondaryNameNode和DataNode。

NameNode的主要功能:

管理文件系统的名称空间

配置副本策略

管理元数据,维护目录树,包括文件名、目录名及其层级关系,文件、目录的所有者及权限,每个文件的数据块名称及文件有哪些数据块

处理客户端的读写请求

NameNode实时通过心跳消息与DataNode交互,检查文件系统是否运行正常。

 

namenode中的元数据不包含每个数据块的位置信息,位置信息会在namenode启动时从datanode获取并保存在内存中,减少寻址时间。

 

DataNode的主要功能:

存储实际的数据块

执行数据块的读写操作

 

SecondaryNameNode的主要功能:

定期合并fsimage文件和edits文件

紧急情况辅助恢复NameNode。

 

client,就是客户端

与NameNode交互,获取文件位置信息

与DataNode交互,进行文件读写操作

 

NameNode上存储元数据的文件叫fsimage,NameNode启动时将fsimage加载到内存,对元数据的操作保存在内存中并被持久化到另一个文件edits,SecondaryNameNode合并fsimage和edits的过程:

合并之前通知NameNode将新的操作写到新的edits文件并将其命令为edits.new

SecondaryNameNode从NameNode请求fsimage和edits文件

SecondaryNameNode把fsimage和edits文件合并生成新的fsimage文件

NameNode从SecondaryNameNode获取合并好的fsimage并替换原来旧的fsimage,并用edits.new文件替换掉原来的edits文件

更新fstime文件中的检查点。

 

posted @ 2021-12-11 22:59  Forever77  阅读(931)  评论(0编辑  收藏  举报