1. 准备工作及调整相关参数
-
检查 HDFS 文件系统
hdfs fsck / -list-corruptfileblocks -openforwrite -files -blocks -locations
-
修复检查出的问题
hdfs fsck file_name -move 或 hdfs fsck file_name -delete
-
调整DataNodes的堆大小
HDFS -> 配置 -> DataNode -> 资源管理 -> 搜索 “Java Heap” -> 保存更改
DataNodes 堆大小至少配置 4 GB,以允许迭代和最大流的增加。.
-
设置DataNode平衡带宽
HDFS -> 配置 -> DataNode -> 性能 -> 搜索 “bandwidth” -> 保存更改
DataNode 平衡带宽值应小于磁盘和网络上的带宽,以最大限度地减少对群集的影响,但需花费更长时间。
-
根据需要更改可用空间策略平衡的阈值
HDFS -> 配置 -> DataNode -> 高级 -> 搜索 “balanced” -> 保存更改
-
调整线程数
HDFS -> 配置 -> DataNode -> 搜索 “threads” -> 保存更改
2. 配置需下线的 DataNode
-
配置下线 DataNode 的 hostname 或 IP
HDFS -> 配置 -> 搜索 “dfs_host” -> 保存更改
-
刷新配置
hadoop dfsadmin -refreshNodes
3. 查看 DataNode 状态,并等待下线完成
打开 NameNode Web UI
此时可以查看到正在下线的机器
DataNode 状态变为 Decommissioned 表示下线完成。
4. 下线DataNode
等待需下线的 DataNode 状态变为 Decommissioned,再执行下面操作。
停止 -> 解除授权 -> 删除 -> 重启 HDFS 服务
5. 清空 dfs_hosts_exclude.txt配置并刷新群集