NodeMananger弹性资源池实践
  GQ7psP7UJw7k 2023年11月19日 17 0

1. 背景

在离线集群中,有些冷数据集群专用于存放HDFS数据,很少用来提供计算操作,这些机器的计算资源都浪费了,它们的典型特征是:只启动datanode服务,不启动nodemanager服务。为了提高这些机器的资源利用率,希望在其他计算集群需要资源的时候,resourcemanager可以在冷数据集群中启动NodeManager服务,最大化利用计算资源。

2. 整体设计

如下所示,通过NodeMananger资源管理平台,执行集群的扩容命令,空闲节点会根据集群匹配对应的集群NodeMananger配置,启动NodeMananger产生对于集群的心跳:

Untitled.png

3. 功能与流程设计

NodeMananger管理平台提供两个功能:扩容和缩容操作。

  1. 扩容操作:
    1. 运维人员指定动态节点IP,需要资源的集群名,节点的核数、内存信息,发送给NodeMananger管理平台。
    2. NodeMananger从mysql数据库中获取动态节点信息,并插入即将扩容的节点。可以部署离线作业每天查询mysql观察动态资源池使用情况,输出报表信息。
    3. 管理平台创建一个包含扩容节点ip的nodemananger.onlist文件,发送给resourcemananger,随后让resourcemananger执行refreshNodes命令。
    4. 管理平台通过SSH远程操作扩容节点,根据集群名选择nodemananger启动的hadoop配置,随后启动nodemananger服务。
  2. 缩容操作:
    1. 运维人员指定动态节点IP,需要资源的集群名,发送给NodeMananger管理平台。
    2. 管理平台创建一个不包含扩容节点ip的nodemananger.onlist文件,发送给resourcemananger,随后让resourcemananger执行refreshNodes命令。随后NodeMananger根据心跳响应会自动终止进行,无需执行关闭nodemananger命令。

它们的流程如下:

Untitled 1.png

4. NodeManager白名单限制

默认情况下,nodemanager只支持一个白名单和黑名单,例如:

<property>
    <name>yarn.resourcemanager.nodes.include-path</name>
    <value>nodemanager.onlist</value>
  </property>
  <property>
    <name>yarn.resourcemanager.nodes.exclude-path</name>
    <value>nodemanager.offlist</value>
  </property>

但是在弹性资源池项目中,每个resourcemananger有两类nodemananger资源,一种是属于自身的固定nodemananger节点;第二种是从动态资源池中临时借过来的nodemananger节点。

每次扩缩容都会修改nodemanager.onlist和nodemanager.offlist文件。如果流程异常,将nodemananger.onlist中固定节点信息污染,可能导致固定节点下线,对集群造成致命影响。

为了提高安全性,需要将固定节点和动态节点分离成为两个nodemanager.onlist文件。Yarn代码需要支持读取nodemanager.onlist列表。如下所示:

<property>
    <name>yarn.resourcemanager.nodes.include-path</name>
    <value>nodemanager.onlist,nodemanager2.onlist</value>
  </property>
  <property>
    <name>yarn.resourcemanager.nodes.exclude-path</name>
    <value>nodemanager.offlist,nodemanager2.offlist</value>
  </property>

5. 代码修改

如下所示,在HostsFileReader文件中,通过for循环读取文件列表:

Untitled 2.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
  dhQTAsTc5eYm   2023年12月23日   50   0   0 HadoopHadoopapacheapache
GQ7psP7UJw7k