美文网首页
Hadoop HDFS 2.7.2 升级 2.8.5 的注意事项

Hadoop HDFS 2.7.2 升级 2.8.5 的注意事项

作者: xudong1991 | 来源:发表于2021-09-03 09:31 被阅读0次

几个关键点

在 Hadoop-2.7.2 和 Hadoop-2.8.5 中

  1. Hadoop RPC 版本一致,都为9,因此基础通信 OK
    RpcConstants.CURRENT_VERSION = 9

  2. Hadoop 自身提供保证:高版本中各组件的 protocol 向下兼容,即:RPC 调用的参数、语义等保证向下兼容

  3. NameNode、DataNode、JournalNode 的存储 layout 相同,因此 fsimage、editlog、block/meta 文件的格式、布局均一致,详细如下:

    1. Hadoop-2.7.2
      HdfsConstants.NAMENODE_LAYOUT_VERSION = -63
      HdfsConstants.DATANODE_LAYOUT_VERSION = -57
      JournalNodeLayOutVersion = HdfsConstants.NAMENODE_LAYOUT_VERSION = -63

    2. Hadoop-2.8.5
      HdfsServerConstants.NAMENODE_LAYOUT_VERSION = -63
      HdfsServerConstants.DATANODE_LAYOUT_VERSION = -57
      JournalNodeLayOutVersion = HdfsConstants.NAMENODE_LAYOUT_VERSION = -63

  4. 不存在兼容性 gap
    NN 和 DN 之间有一个特殊的兼容性 gap: 2.8.5的 NN 能向下兼容的最小 DN 版本是 2.1.0-beta。除此之外,没有其它特殊的兼容性gap。
    dfs.namenode.min.supported.datanode.version = 2.1.0-beta

结论

  1. 在这种情况下,不需要滚动升级这么麻烦,天然支持热升级,直接替换新版本,然后重启进程就可以了,如果中途出现任何问题,也都可以替换老版本,再重启进程进行回退。
  2. 按照先升 server 后升 client 的原则,升级顺序如下,升级时务必顺序升级,回退时务必逆向回退:
    1. JN
    2. NN
    3. DN

跨版本访问 HDFS

用 2.7.2 的 HDFS client 访问 2.8.5 的集群时,由于满足下面两个条件,所以没什么问题:

  1. Hadoop RPC 版本一致,基础通信 OK。
  2. Hadoop 2.8.5 中各组件的 protocol 向下兼容 2.7.2。

禁止事项

不要出现 2.7.2 NN + 2.8.5 DN 的组合
在 2.8.5 中, DataNode 的 DatanodeProtocol.sendHeartbeat() 接口中新增了一个 optional 的 bool 类型参数,控制是否需要进行 blockReport,而 2.7.2 的 NN 不认识这个参数,这会导致 DN 永远不能 blockReport(必须手动触发),最终导致 NameNode 无法从 SafeMode 中退出。

相关文章

网友评论

      本文标题:Hadoop HDFS 2.7.2 升级 2.8.5 的注意事项

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