一、目的
在海豚跑定时跑kettle的从Kafka到HDFS的任务时,由于Linux服务器的某个文件磁盘空间满了,导致Hadoop的NodeName进入安全模式,此时光执行hdfs dfsadmin -safemode leave命令语句没有效果(虽然显示Safe mode is OFF,但没效果,一旦执行还是报错)

二、报错详情
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/3f334a0c-3fb1-44fd-97fe-55a4f5787d39. Name node is in safe mode.
Resources are low on NN. Please add or free up more resourcesthen turn off safe mode manually. NOTE: If you turn off safe mode before adding resources, the NN will immediately return to safe mode. Use "hdfs dfsadmin -safemode leave" to turn safe mode off. NamenodeHostName:hurys22
三、NameNode进入安全模式的原因
服务器文件夹的磁盘空间不足,要么加资源扩容,要么删除或转移对应的文件
四、解决措施
(一)第一步,查看磁盘的容量以及当前使用情况

可以看到,磁盘满溢的文件夹是/dev/mapper/centos-root,已用100%,怪不得namenode进入安全模式
而容量最大的是/dev/mapper/centos-home,这个文件夹有241G,但目前只用了4%而已
(二)第二步,查看哪个文件夹的文件大: du -sh /*

可以看到,opt文件夹最大,为31G.因为我之前安装各种工具以及它们的安装包都在这个opt目录
(三)第三步,对文件大的文件夹,要么删除多余文件,要么迁移相关文件
对磁盘满溢的文件夹的文件要么删除,要么迁移到容量大但是使用率低的文件夹/dev/mapper/centos-home
经过一番删除迁移后,最后磁盘的目前情况是
root@hurys22 soft\]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 9.7M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 50G 39G 12G 78% / /dev/sda1 1014M 185M 830M 19% /boot /dev/mapper/centos-home 241G 9.7G 232G 5% /home tmpfs 1.6G 4.0K 1.6G 1% /run/user/529 tmpfs 1.6G 0 1.6G 0% /run/user/0 ## (四)第四步,执行命令语句退出NameNode安全模式 # hdfs dfsadmin -safemode leave Safe mode is OFF ##  (五)第五步,验证一下,NameNode是否退出安全模式 \[root@hurys22 \~\]# hdfs dfsadmin -safemode get Safe mode is OFF  ## 乐于奉献共享,帮助你我他!