今天本要部署spark on yarn,因为要在hdfs创建一些共享文件,于是到hdfs web UI去看了一下,结果发现下面的错误,顺手处理一下。
刚刚接触大数据,还是有点小慌张的,学习了...
Tips: hdfs集群下线DataNode要严格遵守顺序,不然... (PS:大数据开发人员蜜汁自信纯手动搭建hadoop,不知道接手后还有多少坑要踩,奉劝大家不要重复造轮子。。。移步CDH)
There are 10 missing blocks. The following files may be corrupted:
执行命令: hdfs fsck /user/work02
查看丢失的文件详细信息
以上MISSING
状态的文件和web界面的一致。
直接查看文件,显示该文件是存在的:hdfs dfs -ls /path/to/file
检查文件内容是否可查看:hdfs dfs -tail /path/to/file
即,当前存活的node中没有该block,该block存在于Dead nodes。
warning
错误信息的办法就是在namenode直接删除已丢失的block即可$ hdfs fsck -delete /user/work02/.flink/application_1576583910922_0101/logback.xml
...
删除之后到web查看:此时missing blocks变为9。
依次删除其他的block,清理完后结果如下:
/path/to/hadoop/etc/hadoop/dfs.exclude
文件中增加要下线的机器清单:
node11
/path/to/hadoop/etc/hadoop/slaves
文件中删除要下线的机器 node11
行
这个时候,master上的DataNode的状态变为Decommission In Progress
。这个时候,在master上的DataNode的数据都在复制转移到其他的DataNode上,当数据转移完后,我们再刷新HDFS Web UI后,可以看到DataNode的状态变为Decommissioned
,表示这个DataNode已经下线,如下图: