hdfs 如何实现退役节点快速下线(也就是退役节点上的数据块快速迁移)
参考 https://www.cnblogs.com/jiangxiaoxian/p/9665588.html
进度可在HDFS的50070可视化界面的Decommissioning处查看**
Under replicated blocks : 有备份的blocks
Blocks with no live replicas : 没有存活备份的blocks(存备份的datanode下线了)
Under Replicated Blocks In files under construction : 备份数不够的blocks
可调整集群参数,对退服进行调优,注意,更改参数需要重启服务。需要修改的参数如下:
组件 | 实例 | 参数类别 | 参数名称 | 默认值 | 修改值 | 参数含义 | 调整场景 | 是否可以默认值调整 |
---|---|---|---|---|---|---|---|---|
HDFS | NameNode | balance/退服性能参数 | dfs.datanode.balance.bandwidthPerSec | 20971520 | 209715200 | 【说明】每个DataNode可用于负载均衡的最大带宽量(每秒的字节数)。 | balance-性能调优 | 不建议调整默认值 |
HDFS | DataNode | balance/退服性能参数 | dfs.datanode.balance.max.concurrent.moves | 5 | 30 | 允许在DataNode上进行负载均衡的最大线程数。 | 有必要调整 | |
HDFS | NameNode | balance/退服性能参数 | dfs.namenode.replication.max-streams | 10 | 64 | DataNode上复制线程的最大数。 | C70默认值已调整为64,有必要继续调整 | |
HDFS | NameNode | balance/退服性能参数 | dfs.namenode.replication.max-streams-hard-limit | 20 | 500 | 对DataNode上复制线程数的硬限制。 | C70默认值已调整为128,有必要继续调整 | |
HDFS | NameNode | balance/退服性能参数 | dfs.namenode.replication.work.multiplier.per.iteration | 10 | 500 | 高级属性。修改时需谨慎。该参数表示NameNode通过DataNode心跳发送这样一个命令列表时DataNode上并行开始的用于复制的块传输的总量。 |
HDFS | NameNode | 运行-性能调优 | dfs.namenode.handler.count | 64 | 192 | NameNode处理线程数 | 大集群,性能调优 | 可以调整/更耗内存 |
---|---|---|---|---|---|---|---|---|
HDFS | DataNode | 运行-性能调优 | dfs.datanode.handler.count | 8 | 24 | DataNode处理线程数 | 大集群,性能调优 | 可以调整/更耗内存 |
HDFS | NameNode | 运行-性能调优 | ipc.server.read.threadpool.size | 1 | 10 | NameNode处理请求线程池大小 | 大集群,性能调优 | 可以调整/更耗内存 |
---|---|---|---|---|---|---|---|---|
HDFS | DataNode | 运行-性能调优 | dfs.datanode.max.transfer.threads | 4096 | 8192 | 与DataNode间传输数据的线程的最大数。 | 负载高集群,性能调优 | C70默认值已调整 |
---|---|---|---|---|---|---|---|---|
处理“没有实时副本的块”
Dealing with ‘Blocks with no live replicas’ in the HDFS
参考: https://piyushroutray.com/2019/06/04/dealing-with-blocks-with-no-live-replicas-in-the-hdfs/