hadoop SecondaryNameNode 目录结构

    Secondary NameNode 用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS元数据的快照。

    在 /home/hadoop/hadoop_home/dfs/namesecondary/current 这个目录中查看 SecondaryNameNode 目录结构。

注:也可能是/home/hadoop/hadoop_home/tmp/dfs/namesecondary/current
VERSION
    SecondaryNameNode 的 namesecondary/current 目录和主 namenode 的 current 目录的布局相同。

    好处:在主 namenode 发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。

    方法一:将 SecondaryNameNode 中数据拷贝到 namenode 存储数据的目录;

    方法二:使用-importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode用作新的主 namenode。

1)案例实操(一):

模拟 namenode 故障,并采用方法一,恢复 namenode 数据

    (1)kill -9 namenode 进程

    (2)删除 namenode 存储的数据(/home/hadoop/hadoop_home/dfs/name)
rm -rf /home/hadoop/hadoop_home/dfs/name/*

    (3)拷贝 SecondaryNameNode 中数据到原 namenode 存储数据目录
cp -R /home/hadoop/hadoop_home/tmp/dfs/namesecondary/* /home/hadoop/hadoop_home/dfs/name/

    (4)重新启动 namenode
sbin/hadoop-daemon.sh start namenode

2)案例实操(二):

模拟 namenode 故障,并采用方法二,恢复 namenode 数据

    (0)修改 hdfs-site.xml 中的

<property>
 	<name>dfs.namenode.checkpoint.period</name>
 	<value>120</value>
</property>
<property>
 	<name>dfs.namenode.name.dir</name>
 	<value>/home/hadoop/hadoop_home/dfs/name</value>
</property>

    (1)kill -9 namenode 进程

    (2)删除 namenode 存储的数据(/home/hadoop/hadoop_home/dfs/name)
rm -rf /home/hadoop/hadoop_home/dfs/name/*

    ( 3 )如果 SecondaryNameNode 不 和 Namenode 在 一 个 主 机 节点上,需要将 SecondaryNameNode 存储数据的目录拷贝到 Namenode 存储数据的平级目录。
    [hadoop@master:~/hadoop_home/dfs]$ pwd

/home/hadoop/hadoop_home/dfs

    [hadoop@master:~/hadoop_home/dfs]$ ls

data name namesecondary

    (4)导入检查点数据(等待一会 ctrl+c 结束掉)
bin/hdfs namenode -importCheckpoint

    (5)启动 namenode
sbin/hadoop-daemon.sh start namenode

    (6)如果提示文件锁了,可以删除 in_use.lock
rm -rf /home/hadoop/hadoop_home/dfs/namesecondary/in_use.lock

猜你喜欢

转载自blog.csdn.net/qq_36885128/article/details/88073223