自动进入安全模式的原因可能有:
1) 集群进行节点的剔除(此时有些数据副本的block被发现丢失,因此会进入安全模式直到找到或恢复完全的副本为止。) 这种情况要恢复完全部的副本可能会用时很久,如果之前数据不需要,可以直接进行删除,或是直接手动退出安全模式:hadoop dfsadmin -safemode leave
。或是在hdfs-site.xml中设置如下参数:
<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0</value>
</property>
上述参数的含义是hdfs获取到整个文件系统block的百分之多少才可以退出安全模式,设为0则代表永远不会进入安全模式。如果不使用上述方法,则需要等待一段时间让block进行恢复。
2) 集群数据节点个数过少(此时在hdfs-site.xml中若设置replication=3
,则可能无法进行多副本的存储导致进入安全模式,该情况下可以重新设置副本数<=2来解决)
3) 还有一种情况就是磁盘空间不足,也就是说HDFS预警。此时可以删除一些historyserver的日志或是一些没有用的数据来缓解。
我的博客 : https://NingSM.github.io
转载请注明原址,谢谢。