带您详细解读分布式文件系统HDFS

简介: 带您详细解读分布式文件系统HDFS

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!


一、HDFS的由来:


本地系统:一个节点作为系统,以前数据是存放在本地文件系统上的,但本地文件系统存在两个问题:1、本地节点存储容量不够大;2、本地节点会坏,数据不够安全。这时,人们开始利用闲置的计算机组成了分布式系统,分布式系统是用计算机网络将多个节点联系起来组成一个逻辑上统一的系统。


分布式系统的三大特点:


1、物理分布性,可靠性好;


2、逻辑整体性:对内可以是零散的,但对外必须是一个整体;


3、节点自治性:可靠性高。


现在数据是存放在分布式文件系统上的,分布式文件系统的好处:1、理论上存储容量无穷大,只要服务器数量足够多,解决了硬盘容量不够大的问题;2、通过水平复制实现数据备份功能,解决了硬盘会坏,数据不够安全的问题,因此Google的GFS论文就这样诞生了,Google公司大量使用普通PC机作为服务器,PC机上去掉机箱、外设和硬盘,Doug Cutting则借鉴了GFS论文, 实现了HDFS并贡献了apache基金会。


二、HDFS的体系结构:


带您详细解读分布式文件系统HDFS


(1)Namenode:名称节点


1、管理HDFS


2、接收客户端的请求:上传文件、下载文件等


3、创建日志(edits文件),记录所有针对HDFS的操作,保存HDFS的最近操作


注:edits文件记录自最后一次检查点之后所有针对HDFS的操作,比如:增加文件、删除文件等。


保存目录:$HADOOP_HOME/tmp/dfs/name/current


HDFS提供了离线日志查看器(oev)查看edits文件,默认将edits文件转化成xml文件:


hdfs oev -i edits文件 -o xml文件路径


4、保存文件元信息,将内存中不常用的(采用LRU算法:最近最少使用算法)文件元信息保存到磁盘中形成fsimage文件。


注:文件元信息包含文件名、文件大小、文件存放路径、数据块个数、数据块位置。


fsimage文件记录自最后一次检查点之前HDFS中所有文件的元信息(序列化信息),序列化的作用:进程间通信和永久存储。


保存目录:$HADOOP_HOME/tmp/dfs/name/current


HDFS提供了离线镜像查看器(oiv)查看fsimage文件,默认将fsimage文件转化成txt文件


hdfs oiv -i fsimage文件 -o txt文件路径


(2)Datanode:数据节点


1、以数据块为单位保存数据


hadoop1.x数据块大小:64M


hadoop2.x数据块大小:128M


hadoop3.x数据块大小:256M


保存目录:$HADOOP_HOME/tmp/dfs/data/current

(3)SecondaryNamenode:第二名称节点


1、定期进行edits文件和fsimage文件的合并,更新fsimage文件


发生的时机:当HDFS发出检查的时候:1、检查周期:每隔一小时 2、检查大小:edits文件是否达到64M


带您详细解读分布式文件系统HDFS


三、HDFS存在的问题:


1、Namenode单点故障


hadoop1.x:没有解决方案


hadoop2.x:借助zookeeper实现hadoop的HA功能


2、Namenode压力过大且内存有限,影响HDFS存储效率


hadoop1.x:没有解决方案


hadoop2.x:使用HDFS的联盟实现Namenode的水平扩展


四、HDFS的高级特性:


1、HDFS的回收站(Recycle bin):


默认是关闭的,可以通过修改core-site.xml文件打开回收站


fs.trash.interval


1440


注:一天后自动清空回收站,百度网盘十天后自动清空回收站


2、HDFS的快照(Snapshot):


默认是禁用的,快照是某个目录在某一时刻的镜像。


快照的作用:


1、防止用户错误操作


2、备份


3、试验


4、灾难恢复


启用某个目录的快照:hdfs dfsadmin -allowSnapshot /mydir


禁用某个目录的快照:hdfs dfsadmin -disallowSnapshot /mydir


创建这个目录的快照:hdfs dfs -createSnapshot mydir1_backup_01


删除这个目录的快照:hdfs dfs -deleteSnapshot mydir1_backup_01


重命名这个目录的快照:hdfs dfs -reanameSnapshot mydir1_bakcup_01


(创建快照的本质:将目录复制到当前目录中的.snapshot隐藏目录下)


3、HDFS的配额(quota):


1、名称配额:规定某个目录下存放文件的个数,实际个数n-1个


2、空间配额:规定某个目录下存放文件的大小,最小配置128M


4、HDFS的安全模式:只读模式


作用:保护数据块的安全性


过程:当集群启动时首先进入安全模式,检查数据块的副本率(默认副本率:0.999),当副本率不满足要求时,少了:水平复制,多了:删除冗余,副本率=实际副本数/设置副本数。


5、HDFS的权限管理:

默认是开启的,可以通过修改hdfs-site.xml文件关闭权限管理


dfs.permissions
false



相关文章
|
2月前
|
存储 分布式计算 Hadoop
【揭秘Hadoop背后的秘密!】HDFS读写流程大曝光:从理论到实践,带你深入了解Hadoop分布式文件系统!
【8月更文挑战第24天】Hadoop分布式文件系统(HDFS)是Hadoop生态系统的关键组件,专为大规模数据集提供高效率存储及访问。本文深入解析HDFS数据读写流程并附带示例代码。HDFS采用NameNode和DataNode架构,前者负责元数据管理,后者承担数据块存储任务。文章通过Java示例演示了如何利用Hadoop API实现数据的写入与读取,有助于理解HDFS的工作原理及其在大数据处理中的应用价值。
57 1
|
2月前
|
存储 缓存 分布式计算
|
4月前
|
存储 分布式计算 安全
|
4月前
|
存储 分布式计算 大数据
【大数据】分布式文件系统HDFS
【大数据】分布式文件系统HDFS
68 0
【大数据】分布式文件系统HDFS
|
4月前
|
存储 分布式计算 监控
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
52 0
|
4月前
|
分布式计算 Hadoop Java
分布式系统详解--框架(Hadoop--JAVA操作HDFS文件)
分布式系统详解--框架(Hadoop--JAVA操作HDFS文件)
38 0
|
5月前
|
存储 分布式计算 安全
大数据存储技术(2)—— HDFS分布式文件系统
大数据存储技术(2)—— HDFS分布式文件系统
133 0
|
5月前
|
存储 分布式计算 Hadoop
Hadoop分布式文件系统(HDFS)
【5月更文挑战第10天】
67 3
|
2月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
73 2
基于Redis的高可用分布式锁——RedLock
|
2月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】

热门文章

最新文章

下一篇
无影云桌面