美文网首页
【HDFS】EditLogTailer功能及原理(二)-- se

【HDFS】EditLogTailer功能及原理(二)-- se

作者: 小北觅 | 来源:发表于2022-03-22 21:41 被阅读0次

    所有HDFS系列文章都收藏在此专栏中,欢迎订阅。
    https://blog.csdn.net/yexiguafu/category_11153078.html

    【HDFS】EditLogTailer功能及原理(一)-- 整体流程

    【HDFS】EditLogTailer功能及原理(二)-- selectInputStreams细节详解

    在系列文章的第一篇中,我们用通俗的语言描述了EditLogTailer的基本工作过程,然后也留了一些坑待填。今天我们来填第一个坑,selectInputStreams方法细节详解。

    本文不会大段的复制源码逐行讲解,而是用图文的方式将自己的理解给描述出来。通过本文你将获得了解如下内容:

    ① 社区hadoop-3.3.0版本新增observer namenode read特性后,选择editlog的inputStream的细节。

    ② selectRpcInputStreams:hadoop-3.3.0后新增的通过RPC的方式获取editlog输入流数据,RPC的实现是从journal node的cache里获取的editlog数据。

    ③ selectStreamingInputStreams:原始版本就有的通过http获取editlog数据输入流的实现。

    一、selectInputStreams作用及参数介绍

    通过之前的文章我们知道,standby namenode需要从Journal node中获取editlog的输入流,然后在将这些editlog应用到standby namenode的内存中的fsimage中,以保持和active namenode状态的尽可能同步。

    那selectInputStreams的作用其实就是从Journal node中选择符合条件的editlog输入流。为什么需要选择呢? 很简单,可能有一些比较老的editlog文件还没来得及被清理,这些数据我们是不需要的,因此是不需要获取这些老的editlog文件的输入流的。什么是符合条件的呢? 举个例子,selectInputStreams方法有一个参数是fromTxid,代表选择出来的stream的第一个txid。我们会将当前stanby namenode的最新txid + 1的值传给这个参数,这样的话,我们选择出来的输入流就能包含新的数据了。

    相关文章

      网友评论

          本文标题:【HDFS】EditLogTailer功能及原理(二)-- se

          本文链接:https://www.haomeiwen.com/subject/jrdqjrtx.html