博客
关于我
hdfs开机启动流程
阅读量:651 次
发布时间:2019-03-15

本文共 660 字,大约阅读时间需要 2 分钟。

HDFS namenode操作流程及安全模式说明

第一步:加载name目录下最新的fsimage_xxx019文件,将其目录树结构维护至内存(此处尚未处于关机前的最终状态)。

第二步:处理edits_inprogress_xxxx0160文件,将其重命名为edits_0000000000000000160-0000000000000000169,并生成新的edit文件edits_inprogress_xxx170,同时更新seen_txid为170。随后,将文件范围内的edit日志文件加载至内存,通过重放操作维护最新目录树结构。

第三步:如果触发了检查点条件,namenode将会自行执行检查点操作,将内存中的最新状态持久化为新fsimage文件,并删除之前保留的最旧fsimage文件。具体而言,namenode始终保留两份相近的fsimage文件作为备份。

关于安全模式:整个过程从启动到退出均处于安全模式。在namenode收到datanode的心跳反馈且达到或超过99.9%的块数时,安全模式将退出。需要注意的是,集群首次启动时,此时编辑文件尚未生成,因此不会出现安全模式。

为什么客户端的访问操作不直接存储至fsimage?

这是因为随着时间推移,fsimage文件会不断增长(虽然并非绝对增长,但相对于总量而言)。不将访问操作直接存储至fsimage可避免性能瓶颈。我们通过生成edit文件分批存储访问数据,edit文件最大尺寸为64M。一旦达到此上限,系统即会新生成一个edit文件,以确保操作性能。

转载地址:http://qasmz.baihongyu.com/

你可能感兴趣的文章
李笑来必读书籍整理
查看>>
Hadoop(十六)之使用Combiner优化MapReduce
查看>>
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
查看>>
CoreCLR源码探索(八) JIT的工作原理(详解篇)
查看>>
andriod 开发错误记录
查看>>
C语言编译错误列表
查看>>
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
查看>>
CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
查看>>
pycharm新建文件夹时新建python package和新建directory有什么区别?
查看>>
python中列表 元组 字典 集合的区别
查看>>
Android DEX加固方案与原理
查看>>
iOS_Runtime3_动态添加方法
查看>>
Leetcode第557题---翻转字符串中的单词
查看>>
Problem G. The Stones Game【取石子博弈 & 思维】
查看>>
Java多线程
查看>>
openssl服务器证书操作
查看>>
我用wxPython搭建GUI量化系统之最小架构的运行
查看>>
我用wxPython搭建GUI量化系统之多只股票走势对比界面
查看>>
selenium+python之切换窗口
查看>>
重载和重写的区别:
查看>>