为了保证元数据的安全性,我们一般都是先确定好我们的磁盘挂载目录,将元数据的磁盘做RAID1
Namenode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。
dfs.namenode.name.dir
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas
secondaryNamenode对namenode当中的fsimage和edits进行合并时,
每次都会先将namenode的fsimage与edits文件拷贝一份过来,
所以fsimage与edits文件在secondarNamendoe当中也会保存有一份,
如果namenode的fsimage与edits文件损坏,
那么我们可以将secondaryNamenode当中的fsimage与edits拷贝过去给namenode继续使用,
只不过有可能会丢失一部分数据。这里涉及到几个配置选项
namenode保存fsimage的配置路径
dfs.namenode.name.dir
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas
namenode保存edits文件的配置路径
dfs.namenode.edits.dir
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/edits
secondaryNamenode保存fsimage文件的配置路径
dfs.namenode.checkpoint.dir
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/snn/name
secondaryNamenode保存edits文件的配置路径
dfs.namenode.checkpoint.edits.dir
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/snn/edits
使用jps查看namenode进程号,然后直接使用kill -9 进程号杀死namenode进程
jps
[root@wcl001 hadoop-2.6.0-cdh5.14.0]# jps
3776 NodeManager
4120 Jps
3224 NameNode
3674 ResourceManager
3484 SecondaryNameNode
3325 DataNode
[root@wcl001 hadoop-2.6.0-cdh5.14.0]# kill -9 3224
namenode所在机器执行以下命令,删除fsimage与edits文件
删除fsimage与edits文件
rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/*
rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/*
将secondaryNameNode所在机器的fsimage与edits文件拷贝到
namenode所在的fsimage与 edits文件夹下面去
------------------------------------------------------------------------------------------------------------------------
由于我的secondaryNameNode与namenode安装在同一台机器,
都在node01上面,node01执行以下命令进行拷贝
------------------------------------------------------------------------------------------------------------------------
cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/
------------------------------------------------------------------------------------------------------------------------
cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits
node01服务器执行以下命令启动namenode
cd hadoop-2.6.0-cdh5.14.0/
sbin/hadoop-daemon.sh start namenode
http://node01:50070/explorer.html#/