HDFS
NameNode和SecondaryNameNode(面试开发重点)
CheckPoint时间设置
(1)通常情况下,SecondaryNameNodec每隔一小时执行一次(3600秒)。
配置文件:hdfs-default.xml
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
</property>
(2)一分钟检查一次操作次数,当操作次数达到1百万时,SecondaryNameNode 执行一次。
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>操作动作次数</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description> 1分钟检查一次操作次数</description>
</property >
NameNode故障处理
NameNode故障后,可以采用如下两种方法恢复数据。
方法一:将 SecondaryNameNode 中数据拷贝到 NameNode 中进行数据备份或恢复;
kill -9 NameNode进程号
删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
[user_test@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
- 拷贝SecondaryNameNode中数据到原NameNode存储数据目录
[user_test@hadoop102 dfs]$ scp -r user_test@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
- 重新启动NameNode
[atguigu@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
方法二:使用 -importCheckpoint 选项启动 NameNode 守护进程,从而将 SecondaryNameNode 中数据拷贝到 NameNode 目录中。
- 修改hdfs-site.xml中的(因为原来的3600秒时间太长了,所以改成120)
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>120</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>
</property>
kill -9 NameNode 进程
删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
[user_test@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
- 如果 SecondaryNameNode 不和 NameNode 在一个主机节点上,需要将 SecondaryNameNode 存储数据的目录拷贝到 NameNode 存储数据的平级目录,并删除 in_use.lock 文件
[user_test@hadoop102 dfs]$ scp -r user_test@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./
[user_test@hadoop102 namesecondary]$ rm -rf in_use.lock
[user_test@hadoop102 dfs]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs
[user_test@hadoop102 dfs]$ ls
data name namesecondary
- 导入检查点数据(等待一会ctrl+c结束掉)
[user_test@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -importCheckpoint
- 启动NameNode
[user_test@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
待续…
集群安全模式
顺顺利利,有自己满意结果~