今天启动hadoop文件系统一直处理安全模式,日志报错(The ratio of reported blocks 0.9714 has not reached the threshold 0.9990. Safe mode will be turned off automatically.),究其原因是之前做hbase存储时要求数据存储三份,而我的hadoop为伪分布模式,数据只能有一个副本,通过hadoop fsck /命令可以看到 Missing replicas: 结果能达到近200%。以前我一直以为,hbase的Replication是根据hdfs的设置的,可是不然。通过查找和询问,最终是在hbase-site.xml里添加一个dfs.replication来设置hbase的replication数。
因是测试环境,解决办法如下:
1、 先手动退出安全模式:hadoop dfsadmin -safemode leave
2、启动hbase清空测试表数据,停止hbase、hadoop(减少hdfs的数据量,使正常数据块达到0.9990以上)
3、修改hbase-site.xml增加dfs.replication=1设置(后续操作hbase时只保存一个副本)
4、重启start-dfs.sh可正常退出安全模式。