fsimage:存放的是一份最完整的元数据信息,内容比较大edits:元数据操作日志,记录了一段时间的元数据信息的变化,例如增删改查哪些文件,文件内容比较小,操作起来比较方便 edits一直记录元数据操作记录的话,也会慢慢膨胀的比较大,也会造成操作起来比较困难 为了控制edits不会膨胀太大,引入secondaryNameNode机制。secondaryNameNode:主要职责,合并fsimage与edits,清空edits,问题:edits什么时候跟fsimage合并??? 控制策略:时间长短 + 文件大小 比如说我们可以定义两个小时,或者edits文件大小达到1GB的时候合并一次。
在hdfs-site.xml配置fsimage和edits存储路径:
<!-- 定义了我们fsimage文件存储的路径。实际工作当中,这个路径不能随便写,需要首先确定我们的磁盘的挂载路径 df -lh 查看我们磁盘的挂载路径 -->
<property> <name>dfs.namenode.name.dir</name> <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value> </property>
<!-- 定义edits文件的存储路径 -->
<property> <name>dfs.namenode.edits.dir</name> <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value> </property>
cd /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/current
hdfs oiv -i fsimage_0000000000000000864 -p XML -o hello.xml
cd /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits
hdfs oev -i edits_0000000000000000865-0000000000000000866 -o myedit.xml -p XML
转载于:https://www.cnblogs.com/mediocreWorld/p/10946427.html
相关资源:JAVA上百实例源码以及开源项目