1、DataNode为每个数据复制数据副本,保存在其它DataNode中。
2、NameNode文件系统的元数据全保存在RAM中,DataNode初始化以及每隔1小时,向NameNode发送块报告,以便NameNode掌握各个DataNode的运行状态,并进行DataNode的映射。
3、预写日志。通过在edits中顺序增加的方式减少I/O操作。
4、fsimage:NameNode启动后,加载fsimage到RAM,引入edits变化。
5、Hadoop的新版本已经实现周期性更换edits文件,提供事务ID进行标识,支持数据回流。
本博客所有内容是原创,如果转载请注明来源
http://blog.csdn.net/myhaspl/
1、DataNode为每个数据复制数据副本,保存在其它DataNode中。
2、NameNode文件系统的元数据全保存在RAM中,DataNode初始化以及每隔1小时,向NameNode发送块报告,以便NameNode掌握各个DataNode的运行状态,并进行DataNode的映射。
3、预写日志。通过在edits中顺序增加的方式减少I/O操作。
4、fsimage:NameNode启动后,加载fsimage到RAM,引入edits变化。
5、Hadoop的新版本已经实现周期性更换edits文件,提供事务ID进行标识,支持数据回流。
HDFS中的操作日志文件即WAL,存放在edits中。
1、NameNode将改动内容写到edits。
2、edits会慢慢变大。
3、定期将edits加入fsimage
NameNode简称NN,Secondary NameNode简称SNN,为次NameNode。
1、次NameNode引导NameNode滚动更新edits文件,将更新内容写入edits.new中。
2、次NameNode将NameNode的fsimage和edits文件复制到本地检查点目录
3、次NameNode载入fsimage文件,将edits内容合并到fsimage,将新的fsimage文件压缩后写入磁盘。
4、次NameNode将新的fsimage文件送回NameNode 。
5、NameNode接收新的fsimage文件后,直接加载使该文件生效。
6、NameNode将edits.new改回为edits。
7、到此为止,本次对fsimage的更新完成。edits为之后增加的新内容,下次迭代时可继续使用这些内容。