hdfs概述

hdfs概述,第1张

hdfs概述

目录

一:分布式存储

二:分布式存储介绍

(1:在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件

(2:集群中不同的节点承担不同的职责。

三:深入理解hdfs概述

四:NameNode

五:DataNode

六:secondary namenode(帮助namenode进行管理数据)

工作流程

什么时候checkpiont(切换)



一:分布式存储

HDFS具有主从架构(主节点:namenode,从节点:datanode)。

HDFS集群由单个名称节点组成,主服务器管理文件系统名称空间并控制客户机对文件的访问。此外,还有许多数据节点,通常是集群中每个节点,它们管理连接到运行它们的节点的存储。

二:分布式存储介绍 (1:在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。

为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。

(2:集群中不同的节点承担不同的职责。

负责命名空间职责的节点称为主节点(master node)namenode

负责存储真实数据职责的节点称为从节点(slave node)。datanode

主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。(主节点挂了就会找不到信息,从节点挂了查不到数据)

用户 *** 作时,应该先和主节点打交道,查询数据在哪些从节点上存储,然后再到从节点读取。

在主节点上,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。(内存中不会永久存储数据 ,关闭内存再打开会从本地读到数据)

在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。128 10%溢出

数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台节点中,这样数据就安全了,数据丢失或者访问失败的概率就小了。

三:深入理解hdfs概述

(1:数据量越来越多,在一个 *** 作系统管辖的范围存不下了,那么就分配到更多的 *** 作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。

(2:是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

(3:通透性。(访问数据时只需要保证看到的文件的完整性,不管底层怎么存储)让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。

(4:容错。即使系统中有某些节点宕机,整体来说系统仍然可以持续运作而不会有数据损失【通过副本机制实现】。

(5:分布式文件管理系统很多,hdfs只是其中一种,不合适小文件。(小文件也会占用block块浪费资源)hdfs以block为单位

四:NameNode

NameNode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的 *** 作请求。

文件包括:

fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。

edits: *** 作日志文件,namenode启动后一些新增元信息日志。

fstime:保存最近一次checkpoint的时间

以上这些文件是保存在linux的文件系统中。

hdfs-site.xml的dfs.namenode.name.dir属性

/usr/local/soft/hadoop-2.7.6/tmp/dfs/name/current在这个目录。

五:DataNode

提供真实文件数据的存储服务。

文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。2.0以后HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.

hdfs-site.xml中dfs.blocksize属性

不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间

Replication。多复本。默认是三个。

hdfs-site.xml的dfs.replication属性

六:secondary namenode(帮助namenode进行管理数据) 工作流程

1:通知namenode切换edits文件

2:从namenode获得fsimage和edits

3:将fsimage载入内存,然后开始合并edits

4:将新的fsimage发回给namenode

5:用新的fsimage替换旧的fsimage

什么时候checkpiont(切换)

fs.checkpoint.period指定两次checkpoint的最大时间间隔默认是3600秒

fs.checkpoint.size规定两次edits文件的最大值,一旦超过这个值就强制checkpoint,不管是不是到达最大的时间间隔,默认是64M。

(1:切换是因为edits每一个小时就会产生一个新的edits文件 不定时切换数据

(2:获取的是旧版本的fsimage和新的edits文件

(3:fsimage=旧版本的fsimage+新的edits文件

(4:磁盘里会产生备份 防止文件丢失

(5:合并叫chekpoint 将旧的fsimage加最新的edits *** 作文件 =新的fsimage

(6:一小时会进行一次合并或者当edits大于64M时也会产生合并

(7:开机就会进行xhekpoint所以频繁开机和启动的hdfs会开启保护模式

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5665662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存