tencent cloud

文档反馈

HDFS DataNode 维护状态切换实践教程

最后更新时间:2024-10-30 10:40:03
    DataNode 维护状态(IN_MAINTENANCE)适用于 DataNode 短暂下线,但不需要迁移数据的场景,如服务快速维修,磁盘更换等。DataNode 维护模式操作入口控制台默认不开启,需要用户手动配置后支持。
    说明:
    1. 该操作仅支持 Hadoop3.x 及以上版本。
    2. 暂停状态的 DataNode 不支持维护操作。

    开启控制台切换管理状态操作入口

    1. 修改 hdfshosts 中的内容为 json 格式。
    使用控制台集群脚本功能在 Master 节点上执行脚本文件 hdfshosts_txt_to_json.sh 和 hdfshosts_txt_to_jso_rollback.sh,脚本文件内容如下:
    #!/bin/bash
    
    cd /usr/local/service/hadoop/etc/hadoop
    file=hdfshosts
    if [ ! -f "$file" ];then
    echo "$file not exists"
    exit -1
    fi
    
    bak_file="$file.txt.bak"
    if [ ! -f "$bak_file" ];then
    cp -f $file $file.txt.bak
    fi
    
    output_file="$file.tmp"
    ## 生成json文件
    echo '[' > "$output_file"
    first_record=true
    while IFS= read -r line
    do
    if [ "$first_record" = false ]; then
    echo ',' >> "$output_file"
    fi
    
    echo " {\\"hostName\\": \\"$line\\"}" >> "$output_file"
    
    first_record=false
    done < "$file"
    echo ']' >> "$output_file"
    mv -f $output_file $file
    chown hadoop:hadoop $file
    chmod 755 $file
    cat $file
    #!/bin/bash
    
    cd /usr/local/service/hadoop/etc/hadoop
    file=hdfshosts
    bak_file="$file.txt.bak"
    cp -f $bak_file $file
    chown hadoop:hadoop $file
    chmod 755 $file
    cat $file
    2. 在 hdfs-site.xml 中新增配置项。
    新增配置参数 dfs.namenode.hosts.provider.classname,参数值 org.apache.hadoop.hdfs.server.blockmanagement.CombinedHostFileManager。
    
    3. 保存并下发配置后,重启 NameNode。
    4. 查看 WebUI 或者执行 hdfs dfsadmin -report 进行检查。
    5. (建议)缩容、扩容 core 节点一次,因为上述操作会修改 hdfshosts 文件,避免后续出现问题。
    6. 在 HDFS 角色管理中出现切换管理状态按钮。

    DataNode 进入维护状态

    1. 登录 EMR 控制台,在集群列表中单击对应的集群 ID/名称进入集群详情页。
    2. 在集群详情页中单击集群服务,然后选择 HDFS 组件右上角操作 > 角色管理
    3. 角色管理勾选操作状态为已启动的 DataNode 角色后,选择更多>切换管理状态执行 DataNode 进入维护状态操作。
    4. 选择进入维护状态时,可设置维护时间。维护时间内 DataNode 将不再对外提供服务,且不会进行数据迁移;超过配置的维护时间之后还没有恢复服务将开始数据迁移。

    DataNode 退出维护状态

    若维护时间内节点维修完成,超时后 DataNode 将重新对外提供服务,但是维护状态需要用户在控制台手动操作退出。
    1. 登录 EMR 控制台,在集群列表中单击对应的集群 ID/名称进入集群详情页。
    2. 在集群详情页中单击集群服务,然后选择 HDFS 组件右上角操作 > 角色管理
    3. 角色管理勾选操作状态为已启动(维护中)的 DataNode 角色后,选择更多>切换管理状态执行 DataNode 退出维护状态操作。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持