hadoop中 namenode的持久化
一、为什么namenode持久化
namenode通过内存存储hdfs集群的元数据(目录结构 文件信息 块对应关系),如果内存出现问题,那么会数据丢失,需要通过持久化,把内存中的数据定期的存储在硬盘中,进而保证namenode的数据安全。
二、持久化的原理
1、FSImage (某一时刻 namenode镜像数据)
默认存储位置
/opt/install/hadoop-2.5.2/data/tmp/dfs/name
2、EditsLog (某一时刻后的,写日志操作)
FSImage 会在集群格式化时,生成空的FSImage ,后续用户的操作都会写入到EditsLog中
每一次重启namenode时,把EditsLog和FSImage的数据在内存中合并,并生成一哥新的EditsLog,
时间没到制定时间点或没有到事务数 FSImage时不会和EditsLog合并
时间到制定时间点或到事务数 FSImage时会和EditsLog合并,生成新的FSImage(有数据)和新的EditsLog
相关配置可以打开http://hadoop.apache.org/docs/r2.5.2/
配置这些文件要在
cd /opt/install/hadoop-2.5.2/etc/hadoop
找到hdfs-site.xml文件添加
<property>
<name>dfs.namenode.name.dir </name>
<value>/opt/suns/fsimage</value>
</property>
<property>
<name>dfs.namenode.edits.dir </name>
<value>/opt/suns/editslog</value>
</property>
安全模式 safemode
namenode从新启动时,通过安全模式保证EditsLog和FSImage的合并,在这个过程中,只允许client进行读操作,而不能进行写操作。
最新文章
- 一款全兼容的播放器 videojs
- JAVA Socket 编程学习笔记(二)
- sublime 插件总结
- 初学java注解编程 记录错误及解决办法
- Dirty Markup - 在线代码美化工具
- 1. EasyUI 学习总结(一)——对话框dialog
- django1.9.6 使用 DjangoUeditor (python3.5)
- 利用RunTime解决由NSTimer导致的内存泄漏
- bzoj 1228: [SDOI2009]E&;D 阿达马矩阵
- JavaScript设计模式之构造函数模式
- javascript 作用域链
- 原型扩展的方法解决IE和Firefox的Js兼容问题
- SQL Mirroring[Hot back up with Double machine]
- js url校验
- 基于webpack2.x的vue2.x的多页面站点
- python的学习之路day1
- jsp和servlet的区别和联系
- PLC
- 几个实用的CSS代码段总结
- fgrep: ifcfg-ifcfg-eth0: No such file or directory
热门文章
- LeetCode97 Interleaving String
- Light OJ 1272 Maximum Subset Sum 高斯消元 最大XOR值
- iOS之友盟错误统计解决
- Gym - 101480A_ASCII Addition
- 计算php程序运行时间
- javax.websocket.Session的一个close异常记录
- 学linux内核与学linux操作系统有什么区别!?
- 获取select文本框的下拉菜单文字内容的两种方式
- ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel
- 带你进入 Activiti 工作流的世界