namenode是hdfs的大脑,它维护着整个文件系统的目录树,以及目录树里所有的文件和目录,这些信息以俩种文件存储在文件系统:一种是命名空间镜像(也称为文件系统镜像,file system image,fsimage),即hdfs元数据的完整快照,每次namenode启动的时候,默认会加载最新的命名空间镜像,另一种是命令空间镜像的编辑日志(edit log)。
fsimage文件其实是文件系统元数据的一个永久性检查点,但并非每一个写操作都会更新这个文件,因为fsimage是一个大型文件,如果频繁地执行写操作,会使系统运行极为缓慢。解决方案是namenode只将改动内容预写日志,即写入命名空间镜像的编辑日志.随着时间的推移,编辑日志会变得越来越大,那么一旦发生故障,将会话费非常多的时间来回滚操作,所以就像传统的关系数据库一样,需要定期地合并fsimage和编辑日志。如果由namenode来做合并操作,那么namenode在为集群提供服务时可能无法提供足够的资源,为了彻底解决这一问题,secondary namenode应允而生。
默认情况下,该过程每小时发生一次,或者当namenode的编辑日志文件到达默认的64mb也会触发。
如对本文有疑问, 点击进行留言回复!!
去 HBase,Kylin on Parquet 性能表现如何?
如何找到Hive提交的SQL相对应的Yarn程序的applicationId
如何在 HBase Shell 命令行正常查看十六进制编码的中文?哈哈~
HBase Filter 过滤器之 Comparator 原理及源码学习
安装 Hadoop 2.9.1 on Windows 10 64 bit (最全步骤整理)
网友评论