1 分析
挂掉后首先肯定是进行重启,如果时间段比较高峰期,肯定要快速移动文件进行复原,等错过高峰进行事故分析!
2 单节点挂掉数据恢复
方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录;
方法二:使用-importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode中数据拷贝到namenode目录中。步骤如下:拿一台和原来机器一样的机器,包括配置和文件,一般来说最快的是拿你节点机器中的一台,立马能用(部分配置要改成NameNode的配置)创建一个空的文件夹,该文件夹就是配置文件中dfs.name.dir所指向的文件夹。拷贝你的secondary NameNode checkpoint出来的文件,到某个文件夹,该文件夹为fs.checkpoint.dir指向的文件夹执行命令bin/hadoop namenode -importCheckpoint这样NameNode会读取checkpoint文件,保存到dfs.name.dir。但是如果你的dfs.name.dir包含合法的fsimage,是会执行失败的。因为NameNode会检查fs.checkpoint.dir目录下镜像的一致性,但是不会去改动它
但是,利用secondary namenode恢复的数据并不是最新的,毕竟它只保存了最近一次的快照
3 内存溢出
hadoop集群采用的是默认的hadoop-heapsize大小,1000m,内存过小导致namenode2出现内存溢出,日志如下:
该改hadoop-env.sh里的HADOOP_HEAPSIZ参数为更大,默认是动态适应.