HDFS HA系列实验之七:NN故障转移处理
2014-11-14 00:00
423 查看
NN是HDFS的核心,一旦破坏,hadoop整个系统将瘫痪。hadoop2.2.0提供了NN HA,提高了NN的可用性。但如果发生了NN故障转移,那么需要处理故障点。本实验主要是针对NN故障转移的几种情况的处理:
实验一:原Active NN意外挂机或JVM溢出等原因造成,但原Active NN文件系统完好
实验二:原Active NN元数据损坏或重新部署新的NN
本实验环境搭建指导:
HDFS HA系列实验之二:HA+JournalNode+zookeeper
本实验相关的hadoop配置文件下载(HA+JN+ZK+proxy)
:
根据上面相关资料重新配置HA+JournalNode+zookeeper环境,并格式化后启动,然后使用物理机192.168.100.111(机器名wyy)作为客户端来访问集群。
[hadoop@product202 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product202 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product203 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product203 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product204 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product204 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product201 ~]$ cd /app/hadoop/hadoop220/
[hadoop@product201 hadoop220]$ bin/hdfs namenode -format
[hadoop@product201 hadoop220]$ bin/hdfs zkfc -formatZK
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product202 ~]$ cd /app/hadoop/hadoop220/
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product202 hadoop220]$ bin/hdfs namenode -bootstrapStandby
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product201 hadoop220]$ sbin/hadoop-daemons.sh start datanode
1:实验一
客户端通过http://product201:50070可以发现product201处于active状态
客户端通过http://product202:50070可以发现product202处于standby状态
重启product201(因为没有zookeeper和JN进程在跑,可以直接重新启动来模拟机器故障),这时:
客户端通过http://product201:50070已经无法访问
客户端通过http://product202:50070可以发现product202处于active状态
此时文件操作正常
启动product201的NN守护进程
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
此时文件操作正常
在product202上kill DFSZKFailoverController进程和namenode进程,模拟product202故障,
[hadoop@product202 hadoop220]$ jps
2374 NameNode
2472 JournalNode
2558 DFSZKFailoverController
2930 Jps
1706 QuorumPeerMain
[hadoop@product202 hadoop220]$ kill 2374
[hadoop@product202 hadoop220]$ kill 2558
[hadoop@product202 hadoop220]$ jps
2472 JournalNode
2998 Jps
1706 QuorumPeerMain
这时:
客户端通过http://product201:50070可以发现product201处于active状态
客户端通过http://product202:50070已经无法访问
在客户端上传文件
hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -put /home/mmicky/data/demo.txt /test/.
hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test
Found 4 items
-rw-r--r-- 3 hadoop supergroup 258570165 2014-02-23 15:21 /test/2013.txt
-rw-r--r-- 3 hadoop supergroup 25721132 2014-02-23 15:28 /test/IP.txt
-rw-r--r-- 3 hadoop supergroup 7118627 2014-02-23 16:42 /test/access_log.txt
-rw-r--r-- 3 hadoop supergroup 1572 2014-02-23 17:07 /test/demo.txt
然后重启product202
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product202 hadoop220]$ bin/hdfs haadmin -failover nn1 nn2
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
可以发现客户端新上传的文件在product202中可以浏览。
2:实验二
在product201处于standby之后重启,然后删除hadoop的数据文件来模拟实验环境。
[hadoop@product201 hadoop220]$ rm -rf mydata logs
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ bin/hdfs namenode -bootstrapStandby
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
[hadoop@product201 hadoop220]$ bin/hdfs haadmin -failover nn2 nn1
将product201切换成active NN后,通过http://product201:50070可以浏览HDFS中的文件。
TIPS:
bin/hdfs namenode -bootstrapStandby只是在最初同步元数据的时候使用
实验一:原Active NN意外挂机或JVM溢出等原因造成,但原Active NN文件系统完好
实验二:原Active NN元数据损坏或重新部署新的NN
本实验环境搭建指导:
HDFS HA系列实验之二:HA+JournalNode+zookeeper
本实验相关的hadoop配置文件下载(HA+JN+ZK+proxy)
:
根据上面相关资料重新配置HA+JournalNode+zookeeper环境,并格式化后启动,然后使用物理机192.168.100.111(机器名wyy)作为客户端来访问集群。
[hadoop@product202 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product202 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product203 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product203 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product204 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
[hadoop@product204 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode
[hadoop@product201 ~]$ cd /app/hadoop/hadoop220/
[hadoop@product201 hadoop220]$ bin/hdfs namenode -format
[hadoop@product201 hadoop220]$ bin/hdfs zkfc -formatZK
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product202 ~]$ cd /app/hadoop/hadoop220/
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product202 hadoop220]$ bin/hdfs namenode -bootstrapStandby
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product201 hadoop220]$ sbin/hadoop-daemons.sh start datanode
1:实验一
客户端通过http://product201:50070可以发现product201处于active状态
客户端通过http://product202:50070可以发现product202处于standby状态
重启product201(因为没有zookeeper和JN进程在跑,可以直接重新启动来模拟机器故障),这时:
客户端通过http://product201:50070已经无法访问
客户端通过http://product202:50070可以发现product202处于active状态
此时文件操作正常
启动product201的NN守护进程
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
此时文件操作正常
在product202上kill DFSZKFailoverController进程和namenode进程,模拟product202故障,
[hadoop@product202 hadoop220]$ jps
2374 NameNode
2472 JournalNode
2558 DFSZKFailoverController
2930 Jps
1706 QuorumPeerMain
[hadoop@product202 hadoop220]$ kill 2374
[hadoop@product202 hadoop220]$ kill 2558
[hadoop@product202 hadoop220]$ jps
2472 JournalNode
2998 Jps
1706 QuorumPeerMain
这时:
客户端通过http://product201:50070可以发现product201处于active状态
客户端通过http://product202:50070已经无法访问
在客户端上传文件
hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -put /home/mmicky/data/demo.txt /test/.
hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test
Found 4 items
-rw-r--r-- 3 hadoop supergroup 258570165 2014-02-23 15:21 /test/2013.txt
-rw-r--r-- 3 hadoop supergroup 25721132 2014-02-23 15:28 /test/IP.txt
-rw-r--r-- 3 hadoop supergroup 7118627 2014-02-23 16:42 /test/access_log.txt
-rw-r--r-- 3 hadoop supergroup 1572 2014-02-23 17:07 /test/demo.txt
然后重启product202
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode
[hadoop@product202 hadoop220]$ bin/hdfs haadmin -failover nn1 nn2
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
可以发现客户端新上传的文件在product202中可以浏览。
2:实验二
在product201处于standby之后重启,然后删除hadoop的数据文件来模拟实验环境。
[hadoop@product201 hadoop220]$ rm -rf mydata logs
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc
[hadoop@product201 hadoop220]$ bin/hdfs namenode -bootstrapStandby
[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode
客户端通过http://product201:50070可以发现product201处于standby状态
客户端通过http://product202:50070可以发现product202处于active状态
[hadoop@product201 hadoop220]$ bin/hdfs haadmin -failover nn2 nn1
将product201切换成active NN后,通过http://product201:50070可以浏览HDFS中的文件。
TIPS:
bin/hdfs namenode -bootstrapStandby只是在最初同步元数据的时候使用
相关文章推荐
- HDFS HA系列实验之七:NN故障转移处理
- HDFS HA系列实验之七:NN故障转移处理
- ASP.NET故障处理系列[三]
- 配置故障转移群集,livemigration系列之七
- HDFS HA系列实验之六:Federation之增减NN和Balancer
- MongoDB副本集配置系列十一:MongoDB 数据同步原理和自动故障转移的原理
- 【实验】【VNC】手工kill掉VNC进程的故障处理
- ASP.NET故障处理系列[一]
- 【实验】【VNC】手工kill掉VNC进程的故障处理
- 【实验】【VNC】手工kill掉VNC进程的故障处理
- Oracle 10g RAC系列之 FAILOVER(故障转移)
- openstack运维实战系列(二)之instance ERR故障处理
- Hyper-V R2动手实验之故障转移集群攻略(转)
- 虚拟化系列-Windows server 2012 故障转移群集 “瑞友杯”虚拟化征文
- SQL SERVER 2008 R2 故障转移群集实验总结
- HDFS HA系列实验之经验总结
- 创建故障转移群集,LiveMigration系列之六
- linux双网卡bonding实现故障转移实验
- Windows Server 2008 R2之高可用管理系列之(添加故障转移集群)
- HDFS HA系列实验之二:HA+JournalNode+zookeeper