美文网首页
HDFS 机架解析的一个优化

HDFS 机架解析的一个优化

作者: xudong1991 | 来源:发表于2021-09-05 11:22 被阅读0次

现状

NameNode 通过调用机架解析脚本解析一个 node,并缓存结果。在某些情况下(例如 NN 刚切主之后),NN 的机架解析操作会非常频繁,会持续性地同时拉起几十个机架解析进程,直接打满机器 CPU。此外,由于调用进程开销较大,此时很可能会导致 NN 处理速度突然下降,导致 callQueue 打满,特别是对于那些负载非常高的集群,这种情况更加常见。

优化策略

  1. NameNode 在启动时首先加载全量机架解析表并缓存(只需加入到已有的 cache map 中即可,不用自己维护新的 cache)。
  2. 对于那些在 NameNode 启动时没有缓存的 IP,继续按照标准的机架解析流程进行解析(解析完成后自动添加到缓存中)。
  3. 机架 cache 的定期更新机制.

NameNode 新增配置

  1. 指定获取全量机架解析表的脚本
    hdfs-site.xml 中,新增一个配置项(例如 net.topology.get-all-items.script.file.name),取值为获取全量机架解析表的脚本,默认为 null. 对此脚本的要求是:

    1. 脚本需要 chmod 增加 x 权限,否则 NameNode 无法执行此脚本。
    2. 执行该脚本,其输出应为完整的机架解析表。
    3. 解析表内容需要按照下面的格式组织:
      • 每行一个解析项
      • 每个解析项的格式为: 节点IP Rack

    脚本的具体实现方式非常灵活,可以按需编写,根据解析表大小,可以选择逐项 echo 、cat 本地文件、ssh 到某台指定机器上执行某个命令、list PG 数据库、list redis 数据库,等等。

  2. NameNode 机架缓存定期更新间隔
    同样在 hdfs-site.xml 中,新增一个定期更新配置项(例如
    net.topology.refresh.interval.seconds,默认值为3600(即1小时))。 注意:机架缓存的更新方式是执行上面指定的全量加载脚本(因此如果没有指定该脚本,则不更新),而非针对每个 DN IP 单独进行机架解析并更新缓存,原因:频繁拉起机架解析进程会严重占用 NN 机器 CPU.

机架解析表加载脚本示例

简单起见,这里选择逐行 echo 解析表

  1. 在 hdfs-site.xml 中,指定获取机架解析表的脚本:
<property>
    <name>net.topology.get-all-items.script.file.name</name>
    <value>/tmp/getAllRacks.sh</value>
</property>
  1. 脚本具体实现如下:
echo "192.168.202.11 /rack1"
echo "192.168.202.12 /rack2"
echo "192.168.202.13 /rack3"
  1. NN 的机架解析表加载日志


相关文章

  • HDFS 机架解析的一个优化

    现状 NameNode 通过调用机架解析脚本解析一个 node,并缓存结果。在某些情况下(例如 NN 刚切主之后)...

  • hdfs详解之架构、SNN和副本放置策略

    1.HDFS架构 HDFS是一个主从架构。Rack代表机架一个机架一般是10台服务器,或者是5台带GPU的服务器。...

  • HDFS 机架感知(Rack Awareness)

    什么是机架感知 设置机架感知的意义: 默认情况: 默认情况下HDFS没有开启机架感知,所有的机器默认都是在同一个机...

  • 04.HDFS拓展

    HDFS拓展 一、副本摆放策略 不同的版本副本拜访策略不同,主要是针对rack(机架)而选择的策略,机架之间通信的...

  • HDFS--机架感知

    君子生非异也,善假于物也。 Hadoop的设计目的:解决海量大文件的处理问题,主要指大数据的存储和计算问题,其中,...

  • Hadoop 2.6.0 HDFS Rack Awareness

    Hadoop 2.6.0 HDFS Rack Awareness(机架感知)原理与配置步骤详解 前言:  多副本前...

  • hadoop 小文件

    2.3 HDFS小文件优化方法 2.3.1 HDFS小文件弊端 HDFS上每个文件都要在NameNode上建立一个...

  • HDFS 磁盘写及balance

    1. HDFS写策略 第一复本写本地, 第二复本写其他机架, 第三复本写其他机架的不同节点目的: 尽可能地容灾, ...

  • hadoop机架感知以及HDFS

    HDFS副本存放策略: 第一个副本,在客户端相同的节点(如果客户端是集群外的一台机器,就随机选节点,但是系统会避免...

  • Hadoop面试问题和回答4

    1 HDFS数据块复制时的目的节点的选择原则? 1 和客户端在同一节点或者同一个机架2 选择其他机架3 和第二个一...

网友评论

      本文标题:HDFS 机架解析的一个优化

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