由于公司机房异常断电,导致测试环境的hadoop集群数据全部down掉。重启hadoop集群后,访问:
http://xxx.xxx.xxx.xx:50070/dfshealth.html
提示:
如图:
这个不是错误。因为hadoop启动时,会进入安全模式进行自检,自检完毕就好了。
下面来看看NameNode重启的状态变化:
NameNode启动,集群将处于安全模式。
查看集群的状态:
HDFS中任何文件,目录和Block都被表示为一个对象存储在NameNode的内存中。该对象占用150 bytes的内存空间。在NameNode启动的时候,NameNode加载fsimage(Filesystem image:文件meta信息的持久化的检查点)文件到内存中,然后在editlog中执行相应的操作。加载fsimage文件包含文件metadata信息,但是不包含文件块位置的信息。
文件块位置的信息,是在所有DataNode启动的时候扫描本地磁盘,之后,DataNode保存的block信息,然后将这些信息汇报给NameNode,NameNode接收到每个DataNode的块信息汇报后,将接收到的块信息和其所在的DataNode等信息组装成BlockMap,保存在NameNode的内存中。
最后离开安全模式,NameNode正式可用。
在查看集群的状态:
查看NameNode日志:
因为DataNode向NameNode汇报块信息的进度,当99.9%的block汇报完毕就会离开安全模式。
自检完之后再访问: http://xxx.xxx.xxx.xx:50070/dfshealth.html 。会发现有些Block已经无法恢复了。如图:
提示:
[Bash shell]
纯文本查看
复制代码
01 | NameNode is still loading. Redirecting to the Startup Progress page. |
如图:
![](https://i-blog.csdnimg.cn/blog_migrate/8bd17245c7d7580c9df2a654048cc453.png)
这个不是错误。因为hadoop启动时,会进入安全模式进行自检,自检完毕就好了。
下面来看看NameNode重启的状态变化:
NameNode启动,集群将处于安全模式。
查看集群的状态:
[Bash shell]
纯文本查看
复制代码
01 | [hduser@hadoop0 bin]$ hdfs dfsadmin -safemode get |
02 | Safe mode is ON |
HDFS中任何文件,目录和Block都被表示为一个对象存储在NameNode的内存中。该对象占用150 bytes的内存空间。在NameNode启动的时候,NameNode加载fsimage(Filesystem image:文件meta信息的持久化的检查点)文件到内存中,然后在editlog中执行相应的操作。加载fsimage文件包含文件metadata信息,但是不包含文件块位置的信息。
文件块位置的信息,是在所有DataNode启动的时候扫描本地磁盘,之后,DataNode保存的block信息,然后将这些信息汇报给NameNode,NameNode接收到每个DataNode的块信息汇报后,将接收到的块信息和其所在的DataNode等信息组装成BlockMap,保存在NameNode的内存中。
最后离开安全模式,NameNode正式可用。
在查看集群的状态:
[Actionscript3]
纯文本查看
复制代码
01 | [hduser@hadoop0 bin]$ hdfs dfsadmin -safemode get |
02 | Safe mode is OFF |
查看NameNode日志:
[Bash shell]
纯文本查看
复制代码
01 | 2015-08-17 10:05:22,298 INFO org.apache.hadoop.hdfs.StateChange: STATE* Safe mode ON, in safe mode extension. |
02 | The reported blocks 450638 has reached the threshold 0.9990 of total blocks 450676. The number of live datanodes 5 has reached the minimum number 0. In safe mode extension. Safe mode will be turned off automatically in 9 seconds. |
03 | 2015-08-17 10:05:25,844 INFO org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor: Rescanning after 30000 milliseconds |
04 | 2015-08-17 10:05:25,846 INFO org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor: Scanned 0 directive(s) and 0 block(s) in 1 millisecond(s). |
05 | 2015-08-17 10:05:32,299 INFO org.apache.hadoop.hdfs.StateChange: STATE* Leaving safe mode after 727 secs |
06 | 2015-08-17 10:05:32,299 INFO org.apache.hadoop.hdfs.StateChange: STATE* Safe mode is OFF |
因为DataNode向NameNode汇报块信息的进度,当99.9%的block汇报完毕就会离开安全模式。
自检完之后再访问: http://xxx.xxx.xxx.xx:50070/dfshealth.html 。会发现有些Block已经无法恢复了。如图:
![](https://i-blog.csdnimg.cn/blog_migrate/eb2e4687f0f8bf4b5c672beca0473461.png)