更新时间:2024-07-19 GMT+08:00

更改NodeManager的存储目录

操作场景

Yarn NodeManager定义的存储目录不正确或Yarn的存储规划变化时,MRS集群管理员需要在Manager中修改NodeManager的存储目录,以保证Yarn正常工作。NodeManager的存储目录包含本地存放目录“yarn.nodemanager.local-dirs”和日志目录“yarn.nodemanager.log-dirs”。适用于以下场景:

  • 更改NodeManager角色的存储目录,所有NodeManager实例的存储目录将同步修改。
  • 更改NodeManager单个实例的存储目录,只对单个实例生效,其他节点NodeManager实例存储目录不变。

对系统的影响

  • 更改NodeManager角色的存储目录需要停止并重新启动集群,集群未启动前无法提供服务。
  • 更改NodeManager单个实例的存储目录需要停止并重新启动实例,该节点NodeManager实例未启动前无法提供服务。
  • 服务参数配置如果使用旧的存储目录,需要更新为新目录。
  • 更改NodeManager的存储目录以后,需要重新下载并安装客户端。

前提条件

  • 在各个数据节点准备并安装好新磁盘,并格式化磁盘。
  • 规划好新的目录路径,用于保存旧目录中的数据。
  • 准备好MRS集群管理员用户admin

操作步骤

MRS 3.x之前的版本集群执行以下操作:

  1. 检查环境。

    1. 登录MRS控制台,在左侧导航栏选择“集群列表 > 现有集群”,单击集群名称。选择“组件管理”,查看Yarn的“健康状态”是否为“良好”。
      • 是,执行1.c
      • 否,Yarn状态不健康,执行1.b
    2. 请先修复Yarn异常,任务结束。
    3. 确定修改NodeManager的存储目录场景。
      • 更改NodeManager角色的存储目录,执行2
      • 更改NodeManager单个实例的存储目录,执行3

  2. 更改NodeManager角色的存储目录。

    1. 选择“集群列表 > 现有集群”,单击集群名称。选择“组件管理 > Yarn > 停止”,停止Yarn服务。
    2. 登录弹性云服务器,以root用户登录到安装Yarn服务的各个节点中,执行如下操作。
      1. 创建目标目录。

        例如目标目录为“${BIGDATA_DATA_HOME}/data2”:

        执行mkdir ${BIGDATA_DATA_HOME}/data2

      2. 挂载目标目录到新磁盘。

        例如挂载“${BIGDATA_DATA_HOME}/data2”到新磁盘。

      3. 修改新目录的权限。

        例如新目录路径为“${BIGDATA_DATA_HOME}/data2”:

        执行chmod 750 ${BIGDATA_DATA_HOME}/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/data2 -R

    3. 在MRS控制台界面,选择“集群列表 > 现有集群”,单击集群名称。选择“组件管理 > Yarn > 实例”,选择对应主机的NodeManager实例,单击“实例配置”选择“全部配置”

      将配置项“yarn.nodemanager.local-dirs”或“yarn.nodemanager.log-dirs”修改为新的目标目录。

      例如:如果修改“yarn.nodemanager.local-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/localdir”。如果修改“yarn.nodemanager.log-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/containerlogs”。

    4. 单击“保存配置”,勾选“重新启动受影响的服务或实例”,单击“确定”。重启Yarn服务。

      界面提示“操作成功”,单击“完成”,Yarn成功启动,任务结束。

  3. 更改NodeManager单个实例的存储目录。

    1. 选择“集群列表 > 现有集群”,单击集群名称。选择“组件管理 > Yarn > 实例”,勾选需要修改存储目录的NodeManager单个实例,选择“更多 > 停止实例”。
    2. 登录弹性云服务器,以root用户登录到这个NodeManager节点,执行如下操作。
      1. 创建目标目录。

        例如目标目录为“${BIGDATA_DATA_HOME}/data2”:

        执行mkdir ${BIGDATA_DATA_HOME}/data2

      2. 挂载目标目录到新磁盘。

        例如挂载“${BIGDATA_DATA_HOME}/data2”到新磁盘。

      3. 修改新目录的权限。

        例如新目录路径为“${BIGDATA_DATA_HOME}/data2”:

        执行chmod 750 ${BIGDATA_DATA_HOME}/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/data2 -R

    3. 在MRS控制台,单击指定的NodeManager实例并切换到“实例配置”。

      将配置项“yarn.nodemanager.local-dirs”或“yarn.nodemanager.log-dirs”修改为新的目标目录。

      例如:如果修改“yarn.nodemanager.local-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/localdir”。如果修改“yarn.nodemanager.log-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/containerlogs”。

    4. 单击“保存配置”,勾选“重新启动受影响的服务或实例”。单击“确定”。重启NodeManager实例。

      界面提示“操作成功”,单击“完成”,NodeManager实例启动成功。

MRS 3.x及后续版本集群也可执行以下操作:

  1. 检查环境。

    1. 登录Manager,选择“集群 > 待操作集群的名称 > 服务”查看Yarn的状态“运行状态”是否为“良好”。
      • 是,执行1.c
      • 否,Yarn状态不健康,执行1.b
    2. 修复Yarn异常,任务结束。
    3. 确定修改NodeManager的存储目录场景。
      • 更改NodeManager角色的存储目录,执行2
      • 更改NodeManager单个实例的存储目录,执行3

  2. 更改NodeManager角色的存储目录。

    1. 选择“集群 > 待操作集群的名称 > 服务 > Yarn > 停止服务”,停止Yarn服务。
    2. root用户登录到安装Yarn服务的各个节点中,执行如下操作。
      1. 创建目标目录。

        例如目标目录为“${BIGDATA_DATA_HOME}/data2”:

        执行mkdir ${BIGDATA_DATA_HOME}/data2

      2. 挂载目标目录到新磁盘。

        例如挂载“${BIGDATA_DATA_HOME}/data2”到新磁盘。

      3. 修改新目录的权限。

        例如新目录路径为“${BIGDATA_DATA_HOME}/data2”:

        执行chmod 750 ${BIGDATA_DATA_HOME}/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/data2 -R

    3. 在Manager管理界面,选择“集群 > 待操作集群的名称 > 服务 > Yarn > 实例”,选择对应主机的NodeManager实例,单击“实例配置”选择“全部配置”

      将配置项“yarn.nodemanager.local-dirs”或“yarn.nodemanager.log-dirs”修改为新的目标目录。

      例如:如果修改“yarn.nodemanager.local-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/localdir”。如果修改“yarn.nodemanager.log-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/containerlogs”。

    4. 单击“保存”,单击“确定”。重启Yarn服务。

      界面提示“操作成功”,单击“完成”,Yarn成功启动,任务结束。

  3. 更改NodeManager单个实例的存储目录。

    1. 选择“集群 > 待操作集群的名称 > 服务 > Yarn > 实例”,勾选需要修改存储目录的NodeManager单个实例,选择“更多 > 停止实例”。
    2. root用户登录到这个NodeManager节点,执行如下操作。
      1. 创建目标目录。

        例如目标目录为“${BIGDATA_DATA_HOME}/data2”:

        执行mkdir ${BIGDATA_DATA_HOME}/data2

      2. 挂载目标目录到新磁盘。

        例如挂载“${BIGDATA_DATA_HOME}/data2”到新磁盘。

      3. 修改新目录的权限。

        例如新目录路径为“${BIGDATA_DATA_HOME}/data2”:

        执行chmod 750 ${BIGDATA_DATA_HOME}/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/data2 -R

    3. 在Manager管理界面,单击指定的NodeManager实例并切换到“实例配置”。

      将配置项“yarn.nodemanager.local-dirs”或“yarn.nodemanager.log-dirs”修改为新的目标目录。

      例如:如果修改“yarn.nodemanager.local-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/localdir”。如果修改“yarn.nodemanager.log-dirs”参数,则将其值修改为“/srv/BigData/data2/nm/containerlogs”。

    4. 单击“保存”,单击“确定”。重启NodeManager实例。

      界面提示“操作成功”,单击“完成”,NodeManager实例启动成功。