问题描述:

    datanode decommission

    注:如果有节点上同时部署有hbase regionserver,先迁移停止rs,再下线dn。

    #regionserver 优雅停止
    ## --maxthreads 数据迁移线程数,默认为1;注意控制变量
    source config/hbase-env.sh
    current/bin/graceful_stop.sh --config  ./config  --maxthreads 10 主机名
    #可在hbase master ui页面查看迁移后各几点region数量,确保为0

    FAQ-datanode下线的方式 - 图1

    1、点击页面操作——>decommission,观察namenode ui,或者n9e观察监控指标namenode_FSNamesystem_UnderReplicatedBlocks

    FAQ-datanode下线的方式 - 图2

    2、等待节点数据复制完成后,点击停止节点

    FAQ-datanode下线的方式 - 图3

    decomm方式下线慢的,可以调整nn的参数加快下线 ,根据集群情况适当调整观察

    
    #namenode参数,需要重启nn,主备切换后生效
    #每次迭代处理的副本任务数
    dfs.namenode.replication.work.multiplier.per.iteration  32
    
    #每个DataNode同时进行的复制流数量限制
    dfs.namenode.replication.max-streams   64
    
    #复制流的硬性上限,通常设置为 max-streams 的 1.5-2倍
    dfs.namenode.replication.max-streams-hard-limit  128
    
    
    # 复制任务分发流程
    1. NameNode3秒检查一次副本状态(dfs.heartbeat.interval)
    2. 识别需要复制的块(under-replicated blocks
    3. 按照 work.multiplier.per.iteration 限制分发任务
    4. 每个DN按照 max-streams 限制接收复制任务
    5. 紧急情况下最多不超过 max-streams-hard-limit
    
    速度参考:9868513block 28.84 TB 大约30-35h完成
    
    以上参数尽量在deco操作前调整,若在deco下线后调整,确认机器和机架对应关系完整
    cat /usr/easyops/hdfs/*/config/topology_mappings.data

    3、 delete datanode

    FAQ-datanode下线的方式 - 图4