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

一、HDFS的由来:
本地系统:一个节点作为系统,以前数据是存放在本地文件系统上的,但本地文件系统存在两个问题:1、本地节点存储容量不够大;2、本地节点会坏,数据不够安全。这时,人们开始利用闲置的计算机组成了分布式系统,分布式系统是用计算机网络将多个节点联系起来组成一个逻辑上统一的系统。
分布式系统的三大特点:
1、物理分布性,可靠性好;
2、逻辑整体性:对内可以是零散的,但对外必须是一个整体;
3、节点自治性:可靠性高。
现在数据是存放在分布式文件系统上的,分布式文件系统的好处:1、理论上存储容量无穷大,只要服务器数量足够多,解决了硬盘容量不够大的问题;2、通过水平复制实现数据备份功能,解决了硬盘会坏,数据不够安全的问题,因此Google的GFS论文就这样诞生了,Google公司大量使用普通PC机作为服务器,PC机上去掉机箱、外设和硬盘,Doug Cutting则借鉴了GFS论文, 实现了HDFS并贡献了apache基金会。
二、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存在的问题:
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文件打开回收站
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
注:一天后自动清空回收站,百度网盘十天后自动清空回收站
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文件关闭权限管理
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
作者:李金泽AllenLi,清华大学硕士研究生,研究方向:大数据和人工智能
带您详细解读分布式文件系统HDFS的更多相关文章
- 大数据技术原理与应用——分布式文件系统HDFS
分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...
- 你想了解的分布式文件系统HDFS,看这一篇就够了
1.分布式文件系统 计算机集群结构 分布式文件系统把文件分布存储到多个节点(计算机)上,成千上万的计算机节点构成计算机集群. 分布式文件系统使用的计算机集群,其配置都是由普通硬件构成的,与用多个处理器 ...
- 大数据 --> 分布式文件系统HDFS的工作原理
分布式文件系统HDFS的工作原理 Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数 ...
- Hadoop分布式文件系统--HDFS结构分析
转自:http://blog.csdn.net/androidlushangderen/article/details/47377543 HDFS系列:http://blog.csdn.net/And ...
- 【转载】Hadoop分布式文件系统HDFS的工作原理详述
转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文 ...
- 大数据技术 - 分布式文件系统 HDFS 的设计
本章内容介绍下 Hadoop 自带的分布式文件系统,HDFS 即 Hadoop Distributed Filesystem.HDFS 能够存储超大文件,可以部署在廉价的服务器上,适合一次写入多次读取 ...
- 06_Hadoop分布式文件系统HDFS架构讲解
mr 计算框架 假如有三台机器 统领者master 01 02 03 每台机器都有过滤的应用程序 移动数据 01机== 300M >mr 移动计算 java程序传递给各个机器(mr) ...
- Hadoop分布式文件系统HDFS
HDFS的探究: HDFS HDFS是 Hadoop Distribute File System的缩写,是谷歌GFS分布式文件系统的开源实现,Apache Hadoop的一个子项目,HDFS基于流数 ...
- 对Hadoop分布式文件系统HDFS的操作实践
原文地址:https://dblab.xmu.edu.cn/blog/290-2/ Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop核 ...
随机推荐
- JPEG/PNG/GIF图片格式简析
JPEG/PNG/GIF是Web浏览器广泛支持的3种图片格式. 1.JPEG格式最适合保存照片和其他复杂图像. 2.GIF和PNG格式最适合保存logo和其他包含单色.线条.文本的简单图形. 3.JP ...
- Flex 常用布局
1.flex布局 1.1 容器指定为flex布局 .box{display: flex;} 1.2 行元素指定flex布局 .box{display:inline-flex} 2.容器的属性 2.1 ...
- C#版Aliyun DNS API
阿里云解析API,是为域名开发者.注册商.域名代理商等提供的开放和便捷的解析服务接口.API依托于万网云解析服务,可以方便的管理域名和解析记录,让你的解析管理变的随心省时自由舒畅. 一.先附上Aliy ...
- 用php和ajax写一个省市区的三级联动,实现地区的下拉选择
要实现这个页面的三级联动,我们需要建立三个php文件,第一个php文件我们导入jQuery文件,里面嵌入JavaScript:第二个php文件我们做一个php的处理页面,里面引入我们封装好的数据库类文 ...
- Linux 多个vi、vim进程编辑同一文件时的临时文件问题
多个vi.vim进程编辑同一文件时的临时文件问题 by:授客 QQ:1033553122 使用vi.vim编辑文件,实际是先copy一份临时文件并映射到内存里进行编辑,所以你编辑的是临时文件,不是 ...
- 让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由WeTest质量开放平台团队发表于云+社区专栏 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样 ...
- axios的get,post方法
学习vue和nodejs的过程当中,涉及到了axios,今天为了测试,写了get和post两个方法来跟node服务端交互,结果因为header和参数弄了好久,在此记录一下,同时分享; 由于刚接触axi ...
- eclipse在server中tomcat server找不到的问题
想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器(更新后才出现) 网上找的很久,只是找到 ...
- windows 2012 抓明文密码方法
windows 2012 抓明文密码方法 默认配置是抓不到明文密码了,神器mimikatz显示Password为null Authentication Id : 0 ; 121279 (0000000 ...
- 【Java集合源代码剖析】ArrayList源代码剖析
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/35568011 转载请注明出处:http:// ...