04Hadoop框架HDFS NNSNNDN工作原理
Posted liangzai2048
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04Hadoop框架HDFS NNSNNDN工作原理相关的知识,希望对你有一定的参考价值。
文章目录
Hadoop框架HDFS NN、SNN、DN工作原理
HDFS概述
- 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。
- 是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。
- 通透性,让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。
- 容错,即是系统中有某些节点宕机,整体来说系统仍然可以持续运作而不会有数据损失【通过副本机制实现】。
- 分布式文件管理系统很多,hdfs只是其中一种,不适合小文件。
- 其它分布式管理系统:GPFS、PVFS、Lustre、PanFS、GoogleFS、淘宝的TFS、GFS等
HDFS架构
- 标准的主从架构
可见HDFS将NameNode将文件切分成大小为128mb的block块,分别随机存储到不同的DataNode中
NameNode
- NameNode是整个文件系统的管理节点(上传、下载、更改、删除)。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据快列表。接收用户的操作请求。
- 文件包括:
- fsimage:元数据镜像文件。存储某一时段的NameNode内元数据信息。
- edits:操作日志文件,NameNode启动后一些新增元信息日志。
- fstime:保存最近异常checkpoint的时间
- 以上这些文件是保存在Linux的文件系统中。
- hdfs-site.xml的dfs.namenode.name.dir属性
Secondary NameNode
Secondary NameNode的工作流程
- 1、Secondary通知NameNode切换edits文件
- 2、Secondary从NameNode获得fsimage和edits(通过http)
- 3、Secondary将fsimage载入内存,然后开始合并edits
- 4、Secondary将新的fsimage发回给NameNode
- 5、NameNode用新的fsimage替换旧的fsimage
什么时候checkpiont
- fs.checkpoint.period 指定两次checkpoint的最大时间间隔默认3600秒(1小时)
- fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔 默认是64M
DataNode
- 提供真实文件数据的存储服务
- 文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的O偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个快称一个Block。2.0以后的HDFS默认Block大小是128MB,以一个256MB文件,共有256/126=2个Block。
- hdfs-size.xml中dfs.blocksize属性
- 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
- Replication,多副本,默认是三个。
- hdfs-site.xml的dfs.replication属性
上传一个CentOS-7.5-x86_64-DVD-1804.iso大文件来体现分布式管理系统
- 将 CentOS-7.5-x86_64-DVD-1804.iso 镜像文件用Xftp上传到/usr/local/moudle目录下
可见 CentOS-7.5-x86_64-DVD-1804.iso 镜像文件有4.16GB
可分为4.16*1024/128=33.28,33个Block块(从0开始)
[root@master moudle]# hdfs dfs -put CentOS-7.5-x86_64-DVD-1804.iso /
通过ui页面观察文件被block划分
HDFS的Trash回收站
和Linux系统(桌面环境)的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash,每一个用户通过Shell删除的文件/目录,fs.trash.interval是在指在这个回收周期之内,文件实际上是被移动到trash的这个目录下面,而不是马上把数据删除掉。等到回收周期真正到了以后,hdfs才会将数据真正删除。默认的单位是分钟,1440分钟=60*24,刚好是一天。 配置:在每个节点(不仅仅是主节点)上添加配置 core-site.xml,增加如下内容:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
注意:如果删除的文件过大,超过回收站大小的话会提示删除失败
需要指定参数 -skipTrash,意思是跳过回收站删除,不可恢复
这里不建议使用-skipTrash,否则会造成数据的不可恢复
- 删除CentOS-7.5-x86_64-DVD-1804.iso镜像文件,跳过回收站
[root@master moudle]# hdfs dfs -rm -r -skipTrash /CentOS-7.5-x86_64-DVD-1804.iso
这里只是做个示例,考虑到这个文件占用资源,所以靓仔在这里就讲它删除了
到底啦!觉得靓仔的文章对你学习Hadoop有所帮助的话,一波三连吧!q(≧▽≦q)
以上是关于04Hadoop框架HDFS NNSNNDN工作原理的主要内容,如果未能解决你的问题,请参考以下文章