面试总被问到 HDFS 似懂非懂的回答不如看看这篇阿里P8的整理总结
HDFS快照:
一个snapshot(快照)是一个全部文件系统、或者某个目录在某一时刻的镜像快照可以应用如下场景:防止用户的错误操作备份试验/测试灾难恢复HDFS的快照操作:开启快照hdfs dfsadmin -allowSnapshot /input创建快照hdfs dfs -createSnapshot /input backup_input_01查看快照:hdfs lsSnapshottableDir对比快照:hdfs snapshotDiff /input backup_input_01 backup_input_02恢复快照:![group](imgs/group.png)hdfs dfs -cp /input/.snapshot/backup_input_01/data.txt /input
HDFS架构:
NameNodeDataNodeSecondary NameNode
元数据存储细节
一、NameNode
是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。文件包括:hdfs-site.xml的dfs.name.dir属性fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。edits:操作日志文件。fstime:保存最近一次checkpoint的时间以上这些文件是保存在linux的文件系统中。
二、NameNode的工作特点
Namenode始终在内存中保存metedata,用于处理“读请求”到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。
三、SecondaryNameNode
HA的一个解决方案。但不支持热备。配置即可。HA (双机集群(HA)系统简称):HA 是High Available缩写,是双机集群系统简称,指高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.默认在安装在NameNode节点上,但这样...不安全!四、secondary namenode的工作流程
1、secondary通知namenode切换edits文件2、secondary从namenode获得fsimage和edits(通过http)3、secondary将fsimage载入内存,然后开始合并edits4、secondary将新的fsimage发回给namenode5、namenode用新的fsimage替换旧的fsimage五、什么时候checkpiont
fs.checkpoint.period:指定两次checkpoint的最大时间间隔,默认3600秒。fs.checkpoint.size:规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。
六、Datanode
hdfs-site.xml的dfs.replication属性
提供真实文件数据的存储服务。文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间Replication。多复本。默认是三个。HDFS的安全模式
什么是安全模式?安全模式是hadoop的一种保护机制,用于保证集群中的数据块的安全性。如果HDFS处于安全模式,则表示HDFS是只读状态。当集群启动的时候,会首先进入安全模式。当系统处于安全模式时会检查数据块的完整性。假设我们设置的副本数(即参数dfs.replication)是5,那么在datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。在配置文件hdfs-default.xml中定义了一个最小的副本的副本率0.999,如图:
我们的副本率0.6明显小于0.99,因此系统会自动的复制副本到其他的dataNode,使得副本率不小于0.999.如果系统中有8个副本,超过我们设定的5个副本,那么系统也会删除多余的3个副本。虽然不能进行修改文件的操作,但是可以浏览目录结构、查看文件内容。在命令行下是可以控制安全模式的进入、退出和查看的:查看安全模式状态:hdfs dfsadmin -safemode get进入安全模式状态:hdfs dfsadmin -safemode enter离开安全模式状态:hdfs dfsadmin -safemode leave
如果觉得对你有所帮助。记得收藏和关注呦!(每日更新各种框架)
如需转载请注明出处(创作不易请见谅)
和巨婴程序猿一起成长。让自己变的更优秀
想了解更多精彩内容,快来关注跟着巨婴去逆袭
我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~
单选 | 喜欢文字排版还是喜欢加一些动漫元素