由于公司近期需要将机械盘替换成SSD盘,SSD盘又不足,需要下线部分数据节点.刚开始是直接粗暴的关掉了4个节点上的datanode服务,出现很多丢失的数据块,执行hql时出现无法获取数据块执行失败;
经过排查原因集群副本设置的是2,直接关闭会导致副本来不及复制就关掉.
正确的关闭方式如下:
首先关闭一台,使用检查块的命令查看复制块复制进度,具体命令如下:
```
hdfs fsck / -files -blocks
```
等到如下指标为0时,再关掉下一台
```
Missing replicas: 0 (0 %)
09-22
879
12-28
981
11-28