【HDFS】EditLogTailer功能及原理(一)-- 整体流程
【HDFS】EditLogTailer功能及原理(二)-- selectInputStreams细节详解
【HDFS】EditLogTailer功能及原理(三)-- loadEdits方法细节详解
读完本文你将有如下收获:
- EditLogTailer从冗余流中加载editlog的流程。
- RedundantEditLogInputStream冗余流的五种状态(State枚举类定义)的具体含义以及发生场景: SKIP_UNTIL、OK、STREAM_FAILED、STREAM_FAILED_RESYNC、EOF
- 以
OP_ADD
操作为例讲解如何将editlog应用到namenode的内存中。
上一篇文章我们分析了EditLogTailer如何获取editlog的inputStream的相关细节。本文接着来分析获取到editlog的inputStream后将editlog里保存的hdfs操作应用(replay)到当前standby namenode的内存中的fsimage中的细节。
这个过程是由FSImage#loadEdits
方法完成的,返回值是这次加载了多少个txid的操作。如下图所示: